Commit c9bb6cd6 authored by hanbing's avatar hanbing

[add] 新信号评价-运行评价-路口评价

parent 73a65014
......@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.dto.*;
......@@ -52,8 +52,8 @@ public class PlanSendController {
@AspectLog(description = "模式切换-中心控制-步进", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "模式切换-中心控制-步进", notes = "模式切换-中心控制-步进")
@PostMapping("/nextStep")
public JsonViewObject nextStep(@RequestBody CrossIdDTO crossIdDTO) {
JsonViewObject jsonViewObject = planSendService.nextStep(crossIdDTO);
public JsonViewObject nextStep(@RequestBody CrossIdBO crossIdBO) {
JsonViewObject jsonViewObject = planSendService.nextStep(crossIdBO);
return jsonViewObject;
}
......@@ -68,16 +68,16 @@ public class PlanSendController {
@AspectLog(description = "模式切换-中心控制-全红控制", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "模式切换-中心控制-全红控制", notes = "模式切换-中心控制-全红控制")
@PostMapping("/allRedControl")
public JsonViewObject allRedControl(@RequestBody CrossIdDTO crossIdDTO) {
JsonViewObject jsonViewObject = planSendService.allRedControl(crossIdDTO);
public JsonViewObject allRedControl(@RequestBody CrossIdBO crossIdBO) {
JsonViewObject jsonViewObject = planSendService.allRedControl(crossIdBO);
return jsonViewObject;
}
@AspectLog(description = "模式切换-中心控制-黄闪控制", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "模式切换-中心控制-黄闪控制", notes = "模式切换-中心控制-黄闪控制")
@PostMapping("/yellowLightControl")
public JsonViewObject yellowLightControl(@RequestBody CrossIdDTO crossIdDTO) {
JsonViewObject jsonViewObject = planSendService.yellowLightControl(crossIdDTO);
public JsonViewObject yellowLightControl(@RequestBody CrossIdBO crossIdBO) {
JsonViewObject jsonViewObject = planSendService.yellowLightControl(crossIdBO);
return jsonViewObject;
}
......@@ -92,16 +92,16 @@ public class PlanSendController {
@AspectLog(description = "信号机方案同步", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "信号机方案同步", notes = "信号机方案同步")
@PostMapping("/syncScheme")
public JsonViewObject syncScheme(@RequestBody CrossIdDTO crossIdDTO) throws Exception{
JsonViewObject jsonViewObject = planSendService.syncScheme(crossIdDTO);
public JsonViewObject syncScheme(@RequestBody CrossIdBO crossIdBO) throws Exception{
JsonViewObject jsonViewObject = planSendService.syncScheme(crossIdBO);
return jsonViewObject;
}
@AspectLog(description = "信号机调度日计划同步", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "信号机调度日计划同步", notes = "信号机调度日计划同步")
@PostMapping("/syncSchedules")
public JsonViewObject syncSchedules(@RequestBody CrossIdDTO crossIdDTO) throws Exception{
// planSendService.syncSchedules(crossIdDTO.getCrossId());
public JsonViewObject syncSchedules(@RequestBody CrossIdBO crossIdBO) throws Exception{
// planSendService.syncSchedules(crossIdBO.getCrossId());
return JsonViewObject.newInstance().success("");
}
......
......@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.dto.SaveLaneInfoDTO;
......@@ -55,8 +55,8 @@ public class CrossConfigController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SaveLaneInfoDTO.class),
})
public JsonViewObject listLaneInfo(@RequestBody @Valid CrossIdDTO crossIdDTO) {
SaveLaneInfoDTO saveLaneInfoDTO = crossConfigService.listLaneInfo(crossIdDTO);
public JsonViewObject listLaneInfo(@RequestBody @Valid CrossIdBO crossIdBO) {
SaveLaneInfoDTO saveLaneInfoDTO = crossConfigService.listLaneInfo(crossIdBO);
return JsonViewObject.newInstance().success(saveLaneInfoDTO);
}
}
......@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.dto.SaveLightsInfoDTO;
......@@ -52,8 +52,8 @@ public class LightsConfigController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SaveLightsInfoDTO.class),
})
public JsonViewObject listLightsInfo(@RequestBody CrossIdDTO crossIdDTO) {
SaveLightsInfoDTO saveLightsInfoDTO = lightsConfigService.listLightsInfo(crossIdDTO);
public JsonViewObject listLightsInfo(@RequestBody CrossIdBO crossIdBO) {
SaveLightsInfoDTO saveLightsInfoDTO = lightsConfigService.listLightsInfo(crossIdBO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(saveLightsInfoDTO);
......
......@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dto.RunningPlanDTO;
......@@ -59,8 +59,8 @@ public class RunningPlanController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = RunningPlanDTO.class),
})
public JsonViewObject listRunningPlan(@RequestBody CrossIdDTO crossIdDTO) {
RunningPlanDTO runningPlanDTO = runningPlanService.listRunningPlan(crossIdDTO);
public JsonViewObject listRunningPlan(@RequestBody CrossIdBO crossIdBO) {
RunningPlanDTO runningPlanDTO = runningPlanService.listRunningPlan(crossIdBO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(runningPlanDTO);
......
......@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.dto.LaneIdDTO;
......@@ -88,8 +88,8 @@ public class SchemeConfigController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SaveSchemeConfigDTO.class),
})
public JsonViewObject listSchemeConfig(@RequestBody CrossIdDTO crossIdDTO) {
SaveSchemeConfigDTO saveSchemeConfigDTO = schemeConfigService.listSchemeConfig(crossIdDTO);
public JsonViewObject listSchemeConfig(@RequestBody CrossIdBO crossIdBO) {
SaveSchemeConfigDTO saveSchemeConfigDTO = schemeConfigService.listSchemeConfig(crossIdBO);
return JsonViewObject.newInstance().success(saveSchemeConfigDTO);
}
}
package net.wanji.web.service;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.dto.*;
import net.wanji.web.vo.PhaseListByTimeVO;
......@@ -16,17 +16,17 @@ public interface PlanSendService {
JsonViewObject schemeSend(SchemeIdDTO schemeIdDTO);
JsonViewObject nextStep(CrossIdDTO crossIdDTO);
JsonViewObject nextStep(CrossIdBO crossIdBO);
JsonViewObject lockPhase(CrossIdAndPhaseIdsDTO crossIdAndPhaseIdsDTO);
JsonViewObject allRedControl(CrossIdDTO crossIdDTO);
JsonViewObject allRedControl(CrossIdBO crossIdBO);
JsonViewObject yellowLightControl(CrossIdDTO crossIdDTO);
JsonViewObject yellowLightControl(CrossIdBO crossIdBO);
JsonViewObject restore(CrossIdAndPhaseIdsDTO crossIdAndPhaseIdsDTO);
JsonViewObject syncScheme(CrossIdDTO crossIdDTO) throws Exception;
JsonViewObject syncScheme(CrossIdBO crossIdBO) throws Exception;
PhaseListByTimeVO phaseListByTime(CrossIdAndTimeDTO crossIdAndTimeDTO);
......
......@@ -6,7 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.AreaEnum;
import net.wanji.common.enums.ControlModeEnum;
import net.wanji.common.framework.rest.JsonViewObject;
......@@ -306,9 +306,9 @@ public class CrossManageServiceImpl implements CrossManageService {
// 调用utc接口,填充信号机信息
for (AreaDetailPOExt areaDetailPOExt : extList) {
String crossId = areaDetailPOExt.getCrossId();
CrossIdDTO crossIdDTO = new CrossIdDTO();
crossIdDTO.setCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClients.selectCrossInfoById(crossIdDTO);
CrossIdBO crossIdBO = new CrossIdBO();
crossIdBO.setCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClients.selectCrossInfoById(crossIdBO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
throw new Exception("远程调用UTC服务路口信息失败!");
}
......@@ -509,9 +509,9 @@ public class CrossManageServiceImpl implements CrossManageService {
}
private Integer findPlanId(Date datetime, String dateStr, String crossId) {
CrossIdDTO crossIdDTO = new CrossIdDTO();
crossIdDTO.setCrossId(crossId);
RunningPlanDTO runningPlanDTO = runningPlanServiceImpl.listRunningPlan(crossIdDTO);
CrossIdBO crossIdBO = new CrossIdBO();
crossIdBO.setCrossId(crossId);
RunningPlanDTO runningPlanDTO = runningPlanServiceImpl.listRunningPlan(crossIdBO);
List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) {
List<RunningPlanDTO.ExecListElement> execList = schedulesPlan.getExecList();
......
......@@ -7,7 +7,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.databus.dao.entity.*;
......@@ -246,8 +246,8 @@ public class PlanSendServiceImpl implements PlanSendService {
}
@Override
public JsonViewObject nextStep(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public JsonViewObject nextStep(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
// command 1开始步进,stepNum 0顺序步进
JsonViewObject jsonViewObject = utcFeignClients.stepControl(crossId, 1, 0);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
......@@ -280,8 +280,8 @@ public class PlanSendServiceImpl implements PlanSendService {
}
@Override
public JsonViewObject allRedControl(CrossIdDTO crossIdDTO) {
ControlCommandVO commandVO = getControlCommandVO(crossIdDTO);
public JsonViewObject allRedControl(CrossIdBO crossIdBO) {
ControlCommandVO commandVO = getControlCommandVO(crossIdBO);
commandVO.setControlType(1); //1全红 2黄闪 3关灯
JsonViewObject jsonViewObject = utcFeignClients.allRedControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
......@@ -291,8 +291,8 @@ public class PlanSendServiceImpl implements PlanSendService {
}
@Override
public JsonViewObject yellowLightControl(CrossIdDTO crossIdDTO) {
ControlCommandVO commandVO = getControlCommandVO(crossIdDTO);
public JsonViewObject yellowLightControl(CrossIdBO crossIdBO) {
ControlCommandVO commandVO = getControlCommandVO(crossIdBO);
commandVO.setControlType(2); //1全红 2黄闪 3关灯
JsonViewObject jsonViewObject = utcFeignClients.yellowLightControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
......@@ -333,9 +333,9 @@ public class PlanSendServiceImpl implements PlanSendService {
}
// 取消全红控制
CrossIdDTO crossIdDTO = new CrossIdDTO();
crossIdDTO.setCrossId(crossId);
ControlCommandVO commandVO = getControlCommandVO(crossIdDTO);
CrossIdBO crossIdBO = new CrossIdBO();
crossIdBO.setCrossId(crossId);
ControlCommandVO commandVO = getControlCommandVO(crossIdBO);
commandVO.setCommand(0); //控制标识:1是;0否
commandVO.setControlType(1); //1全红 2黄闪 3关灯
jsonViewObject = utcFeignClients.allRedControl(commandVO);
......@@ -354,8 +354,8 @@ public class PlanSendServiceImpl implements PlanSendService {
@Override
@Transactional
public JsonViewObject syncScheme(CrossIdDTO crossIdDTO) throws Exception {
String crossId = crossIdDTO.getCrossId();
public JsonViewObject syncScheme(CrossIdBO crossIdBO) throws Exception {
String crossId = crossIdBO.getCrossId();
CrossIdVO crossIdVO = new CrossIdVO();
crossIdVO.setCrossId(crossId);
JsonViewObject jsonViewObject = utcFeignClients.schemePhaseLights(crossIdVO);
......@@ -579,10 +579,10 @@ public class PlanSendServiceImpl implements PlanSendService {
String crossId = crossIdAndTimeDTO.getCrossId();
Date datetime = crossIdAndTimeDTO.getDatetime();
String dateStr = sdf.format(datetime);
CrossIdDTO crossIdDTO = new CrossIdDTO();
crossIdDTO.setCrossId(crossId);
CrossIdBO crossIdBO = new CrossIdBO();
crossIdBO.setCrossId(crossId);
// 获取所有计划
RunningPlanDTO runningPlanDTO = runningPlanServiceImpl.listRunningPlan(crossIdDTO);
RunningPlanDTO runningPlanDTO = runningPlanServiceImpl.listRunningPlan(crossIdBO);
List<RunningPlanDTO.SchedulesPlanListElement> schedulesPlanList = runningPlanDTO.getSchedulesPlanList();
for (RunningPlanDTO.SchedulesPlanListElement schedulesPlan : schedulesPlanList) {
List<RunningPlanDTO.ExecListElement> execList = schedulesPlan.getExecList();
......@@ -595,7 +595,7 @@ public class PlanSendServiceImpl implements PlanSendService {
String substring = specialDate.substring(0, 10);
if (Objects.equals(dateStr, substring)) {
String planName = execListElement.getPlanName();
phaseListByTimeVO = getPhaseListByTimeVO(planName, datetime, runningPlanDTO, crossIdDTO);
phaseListByTimeVO = getPhaseListByTimeVO(planName, datetime, runningPlanDTO, crossIdBO);
}
}
} else if (CollectionUtil.isNotEmpty(week)) {
......@@ -608,7 +608,7 @@ public class PlanSendServiceImpl implements PlanSendService {
}
if (day == today) {
String planName = execListElement.getPlanName();
phaseListByTimeVO = getPhaseListByTimeVO(planName, datetime, runningPlanDTO, crossIdDTO);
phaseListByTimeVO = getPhaseListByTimeVO(planName, datetime, runningPlanDTO, crossIdBO);
}
}
}
......@@ -638,7 +638,7 @@ public class PlanSendServiceImpl implements PlanSendService {
}
private PhaseListByTimeVO getPhaseListByTimeVO(String planName, Date datetime, RunningPlanDTO runningPlanDTO,
CrossIdDTO crossIdDTO) {
CrossIdBO crossIdBO) {
PhaseListByTimeVO phaseListByTimeVO = new PhaseListByTimeVO();
List<RunningPlanDTO.TimeListElement> timeList = new ArrayList<>();
List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = runningPlanDTO.getDailyPlanList();
......@@ -668,7 +668,7 @@ public class PlanSendServiceImpl implements PlanSendService {
}
}
// 查询方案
SaveSchemeConfigDTO saveSchemeConfigDTO = schemeConfigServiceImpl.listSchemeConfig(crossIdDTO);
SaveSchemeConfigDTO saveSchemeConfigDTO = schemeConfigServiceImpl.listSchemeConfig(crossIdBO);
List<SaveSchemeConfigDTO.PhaseScheme> phaseSchemeList = saveSchemeConfigDTO.getPhaseSchemeList();
for (SaveSchemeConfigDTO.PhaseScheme phaseScheme : phaseSchemeList) {
String name = phaseScheme.getName();
......@@ -680,9 +680,9 @@ public class PlanSendServiceImpl implements PlanSendService {
}
@NotNull
private static ControlCommandVO getControlCommandVO(CrossIdDTO crossIdDTO) {
private static ControlCommandVO getControlCommandVO(CrossIdBO crossIdBO) {
ControlCommandVO commandVO = new ControlCommandVO();
commandVO.setCrossCode(crossIdDTO.getCrossId());
commandVO.setCrossCode(crossIdBO.getCrossId());
commandVO.setCommand(1); //控制标识:1是;0否
commandVO.setDuration(0); //长期
return commandVO;
......
package net.wanji.web.service.scheme;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.web.dto.SaveLaneInfoDTO;
/**
......@@ -10,5 +10,5 @@ import net.wanji.web.dto.SaveLaneInfoDTO;
public interface CrossConfigService {
void saveLaneInfo(SaveLaneInfoDTO saveLaneInfoDTO);
SaveLaneInfoDTO listLaneInfo(CrossIdDTO crossIdDTO);
SaveLaneInfoDTO listLaneInfo(CrossIdBO crossIdBO);
}
package net.wanji.web.service.scheme;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.web.dto.SaveLightsInfoDTO;
/**
......@@ -10,5 +10,5 @@ import net.wanji.web.dto.SaveLightsInfoDTO;
public interface LightsConfigService {
void saveLightsInfo(SaveLightsInfoDTO saveLightsInfoDTO);
SaveLightsInfoDTO listLightsInfo(CrossIdDTO crossIdDTO);
SaveLightsInfoDTO listLightsInfo(CrossIdBO crossIdBO);
}
package net.wanji.web.service.scheme;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dto.RunningPlanDTO;
import java.text.ParseException;
......@@ -12,5 +12,5 @@ import java.text.ParseException;
public interface RunningPlanService {
void saveRunningPlan(RunningPlanDTO runningPlanDTO) throws ParseException;
RunningPlanDTO listRunningPlan(CrossIdDTO crossIdDTO);
RunningPlanDTO listRunningPlan(CrossIdBO crossIdBO);
}
package net.wanji.web.service.scheme;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO;
......@@ -18,5 +18,5 @@ public interface SchemeConfigService {
LaneIdsVO getLanesByLight(LightIdDTO lightIdDTO);
SaveSchemeConfigDTO listSchemeConfig(CrossIdDTO crossIdDTO);
SaveSchemeConfigDTO listSchemeConfig(CrossIdBO crossIdBO);
}
......@@ -2,7 +2,7 @@ package net.wanji.web.service.scheme.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.LightsAddressEnum;
import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.po.BaseCrossLightsPO;
......@@ -292,8 +292,8 @@ public class CrossConfigServiceImpl implements CrossConfigService {
}
@Override
public SaveLaneInfoDTO listLaneInfo(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public SaveLaneInfoDTO listLaneInfo(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
SaveLaneInfoDTO saveLaneInfoDTO = new SaveLaneInfoDTO();
saveLaneInfoDTO.setCrossId(crossId);
// 构造dirList
......
package net.wanji.web.service.scheme.impl;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.web.dto.SaveLightsInfoDTO;
import net.wanji.web.service.scheme.LightsConfigService;
import org.springframework.stereotype.Service;
......@@ -19,7 +19,7 @@ public class LightsConfigServiceImpl implements LightsConfigService {
}
@Override
public SaveLightsInfoDTO listLightsInfo(CrossIdDTO crossIdDTO) {
public SaveLightsInfoDTO listLightsInfo(CrossIdBO crossIdBO) {
return null;
}
}
package net.wanji.web.service.scheme.impl;
import cn.hutool.core.collection.CollectionUtil;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.dto.RunningPlanDTO;
......@@ -58,9 +58,9 @@ public class RunningPlanServiceImpl implements RunningPlanService {
}
@Override
public RunningPlanDTO listRunningPlan(CrossIdDTO crossIdDTO) {
public RunningPlanDTO listRunningPlan(CrossIdBO crossIdBO) {
RunningPlanDTO runningPlanDTO = new RunningPlanDTO();
String crossId = crossIdDTO.getCrossId();
String crossId = crossIdBO.getCrossId();
runningPlanDTO.setCrossId(crossId);
// 构造dailyPlanList
List<RunningPlanDTO.DailyPlanListElement> dailyPlanList = buildDailyPlanList(crossId);
......
......@@ -2,7 +2,7 @@ package net.wanji.web.service.scheme.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dao.entity.CrossPhaseLightsPO;
import net.wanji.databus.dao.entity.CrossPhasePO;
import net.wanji.databus.dao.entity.BaseCrossSchemePO;
......@@ -105,8 +105,8 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
@Override
@Transactional
public SaveSchemeConfigDTO listSchemeConfig(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public SaveSchemeConfigDTO listSchemeConfig(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
SaveSchemeConfigDTO saveSchemeConfigDTO = new SaveSchemeConfigDTO();
saveSchemeConfigDTO.setCrossId(crossId);
// 构造方案列表
......
package net.wanji.feign.service.common;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.dto.CrossSchedulesDTO;
import net.wanji.databus.dto.PlanSectionDTO;
......@@ -97,7 +97,7 @@ public interface UtcFeignCommon {
JsonViewObject listCrossInfo(CrossInfoPageVO crossInfoPageVO);
@PostMapping("/crossInfo/selectById")
JsonViewObject selectCrossInfoById(CrossIdDTO crossIdDTO);
JsonViewObject selectCrossInfoById(CrossIdBO crossIdBO);
// 查询信号机时间
@PostMapping("/signalTime")
......
......@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.opt.dto.CrossIdAndDirDTO;
......@@ -50,8 +50,8 @@ public class DiagnoController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AddOrUpdateSceneDTO.class),
})
public JsonViewObject queryCrossScene(@RequestBody CrossIdDTO crossIdDTO) {
AddOrUpdateSceneDTO addOrUpdateSceneDTO = diagnoService.queryCrossScene(crossIdDTO);
public JsonViewObject queryCrossScene(@RequestBody CrossIdBO crossIdBO) {
AddOrUpdateSceneDTO addOrUpdateSceneDTO = diagnoService.queryCrossScene(crossIdBO);
return JsonViewObject.newInstance().success(addOrUpdateSceneDTO);
}
......@@ -62,8 +62,8 @@ public class DiagnoController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossIdAndLocationVO.class),
})
public JsonViewObject queryNeighborCross(@RequestBody CrossIdDTO crossIdDTO) {
List<CrossIdAndLocationVO> crossIdAndLocationVOList = diagnoService.queryNeighborCross(crossIdDTO);
public JsonViewObject queryNeighborCross(@RequestBody CrossIdBO crossIdBO) {
List<CrossIdAndLocationVO> crossIdAndLocationVOList = diagnoService.queryNeighborCross(crossIdBO);
return JsonViewObject.newInstance().success(crossIdAndLocationVOList);
}
......@@ -74,8 +74,8 @@ public class DiagnoController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SchemeOptVO.class),
})
public JsonViewObject querySchemeOpt(@RequestBody @Valid CrossIdDTO crossIdDTO) {
SchemeOptVO schemeOptVO = diagnoService.querySchemeOpt(crossIdDTO);
public JsonViewObject querySchemeOpt(@RequestBody @Valid CrossIdBO crossIdBO) {
SchemeOptVO schemeOptVO = diagnoService.querySchemeOpt(crossIdBO);
return JsonViewObject.newInstance().success(schemeOptVO);
}
......@@ -110,8 +110,8 @@ public class DiagnoController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = JsonViewObject.class),
})
public JsonViewObject restoreSend(@RequestBody CrossIdDTO crossIdDTO) throws Exception {
diagnoService.restoreSend(crossIdDTO);
public JsonViewObject restoreSend(@RequestBody CrossIdBO crossIdBO) throws Exception {
diagnoService.restoreSend(crossIdBO);
return JsonViewObject.newInstance().success();
}
......@@ -135,8 +135,8 @@ public class DiagnoController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SaveLaneInfoDTO.class),
})
public JsonViewObject listLaneInfo(@RequestBody @Valid CrossIdDTO crossIdDTO) {
SaveLaneInfoDTO saveLaneInfoDTO = diagnoService.listLaneInfo(crossIdDTO);
public JsonViewObject listLaneInfo(@RequestBody @Valid CrossIdBO crossIdBO) {
SaveLaneInfoDTO saveLaneInfoDTO = diagnoService.listLaneInfo(crossIdBO);
return JsonViewObject.newInstance().success(saveLaneInfoDTO);
}
}
\ No newline at end of file
......@@ -5,10 +5,15 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.bo.RunningEvaluateCrossEvaluateBO;
import net.wanji.databus.vo.RunningEvaluateCrossListVO;
import net.wanji.opt.bo.CrossNameBO;
import net.wanji.opt.service.impl.RunningEvaluateServiceImpl;
import net.wanji.databus.vo.RunningEvaluateCrossListVO;
import org.springframework.web.bind.annotation.*;
import net.wanji.opt.vo.RunningEvaluateCrossEvaluateVO;
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;
import java.util.List;
......@@ -41,5 +46,16 @@ public class RunningEvaluateController {
return JsonViewObject.newInstance().success(res);
}
@ApiOperation(value = "路口评价", notes = "路口评价", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/crossEvaluate",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = RunningEvaluateCrossEvaluateVO.class),
})
public JsonViewObject crossEvaluate(@RequestBody RunningEvaluateCrossEvaluateBO bo) {
RunningEvaluateCrossEvaluateVO res = runningEvaluateService.crossEvaluate(bo);
return JsonViewObject.newInstance().success(res);
}
}
\ No newline at end of file
......@@ -4,7 +4,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO;
import net.wanji.opt.bo.GreenwaveIdBO;
......@@ -142,8 +142,8 @@ public class TrendController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AbnormalCrossDetailVO.class),
})
public JsonViewObject abnormalCrossDetail(@RequestBody CrossIdDTO crossIdDTO) {
AbnormalCrossDetailVO abnormalCrossDetailVO = trendService.abnormalCrossDetail(crossIdDTO);
public JsonViewObject abnormalCrossDetail(@RequestBody CrossIdBO crossIdBO) {
AbnormalCrossDetailVO abnormalCrossDetailVO = trendService.abnormalCrossDetail(crossIdBO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(abnormalCrossDetailVO);
......
package net.wanji.opt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class AbnormalEventDTO {
@ApiModelProperty(name = "路口状态",notes = "0正常 1 失衡 2 拥堵 3 溢出 4 死锁")
private String status ;
@ApiModelProperty(name = "开始时间戳",notes = "10位")
private Integer startStamp ;
@ApiModelProperty(name = "结束时间戳",notes = "10位")
private Integer endStamp ;
}
package net.wanji.opt.service;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.opt.dto.CrossIdAndDirDTO;
import net.wanji.opt.dto.CrossIdAndSchemeIdDTO;
import net.wanji.opt.dto.SaveLaneInfoDTO;
......@@ -17,19 +17,19 @@ import java.util.List;
* @date 2023/3/2 10:09
*/
public interface DiagnoService {
AddOrUpdateSceneDTO queryCrossScene(CrossIdDTO crossIdDTO);
AddOrUpdateSceneDTO queryCrossScene(CrossIdBO crossIdBO);
List<CrossIdAndLocationVO> queryNeighborCross(CrossIdDTO crossIdDTO);
List<CrossIdAndLocationVO> queryNeighborCross(CrossIdBO crossIdBO);
SchemeOptVO querySchemeOpt(CrossIdDTO crossIdDTO);
SchemeOptVO querySchemeOpt(CrossIdBO crossIdBO);
List<SchemeOptVO.PhaseOptTime> queryOptTime(CrossIdAndSchemeIdDTO crossIdAndSchemeIdDTO);
void sendManual(SendManualDTO sendManualDTO) throws Exception;
void restoreSend(CrossIdDTO crossIdDTO) throws Exception;
void restoreSend(CrossIdBO crossIdBO) throws Exception;
OptEffectVO optEffect(CrossIdAndDirDTO crossIdAndDirDTO);
SaveLaneInfoDTO listLaneInfo(CrossIdDTO crossIdDTO);
SaveLaneInfoDTO listLaneInfo(CrossIdBO crossIdBO);
}
package net.wanji.opt.service;
import net.wanji.databus.bo.RunningEvaluateCrossEvaluateBO;
import net.wanji.databus.vo.RunningEvaluateCrossListVO;
import net.wanji.opt.bo.CrossNameBO;
import net.wanji.opt.vo.RunningEvaluateCrossEvaluateVO;
import java.util.List;
public interface RunningEvaluateService {
List<RunningEvaluateCrossListVO> crossList(CrossNameBO crossNameBO);
RunningEvaluateCrossEvaluateVO crossEvaluate(RunningEvaluateCrossEvaluateBO bo);
}
package net.wanji.opt.service;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO;
import net.wanji.opt.bo.GreenwaveIdBO;
import net.wanji.opt.bo.SaveGreenwaveStrategyBO;
......@@ -24,7 +24,7 @@ public interface TrendService {
AbnormalCrossVO abnormalCrossList(AbnormalCrossListDTO abnormalCrossListDTO);
AbnormalCrossDetailVO abnormalCrossDetail(CrossIdDTO crossIdDTO);
AbnormalCrossDetailVO abnormalCrossDetail(CrossIdBO crossIdBO);
List<EventAlarmVO> eventAlarm(Date todayTime) throws ParseException;
......
......@@ -7,7 +7,7 @@ import com.github.pagehelper.PageInfo;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.LightsAddressEnum;
import net.wanji.common.utils.tool.CrossUtil;
import net.wanji.databus.dao.entity.BaseCrossDirInfoPO;
......@@ -109,9 +109,9 @@ public class DiagnoServiceImpl implements DiagnoService {
}
@Override
public AddOrUpdateSceneDTO queryCrossScene(CrossIdDTO crossIdDTO) {
public AddOrUpdateSceneDTO queryCrossScene(CrossIdBO crossIdBO) {
// 查询路口场景代码
String crossId = crossIdDTO.getCrossId();
String crossId = crossIdBO.getCrossId();
CrossDataRealtimePO crossDataRealtimePO = crossDataRealtimeMapper.selectByCrossId(crossId);
Integer status = crossDataRealtimePO.getStatus();
// 获取场景名称
......@@ -130,9 +130,9 @@ public class DiagnoServiceImpl implements DiagnoService {
}
@Override
public List<CrossIdAndLocationVO> queryNeighborCross(CrossIdDTO crossIdDTO) {
public List<CrossIdAndLocationVO> queryNeighborCross(CrossIdBO crossIdBO) {
List<CrossIdAndLocationVO> crossIdAndLocationVOList = new ArrayList<>();
String crossId = crossIdDTO.getCrossId();
String crossId = crossIdBO.getCrossId();
List<Integer> inDirs = baseCrossDirInfoMapper.selectInDirsByCrossId(crossId);
for (Integer inDir : inDirs) {
RidInfoEntity ridInfo = ridInfoMapper.selectByEndInDir(crossId, inDir);
......@@ -166,8 +166,8 @@ public class DiagnoServiceImpl implements DiagnoService {
}
@Override
public SchemeOptVO querySchemeOpt(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public SchemeOptVO querySchemeOpt(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
SchemeOptVO schemeOptVO = new SchemeOptVO();
schemeOptVO.setCrossId(crossId);
// 选择数据批次时间最大的记录
......@@ -347,8 +347,8 @@ public class DiagnoServiceImpl implements DiagnoService {
}
@Override
public void restoreSend(CrossIdDTO crossIdDTO) throws Exception {
String crossId = crossIdDTO.getCrossId();
public void restoreSend(CrossIdBO crossIdBO) throws Exception {
String crossId = crossIdBO.getCrossId();
feignProxyService.schemeOptRestore(crossId);
}
......@@ -407,8 +407,8 @@ public class DiagnoServiceImpl implements DiagnoService {
}
@Override
public SaveLaneInfoDTO listLaneInfo(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public SaveLaneInfoDTO listLaneInfo(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
SaveLaneInfoDTO saveLaneInfoDTO = new SaveLaneInfoDTO();
saveLaneInfoDTO.setCrossId(crossId);
// 路口拥堵指数
......
package net.wanji.opt.service.impl;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.CrossUtil;
import net.wanji.databus.bo.RunningEvaluateCrossEvaluateBO;
import net.wanji.databus.dao.entity.CrossSectionPO;
import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
import net.wanji.databus.dao.mapper.CrossDataHistMapper;
import net.wanji.databus.dao.mapper.CrossDataRealtimeMapper;
import net.wanji.databus.po.CrossDataHistPO;
import net.wanji.databus.po.CrossDataRealtimePO;
import net.wanji.databus.vo.RunningEvaluateCrossListVO;
import net.wanji.opt.bo.CrossNameBO;
import net.wanji.opt.service.RunningEvaluateService;
import net.wanji.opt.vo.RunningEvaluateCrossEvaluateVO;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author Kent HAN
......@@ -20,8 +30,13 @@ import java.util.stream.Collectors;
@Service
public class RunningEvaluateServiceImpl implements RunningEvaluateService {
private final CrossDataRealtimeMapper crossDataRealtimeMapper;
public RunningEvaluateServiceImpl(CrossDataRealtimeMapper crossDataRealtimeMapper) {
private final CrossDataHistMapper crossDataHistMapper;
private final BaseCrossSectionMapper baseCrossSectionMapper;
public RunningEvaluateServiceImpl(CrossDataRealtimeMapper crossDataRealtimeMapper, CrossDataHistMapper crossDataHistMapper, @Qualifier("baseCrossSectionMapper") BaseCrossSectionMapper baseCrossSectionMapper) {
this.crossDataRealtimeMapper = crossDataRealtimeMapper;
this.crossDataHistMapper = crossDataHistMapper;
this.baseCrossSectionMapper = baseCrossSectionMapper;
}
@Override
......@@ -39,4 +54,108 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
return res;
}
@Override
public RunningEvaluateCrossEvaluateVO crossEvaluate(RunningEvaluateCrossEvaluateBO bo) {
RunningEvaluateCrossEvaluateVO vo = new RunningEvaluateCrossEvaluateVO();
String crossId = bo.getCrossId();
Date startDate = bo.getStartDate();
Date endDate = bo.getEndDate();
endDate = DateUtil.offsetDay(endDate, 1); // 包含最后一天
CrossDataRealtimePO crossDataRealtimePO = crossDataRealtimeMapper.selectByCrossId(crossId);
Double sturation = crossDataRealtimePO.getSturation();
String serviceLevel = CrossUtil.getServiceLevel(sturation);
vo.setServiceLevel(serviceLevel);
int startStamp = (int) (startDate.getTime() / 1000); // 10位时间戳
int endStamp = (int) (endDate.getTime() / 1000);
List<CrossDataHistPO> crossDataHistPOList = crossDataHistMapper.selectByCrossIdAndStartEnd(
crossId, startStamp, endStamp);
List<CrossDataHistPO> congestionEventList = buildCongestionEvents(crossDataHistPOList); // 获取拥堵事件集合
vo.setCongestionTimes(congestionEventList.size());
List<CrossDataHistPO> unbalanceEventList = buildUnbalanceEvents(crossDataHistPOList); // 获取失衡事件集合
vo.setUnbalanceTimes(unbalanceEventList.size());
List<CrossDataHistPO> spilloverEventList = buildSpilloverEvents(crossDataHistPOList); // 获取溢出事件集合
vo.setSpilloverTimes(spilloverEventList.size());
Integer schemeProblems = calcSchemeProblems(
congestionEventList, unbalanceEventList, spilloverEventList, crossId); // 计算方案问题
vo.setSchemeProblems(schemeProblems);
return vo;
}
private Integer calcSchemeProblems(List<CrossDataHistPO> congestionEventList,
List<CrossDataHistPO> unbalanceEventList,
List<CrossDataHistPO> spilloverEventList,
String crossId) {
Set<Integer> schemeIdSet = new HashSet<>(); // 用于方案ID去重
List<CrossDataHistPO> allList = Stream.of(congestionEventList, unbalanceEventList, spilloverEventList)
.flatMap(List::stream)
.collect(Collectors.toList());
for (CrossDataHistPO abnormalEvent : allList) {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date abnormalEventStartTime = abnormalEvent.getStartTime();
Integer duration = abnormalEvent.getDuration();
Date abnormalEventEndTime = DateUtil.offsetMinute(abnormalEventStartTime, duration);
String eventStartTime = sdf.format(abnormalEventStartTime);
String eventEndTime = sdf.format(abnormalEventEndTime);
List<CrossSectionPO> crossSectionPOList = baseCrossSectionMapper.selectByCrossId(crossId);
for (CrossSectionPO crossSectionPO : crossSectionPOList) {
String sectionStartTime = crossSectionPO.getStartTime();
String sectionEndTime = crossSectionPO.getEndTime();
// 比较两组时间段是否相交
boolean isIntersecting = isTimeIntersecting(
eventStartTime, eventEndTime, sectionStartTime, sectionEndTime);
if (isIntersecting) {
Integer schemeId = crossSectionPO.getSchemeId();
schemeIdSet.add(schemeId);
}
}
}
return schemeIdSet.size();
}
private boolean isTimeIntersecting(String startTime1, String endTime1, String startTime2, String endTime2) {
return !(endTime1.compareTo(startTime2) <= 0 || startTime1.compareTo(endTime2) >= 0);
}
private List<CrossDataHistPO> buildSpilloverEvents(List<CrossDataHistPO> crossDataHistPOList) {
return buildEvents(crossDataHistPOList, 3);
}
private List<CrossDataHistPO> buildUnbalanceEvents(List<CrossDataHistPO> crossDataHistPOList) {
return buildEvents(crossDataHistPOList, 1);
}
private List<CrossDataHistPO> buildCongestionEvents(List<CrossDataHistPO> crossDataHistPOList) {
return buildEvents(crossDataHistPOList, 2);
}
private List<CrossDataHistPO> buildEvents(List<CrossDataHistPO> crossDataHistPOList, int status) {
List<CrossDataHistPO> collect = crossDataHistPOList.stream()
.filter(po -> po.getStatus() == status)
.collect(Collectors.groupingBy(
CrossDataHistPO::getStartTime,
Collectors.collectingAndThen(
Collectors.maxBy(Comparator.comparingInt(CrossDataHistPO::getDuration)),
Optional::get
)
))
.values()
.stream()
.collect(Collectors.toList());
return collect;
}
}
......@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.CrossStatusEnum;
import net.wanji.common.enums.EventAlarmEnum;
import net.wanji.common.enums.EventAlarmSourceEnum;
......@@ -263,8 +263,8 @@ public class TrendServiceImpl implements TrendService {
}
@Override
public AbnormalCrossDetailVO abnormalCrossDetail(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public AbnormalCrossDetailVO abnormalCrossDetail(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
AbnormalCrossDetailVO abnormalCrossDetailVO = new AbnormalCrossDetailVO();
// 构造路口实时数据
......
package net.wanji.opt.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Kent HAN
* @date 2023/2/9 8:38
*/
@Data
@NoArgsConstructor
@ApiModel(value = "RunningEvaluateCrossEvaluateVO", description = "运行评价-路口评价")
public class RunningEvaluateCrossEvaluateVO {
@ApiModelProperty(value = "服务水平")
String serviceLevel;
@ApiModelProperty(value = "拥堵次数")
Integer congestionTimes;
@ApiModelProperty(value = "失衡次数")
Integer unbalanceTimes;
@ApiModelProperty(value = "溢出次数")
Integer spilloverTimes;
@ApiModelProperty(value = "方案问题")
Integer schemeProblems;
}
......@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.po.CrossInfoPOExt;
......@@ -88,10 +88,10 @@ public class CrossInfoController {
@PostMapping(value = "/selectById",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossIdDTO.class),
@ApiResponse(code = 200, message = "OK", response = CrossIdBO.class),
})
public JsonViewObject selectById(@RequestBody CrossIdDTO crossIdDTO) {
CrossInfoPOExt crossInfoPOExt = crossInfoService.selectById(crossIdDTO);
public JsonViewObject selectById(@RequestBody CrossIdBO crossIdBO) {
CrossInfoPOExt crossInfoPOExt = crossInfoService.selectById(crossIdBO);
return JsonViewObject.newInstance().success(crossInfoPOExt);
}
}
package net.wanji.utc.service.systemadmin;
import com.github.pagehelper.PageInfo;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.po.CrossInfoPOExt;
import net.wanji.utc.dto.systemadmin.CrossInfoInsertOrUpdateDTO;
import net.wanji.utc.dto.systemadmin.CrossInfoListDTO;
......@@ -19,5 +19,5 @@ public interface CrossInfoService {
void delete(DeleteByStringIdListDTO inVO);
CrossInfoPOExt selectById(CrossIdDTO crossIdDTO);
CrossInfoPOExt selectById(CrossIdBO crossIdBO);
}
......@@ -3,7 +3,7 @@ package net.wanji.utc.service.systemadmin.impl;
import cn.hutool.core.date.DateUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import net.wanji.common.dto.CrossIdDTO;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dao.mapper.CrossInfoMapper;
import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
import net.wanji.databus.po.CrossInfoPO;
......@@ -117,8 +117,8 @@ public class CrossInfoServiceImpl implements CrossInfoService {
}
@Override
public CrossInfoPOExt selectById(CrossIdDTO crossIdDTO) {
String crossId = crossIdDTO.getCrossId();
public CrossInfoPOExt selectById(CrossIdBO crossIdBO) {
String crossId = crossIdBO.getCrossId();
CrossInfoPOExt res = crossInfoMapper.selectById(crossId);
return res;
}
......
package net.wanji.common.dto;
package net.wanji.databus.bo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull;
* @date 2022/12/20 10:17
*/
@Data
public class CrossIdDTO {
public class CrossIdBO {
@ApiModelProperty(value = "路口ID", required = true)
@NotNull(message = "路口ID不可为空")
private String crossId;
......
package net.wanji.databus.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class RunningEvaluateCrossEvaluateBO {
@ApiModelProperty(value = "路口ID")
private String crossId;
@ApiModelProperty(value = "开始日期 yyyy-MM-dd")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startDate;
@ApiModelProperty(value = "结束日期 yyyy-MM-dd")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
}
......@@ -26,4 +26,6 @@ public interface BaseCrossSectionMapper {
CrossSectionPO selectById(Integer id);
void updateControlMode(Integer sectionId, Integer controlMode);
List<CrossSectionPO> selectByCrossId(String crossId);
}
......@@ -20,4 +20,5 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
List<CrossDataHistPO> selectByCrossIdAndTimestamp(String crossId, long preSeconds);
List<CrossDataHistPO> selectByCrossIdAndStartEnd(String crossId, int startStamp, int endStamp);
}
package net.wanji.databus.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -19,6 +20,7 @@ public class RunningEvaluateCrossListVO {
@ApiModelProperty(value = "路口名称")
private String crossName;
@ApiModelProperty(name = "饱和度")
@JsonIgnore
private Double sturation;
@ApiModelProperty(value = "服务水平")
String serviceLevel;
......
......@@ -69,5 +69,11 @@
where id = #{id}
</select>
<select id="selectByCrossId" resultType="net.wanji.databus.dao.entity.CrossSectionPO">
select <include refid="Base_Column_list"/>
from t_base_cross_section
where cross_id = #{crossId}
</select>
</mapper>
......@@ -65,4 +65,13 @@
and batch_time <![CDATA[ >= ]]> #{preSeconds}
order by batch_time
</select>
<select id="selectByCrossIdAndStartEnd" resultType="net.wanji.databus.po.CrossDataHistPO">
select <include refid="Base_Column_List"></include>
from t_cross_data_hist
where cross_id = #{crossId}
and batch_time <![CDATA[ >= ]]> #{startStamp}
and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time
</select>
</mapper>
\ No newline at end of file
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