Commit c2ade2e4 authored by hanbing's avatar hanbing

[add] 信号优化首页,子区详情(除相位序列图)

parent ab6f6700
......@@ -14,9 +14,9 @@ import net.wanji.databus.po.BaseCrossLightsPO;
import net.wanji.databus.vo.*;
import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.dto.*;
import net.wanji.web.mapper.scheme.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import net.wanji.web.service.FeignProxyService;
import net.wanji.web.service.PlanSendService;
import net.wanji.web.service.scheme.impl.RunningPlanServiceImpl;
......
......@@ -11,8 +11,8 @@ import net.wanji.databus.dao.mapper.BaseCrossSchedulesMapper;
import net.wanji.databus.dao.mapper.BaseCrossSchemeMapper;
import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
import net.wanji.databus.dto.RunningPlanDTO;
import net.wanji.web.mapper.scheme.CrossSchedulesPlanMapper;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import net.wanji.web.service.scheme.RunningPlanService;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
......
......@@ -23,4 +23,6 @@ public interface SceneStrategyIdeaMapper {
void deleteByStrategyIds(List<Integer> ids);
SceneStrategyIdeaPO selectIdBySceneNum(Integer sceneNum);
List<String> selectAllNames();
}
......@@ -23,4 +23,6 @@ public interface StrategyMapper {
List<StrategyPO> selectByStrategyNameAndTarget(QueryStrategyDTO queryStrategyDTO);
StrategyPO selectById(Integer strategyId);
List<String> selectAllNames();
}
package net.wanji.opt.dao.mapper.trend;
import net.wanji.databus.dao.entity.GreenwaveInfoPO;
import net.wanji.opt.vo.GreenwaveListVO;
import org.springframework.stereotype.Repository;
......@@ -15,5 +16,7 @@ import java.util.List;
public interface GreenwaveInfoMapper {
List<GreenwaveListVO> listGreenwave(Integer status, String name, Integer type);
List<String> selectCrossIdsById(String greenwaveId);
List<String> selectCrossIdsById(Integer greenwaveId);
GreenwaveInfoPO selectById(Integer id);
}
......@@ -9,32 +9,47 @@ import net.wanji.common.enums.CrossStatusEnum;
import net.wanji.common.enums.EventAlarmEnum;
import net.wanji.common.enums.EventAlarmSourceEnum;
import net.wanji.common.utils.tool.CrossUtil;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO;
import net.wanji.databus.dao.entity.BaseCrossSchemePO;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import net.wanji.databus.dao.entity.CrossSectionPO;
import net.wanji.databus.dao.entity.GreenwaveCrossPO;
import net.wanji.databus.dao.entity.GreenwaveHistPOExt;
import net.wanji.databus.dao.entity.GreenwaveInfoPO;
import net.wanji.databus.dao.entity.GreenwaveRealtimePO;
import net.wanji.databus.dao.entity.RidInfoEntity;
import net.wanji.databus.dao.mapper.BaseCrossDirInfoMapper;
import net.wanji.databus.dao.mapper.BaseCrossInfoMapper;
import net.wanji.databus.dao.mapper.BaseCrossSchedulesMapper;
import net.wanji.databus.dao.mapper.BaseCrossSchemeMapper;
import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
import net.wanji.databus.dao.mapper.CrossDataRealtimeMapper;
import net.wanji.databus.dao.mapper.CrossDirDataHistMapper;
import net.wanji.databus.dao.mapper.CrossDirDataRealtimeMapper;
import net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.mapper.CrossTurnDataRealtimeMapper;
import net.wanji.databus.dao.mapper.GreenwaveCrossMapper;
import net.wanji.databus.dao.mapper.GreenwaveHistMapper;
import net.wanji.databus.dao.mapper.GreenwaveRealtimeMapper;
import net.wanji.databus.dao.mapper.RidInfoMapper;
import net.wanji.databus.po.BaseCrossInfoPO;
import net.wanji.databus.po.CrossDataRealtimePO;
import net.wanji.databus.po.CrossDirDataHistPO;
import net.wanji.databus.po.CrossDirDataRealtimePO;
import net.wanji.databus.po.CrossTurnDataRealtimePO;
import net.wanji.databus.po.TBaseCrossInfo;
import net.wanji.databus.vo.AbnormalCrossListVO;
import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO;
import net.wanji.opt.bo.GreenwaveIdBO;
import net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper;
import net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper;
import net.wanji.opt.dao.mapper.strategy.StrategyMapper;
import net.wanji.opt.dao.mapper.trend.EventAlarmMapper;
import net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper;
import net.wanji.opt.dto.trend.AbnormalCrossListDTO;
import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.po.base.CrossSchemeOptLogPO;
import net.wanji.opt.po.strategy.StrategyPO;
import net.wanji.opt.po.trend.EventAlarmPO;
import net.wanji.opt.service.TrendService;
import net.wanji.opt.vo.AbnormalCrossDetailVO;
......@@ -44,11 +59,10 @@ import net.wanji.opt.vo.EventAlarmVO;
import net.wanji.opt.vo.GreenWaveCrossMonitorVO;
import net.wanji.opt.vo.GreenwaveCrossMetricsVO;
import net.wanji.opt.vo.GreenwaveDetailVO;
import net.wanji.opt.vo.GreenwaveRunMonitorVO;
import net.wanji.opt.vo.GreenwaveListVO;
import net.wanji.opt.vo.GreenwaveRunMonitorVO;
import net.wanji.opt.vo.GreenwaveStats;
import org.springframework.stereotype.Service;
import net.wanji.databus.po.CrossDirDataRealtimePO;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -78,6 +92,12 @@ public class TrendServiceImpl implements TrendService {
private final GreenwaveCrossMapper greenwaveCrossMapper;
private final CrossDirDataRealtimeMapper crossDirDataRealtimeMapper;
private final GreenwaveHistMapper greenwaveHistMapper;
private final GreenwaveRealtimeMapper greenwaveRealtimeMapper;
private final StrategyMapper strategyMapper;
private final BaseCrossSchedulesMapper baseCrossSchedulesMapper;
private final CrossSchedulesPlanMapper crossSchedulesPlanMapper;
private final BaseCrossSectionMapper baseCrossSectionMapper;
private final BaseCrossSchemeMapper baseCrossSchemeMapper;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
......@@ -86,7 +106,7 @@ public class TrendServiceImpl implements TrendService {
CrossTurnDataRealtimeMapper crossTurnDataRealtimeMapper,
CrossDirDataHistMapper crossDirDataHistMapper, EventAlarmMapper eventAlarmMapper,
RidInfoMapper ridInfoMapper, BaseCrossDirInfoMapper baseCrossDirInfoMapper,
CrossSchemeOptLogMapper crossSchemeOptLogMapper, GreenwaveCrossMapper greenwaveCrossMapper, CrossDirDataRealtimeMapper crossDirDataRealtimeMapper, GreenwaveHistMapper greenwaveHistMapper) {
CrossSchemeOptLogMapper crossSchemeOptLogMapper, GreenwaveCrossMapper greenwaveCrossMapper, CrossDirDataRealtimeMapper crossDirDataRealtimeMapper, GreenwaveHistMapper greenwaveHistMapper, GreenwaveRealtimeMapper greenwaveRealtimeMapper, SceneStrategyIdeaMapper strategyIdeaMapper, StrategyMapper strategyMapper, BaseCrossSchedulesMapper baseCrossSchedulesMapper, CrossSchedulesPlanMapper crossSchedulesPlanMapper, BaseCrossSectionMapper baseCrossSectionMapper, BaseCrossSchemeMapper crossSchemeMapper, BaseCrossSchemeMapper baseCrossSchemeMapper) {
this.greenwaveInfoMapper = greenwaveInfoMapper;
this.baseCrossInfoMapper = baseCrossInfoMapper;
this.crossDataRealtimeMapper = crossDataRealtimeMapper;
......@@ -99,6 +119,12 @@ public class TrendServiceImpl implements TrendService {
this.greenwaveCrossMapper = greenwaveCrossMapper;
this.crossDirDataRealtimeMapper = crossDirDataRealtimeMapper;
this.greenwaveHistMapper = greenwaveHistMapper;
this.greenwaveRealtimeMapper = greenwaveRealtimeMapper;
this.strategyMapper = strategyMapper;
this.baseCrossSchedulesMapper = baseCrossSchedulesMapper;
this.crossSchedulesPlanMapper = crossSchedulesPlanMapper;
this.baseCrossSectionMapper = baseCrossSectionMapper;
this.baseCrossSchemeMapper = baseCrossSchemeMapper;
}
@Override
......@@ -117,7 +143,7 @@ public class TrendServiceImpl implements TrendService {
// 计算持续时间
buildDuration(greenwaveListVO);
// 构造路口列表
String greenwaveId = greenwaveListVO.getId();
Integer greenwaveId = greenwaveListVO.getId();
List<GreenwaveListVO.CrossListElement> crossList = buildCrossList(greenwaveId);
greenwaveListVO.setCrossList(crossList);
}
......@@ -354,7 +380,148 @@ public class TrendServiceImpl implements TrendService {
@Override
public GreenwaveDetailVO greenwaveDetail(GreenwaveIdBO greenwaveIdBO) {
return null;
Integer greenwaveId = greenwaveIdBO.getGreenwaveId();
GreenwaveDetailVO res = new GreenwaveDetailVO();
GreenwaveRealtimePO greenwaveRealtimePO = greenwaveRealtimeMapper.selectById(greenwaveId);
GreenwaveInfoPO greenwaveInfoPO = greenwaveInfoMapper.selectById(greenwaveId);
res.setName(greenwaveInfoPO.getName());
res.setStatus(greenwaveInfoPO.getStatus());
double uncoordinatePhaseQueue = greenwaveRealtimePO.getUncoordinatePhaseQueue();
res.setUncoordinatePhaseQueue((int)uncoordinatePhaseQueue);
double noparkPassRate = greenwaveRealtimePO.getNoparkPassRate();
res.setNoparkPassRate((int) (noparkPassRate * 100));
res.setTrvalTime(greenwaveRealtimePO.getTrvalTime());
List<String> strategyList = strategyMapper.selectAllNames();
res.setStrategyList(strategyList);
Integer strategyId = greenwaveInfoPO.getStrategyId();
StrategyPO strategyPO = strategyMapper.selectById(strategyId);
res.setStrategy(strategyPO.getStrategyName());
List<GreenwaveDetailVO.GreenwaveCross> greenwaveCrossList = buildGreenwaveCrossList(greenwaveId);
res.setGreenwaveCrossList(greenwaveCrossList);
return res;
}
private List<GreenwaveDetailVO.GreenwaveCross> buildGreenwaveCrossList(Integer greenwaveId) {
List<GreenwaveDetailVO.GreenwaveCross> res = new ArrayList<>();
List<GreenwaveCrossPO> greenwaveCrossList = greenwaveCrossMapper.selectByGreenwaveId(greenwaveId);
int size = greenwaveCrossList.size();
for (int i = 0; i < size; i++) {
GreenwaveCrossPO greenwaveCrossPO = greenwaveCrossList.get(i);
GreenwaveDetailVO.GreenwaveCross greenwaveCross = new GreenwaveDetailVO.GreenwaveCross();
String crossId = greenwaveCrossPO.getCrossId();
greenwaveCross.setCrossId(crossId);
BaseCrossInfoPO baseCrossInfoPO = baseCrossInfoMapper.selectById(crossId);
greenwaveCross.setCrossName(baseCrossInfoPO.getName());
// 根据路段获取距离
Integer distanceToNextCross = null;
if (i < size - 1) { // 不是最后一个路口
distanceToNextCross = calcDistance(greenwaveCrossList, i, crossId);
}
greenwaveCross.setDistanceToNextCross(distanceToNextCross);
// 查找方向平均速度
Double speed = calcSpeed(greenwaveCrossList, i, crossId);
greenwaveCross.setSpeed(speed);
// 根据当前时间获取方案信息
Date todayDate = new Date();
// 获取当前执行的调度
BaseCrossSchedulesPO baseCrossSchedulesPO = baseCrossSchedulesMapper.selectExecByCrossId(crossId);
Integer schedulesId = baseCrossSchedulesPO.getId();
// 获取日计划
Integer planId = null;
// 判断是否是特殊日期
CrossSchedulesPlanPO crossSchedulesPlanPO =
crossSchedulesPlanMapper.selectBySpecialDate(crossId, schedulesId, todayDate);
if (ObjectUtil.isNotEmpty(crossSchedulesPlanPO)) {
planId = crossSchedulesPlanPO.getPlanId();
} else {
// 判断是星期几
int weekday = convertWeekDay(DateUtil.dayOfWeek(todayDate));
CrossSchedulesPlanPO weekdayPlanPO =
crossSchedulesPlanMapper.selectByWeekday(crossId, schedulesId, weekday);
planId = weekdayPlanPO.getPlanId();
}
// 获取当前执行的方案
List<CrossSectionPO> baseCrossSectionPOList =
baseCrossSectionMapper.selectByCrossAndPlan(crossId, planId);
Integer currentSchemeId = findCurrentScheme(baseCrossSectionPOList, todayDate);
BaseCrossSchemePO baseCrossSchemePO = baseCrossSchemeMapper.selectById(currentSchemeId);
greenwaveCross.setOffset(baseCrossSchemePO.getOffset());
List<GreenwaveDetailVO.GreenwavePhase> greenwavePhaseList = getGreenwavePhaseList();
greenwaveCross.setGreenwavePhaseList(greenwavePhaseList);
res.add(greenwaveCross);
}
return res;
}
private List<GreenwaveDetailVO.GreenwavePhase> getGreenwavePhaseList() {
List<GreenwaveDetailVO.GreenwavePhase> res = new ArrayList<>();
return res;
}
private Integer findCurrentScheme(List<CrossSectionPO> baseCrossSectionPOList, Date todayDate) {
Integer schemeId = null;
for (CrossSectionPO crossSectionPO : baseCrossSectionPOList) {
String startTimeRaw = crossSectionPO.getStartTime();
String endTimeRaw = crossSectionPO.getEndTime();
String startTimeStr = startTimeRaw.replace(":", "");
String endTimeStr = endTimeRaw.replace(":", "");
int startTime = Integer.parseInt(startTimeStr);
int endTime = Integer.parseInt(endTimeStr);
String todayRaw = DateUtil.format(todayDate, "HH:mm");
String todayStr = todayRaw.replace(":", "");
int todayTime = Integer.parseInt(todayStr);
if (todayTime >= startTime && todayTime <= endTime) {
schemeId = crossSectionPO.getSchemeId();
}
}
return schemeId;
}
private int convertWeekDay(int i) {
if (1 == i) {
return 7;
}
return i - 1;
}
private Double calcSpeed(List<GreenwaveCrossPO> greenwaveCrossList, int i, String currentCrossId) {
int size = greenwaveCrossList.size();
int lastCrossIndex = size - 1;
if (i != lastCrossIndex) { // 不是最后一个路口
GreenwaveCrossPO nextCross = greenwaveCrossList.get(i + 1);
String nextCrossId = nextCross.getCrossId();
RidInfoEntity ridInfoEntity = ridInfoMapper.selectByStartEnd(currentCrossId, nextCrossId);
Integer outDir = ridInfoEntity.getOutDir();
CrossDirDataRealtimePO crossDirDataRealtimePO =
crossDirDataRealtimeMapper.selectByCrossIdAndDirType(currentCrossId, outDir);
return crossDirDataRealtimePO.getSpeed();
} else {
GreenwaveCrossPO preCross = greenwaveCrossList.get(i - 1);
String preCrossId = preCross.getCrossId();
RidInfoEntity ridInfoEntity = ridInfoMapper.selectByStartEnd(preCrossId, currentCrossId);
Integer inDir = ridInfoEntity.getInDir();
CrossDirDataRealtimePO crossDirDataRealtimePO =
crossDirDataRealtimeMapper.selectByInDir(currentCrossId, inDir);
return crossDirDataRealtimePO.getSpeed();
}
}
private Integer calcDistance(List<GreenwaveCrossPO> greenwaveCrossList, int i, String currentCrossId) {
GreenwaveCrossPO nextCross = greenwaveCrossList.get(i + 1);
String nextCrossId = nextCross.getCrossId();
RidInfoEntity ridInfoEntity = ridInfoMapper.selectByStartEnd(currentCrossId, nextCrossId);
double length = ridInfoEntity.getLength();
return (int)length;
}
@Override
......@@ -593,7 +760,7 @@ public class TrendServiceImpl implements TrendService {
}
}
private List<GreenwaveListVO.CrossListElement> buildCrossList(String greenwaveId) {
private List<GreenwaveListVO.CrossListElement> buildCrossList(Integer greenwaveId) {
List<GreenwaveListVO.CrossListElement> crossList = new ArrayList<>();
List<String> crossIdList = greenwaveInfoMapper.selectCrossIdsById(greenwaveId);
if (CollectionUtil.isNotEmpty(crossIdList)) {
......
......@@ -51,5 +51,13 @@ public class GreenwaveDetailVO {
@NoArgsConstructor
@Data
public static class GreenwavePhase {
@ApiModelProperty(value = "相位序")
private Integer sort;
@ApiModelProperty(value = "相位号")
private String phaseNo;
@ApiModelProperty(value = "相位持续时间(秒)")
private Integer seconds;
@ApiModelProperty(value = "是否协调相位 0否 1是")
private Integer isCoordinate;
}
}
......@@ -14,7 +14,7 @@ import java.util.List;
@ApiModel(value = "GreenwaveListVO", description = "问题子区列表元素")
public class GreenwaveListVO {
@ApiModelProperty(value = "绿波ID")
private String id;
private Integer id;
@ApiModelProperty(value = "子区名称")
private String name;
@ApiModelProperty(value = "协调方式:0未开启;1相位差优化;2选择方案")
......
......@@ -60,5 +60,9 @@
and t1.strategy_id = t2.strategy_id
ORDER BY t1.idea_order desc limit 1
</select>
<select id="selectAllNames" resultType="java.lang.String">
SELECT idea_name
FROM t_strategy_idea
</select>
</mapper>
......@@ -61,5 +61,9 @@
from t_strategy_strategy
where id = #{strategyId}
</select>
<select id="selectAllNames" resultType="java.lang.String">
SELECT strategy_name
FROM t_strategy_strategy
</select>
</mapper>
......@@ -27,4 +27,11 @@
WHERE t2.green_id = #{greenwaveId}
</select>
<select id="selectById" resultType="net.wanji.databus.dao.entity.GreenwaveInfoPO">
select
id,strategy_id,name,length,width,dir,start_time,end_time,design_speed,design_cycly,section_id,status,wkt,gmt_create,gmt_modified
from t_greenwave_info
where id = #{id}
</select>
</mapper>
package net.wanji.web.po.scheme;
package net.wanji.databus.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
......@@ -2,7 +2,6 @@ package net.wanji.databus.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
......
package net.wanji.databus.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class GreenwaveInfoPO {
/** 绿波ID */
@ApiModelProperty(name = "绿波ID",notes = "")
private Integer id ;
@ApiModelProperty(name = "策略ID",notes = "")
private Integer strategyId ;
/** 绿波名称 */
@ApiModelProperty(name = "绿波名称",notes = "")
private String name ;
/** 绿波路段长度(米) */
@ApiModelProperty(name = "绿波路段长度(米)",notes = "")
private Double length ;
/** 绿波带宽(米) */
@ApiModelProperty(name = "绿波带宽(米)",notes = "")
private Double width ;
/** 协调方向:0正向;1反向;2双向 */
@ApiModelProperty(name = "协调方向:0正向;1反向;2双向",notes = "")
private Integer dir ;
/** 开始时间 */
@ApiModelProperty(name = "开始时间",notes = "")
private Date startTime ;
/** 结束时间 */
@ApiModelProperty(name = "结束时间",notes = "")
private Date endTime ;
/** 设计速度(km/h) */
@ApiModelProperty(name = "设计速度(km/h)",notes = "")
private Double designSpeed ;
/** 设计周期(秒) */
@ApiModelProperty(name = "设计周期(秒)",notes = "")
private Double designCycly ;
/** 时段ID */
@ApiModelProperty(name = "时段ID",notes = "")
private Integer sectionId ;
/** 协调方式:0未开启;1相位差优化;2选择方案 */
@ApiModelProperty(name = "协调方式:0未开启;1相位差优化;2选择方案",notes = "")
private Integer status ;
/** 区域边界 */
@ApiModelProperty(name = "区域边界",notes = "")
private String wkt ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
package net.wanji.databus.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class GreenwaveRealtimePO {
/** 绿波ID */
@ApiModelProperty(name = "绿波ID",notes = "")
private Integer id ;
/** 交通状态:1畅通;2缓行;3拥堵;4严重拥堵;5未知 */
@ApiModelProperty(name = "交通状态:1畅通;2缓行;3拥堵;4严重拥堵;5未知",notes = "")
private Integer status ;
/** 拥堵类型:1常规;2异常 */
@ApiModelProperty(name = "拥堵类型:1常规;2异常",notes = "")
private Integer type ;
/** 交通指数 */
@ApiModelProperty(name = "交通指数",notes = "")
private Double trafficIndex ;
/** 行程速度(km/h) */
@ApiModelProperty(name = "行程速度(km/h)",notes = "")
private Double speed ;
/** 行程时间(秒) */
@ApiModelProperty(name = "行程时间(秒)",notes = "")
private Integer trvalTime ;
/** 停车次数 */
@ApiModelProperty(name = "停车次数",notes = "")
private Double stopTimes ;
/** 拥堵距离(米) */
@ApiModelProperty(name = "拥堵距离(米)",notes = "")
private Double queueLength ;
/** 拥堵比例 */
@ApiModelProperty(name = "拥堵比例",notes = "")
private Double congRate ;
/** 延误时间(秒) */
@ApiModelProperty(name = "延误时间(秒)",notes = "")
private Integer delayTime ;
/** 不停车通过率 */
@ApiModelProperty(name = "不停车通过率",notes = "")
private Double noparkPassRate ;
/** 非协调相位二次排队 */
@ApiModelProperty(name = "非协调相位二次排队",notes = "")
private Double uncoordinatePhaseQueue ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
......@@ -46,4 +46,6 @@ public interface BaseCrossSchedulesMapper {
void updateStatus(Integer scheduleId);
BaseCrossSchedulesPO selectById(Integer scheduleId);
BaseCrossSchedulesPO selectExecByCrossId(String crossId);
}
......@@ -20,4 +20,6 @@ public interface BaseCrossSectionMapper {
void deleteByCrossId(@Param("crossId") String crossId);
List<CrossSectionPO> listCrossSectionPO(@Param("entity") CrossSectionPO entity);
List<CrossSectionPO> selectByCrossAndPlan(String crossId, Integer planId);
}
......@@ -24,4 +24,6 @@ public interface CrossDirDataRealtimeMapper extends BaseMapper<CrossDirDataRealt
Integer selectStatus(String secondId, Integer inDir, int inOutType);
List<CrossDirDataRealtimePO> selectBycrossId(String crossId);
CrossDirDataRealtimePO selectByInDir(String currentCrossId, Integer key);
}
package net.wanji.web.mapper.scheme;
package net.wanji.databus.dao.mapper;
import net.wanji.web.po.scheme.CrossSchedulesPlanPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO;
import java.util.Date;
import java.util.List;
/**
......@@ -21,4 +22,8 @@ public interface CrossSchedulesPlanMapper {
List<CrossSchedulesPlanPO> selectByCrossIdAndSchedulesId(@Param("crossId") String crossId,
@Param("schedulesId") Integer schedulesId);
CrossSchedulesPlanPO selectBySpecialDate(String crossId, Integer schedulesId, Date todayDate);
CrossSchedulesPlanPO selectByWeekday(String crossId, Integer schedulesId, int weekday);
}
package net.wanji.databus.dao.mapper;
import net.wanji.databus.dao.entity.GreenwaveRealtimePO;
import org.springframework.stereotype.Repository;
/**
* @author Kent HAN
* @date 2022/10/31 11:03
*/
@Repository
public interface GreenwaveRealtimeMapper {
GreenwaveRealtimePO selectById(Integer id);
}
......@@ -13,6 +13,10 @@
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<sql id="baseColumnList">
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
</sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_schedules(schedule_no,name,status,cross_id)
values (#{scheduleNo},#{name},#{status},#{crossId})
......@@ -36,22 +40,19 @@
</delete>
<select id="selectByCrossId" resultMap="BaseResultMap">
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
select <include refid="baseColumnList" />
from t_base_cross_schedules
where cross_id = #{crossId}
</select>
<select id="selectByCrossIdAndScheduleNo" resultType="net.wanji.databus.dao.entity.BaseCrossSchedulesPO">
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
select <include refid="baseColumnList" />
from t_base_cross_schedules
where cross_id = #{crossId} and schedule_no = #{scheduleNo}
</select>
<select id="selectById" resultType="net.wanji.databus.dao.entity.BaseCrossSchedulesPO">
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
select <include refid="baseColumnList" />
from t_base_cross_schedules
where id = #{scheduleId}
</select>
......@@ -108,5 +109,10 @@
</if>
</select>
<select id="selectExecByCrossId" resultType="net.wanji.databus.dao.entity.BaseCrossSchedulesPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules
where cross_id = #{crossId} and status = 1
</select>
</mapper>
\ No newline at end of file
......@@ -51,5 +51,11 @@
</where>
</select>
<select id="selectByCrossAndPlan" resultType="net.wanji.databus.dao.entity.CrossSectionPO">
select <include refid="Base_Column_list"/>
from t_base_cross_section
where cross_id = #{crossId} and plan_id = #{planId}
</select>
</mapper>
......@@ -78,7 +78,7 @@
<select id="selectNoPark" resultType="net.wanji.databus.po.CrossDirDataHistPO">
select <include refid="Base_Column_List"/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type = 1 and dir_type = #{dir}
where cross_id = #{crossId} and in_out_type = 2 and dir_type = #{dir}
and batch_time <![CDATA[ <= ]]> #{currentSeconds}
and batch_time <![CDATA[ >= ]]> #{preSeconds}
</select>
......@@ -86,7 +86,7 @@
<select id="selectPhaseQueue" resultType="net.wanji.databus.po.CrossDirDataHistPO">
select <include refid="Base_Column_List"/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type = 1 and dir_type != #{dir}
where cross_id = #{crossId} and in_out_type = 2 and dir_type != #{dir}
and batch_time <![CDATA[ <= ]]> #{currentSeconds}
and batch_time <![CDATA[ >= ]]> #{preSeconds}
</select>
......@@ -94,7 +94,7 @@
<select id="selectNoParkEnd" resultType="net.wanji.databus.po.CrossDirDataHistPO">
select <include refid="Base_Column_List"/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type = 2 and dir_type = #{dir}
where cross_id = #{crossId} and in_out_type = 1 and dir_type = #{dir}
and batch_time <![CDATA[ <= ]]> #{currentSeconds}
and batch_time <![CDATA[ >= ]]> #{preSeconds}
</select>
......@@ -102,7 +102,7 @@
<select id="selectPhaseQueueEnd" resultType="net.wanji.databus.po.CrossDirDataHistPO">
select <include refid="Base_Column_List"/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type = 2 and dir_type != #{dir}
where cross_id = #{crossId} and in_out_type = 1 and dir_type != #{dir}
and batch_time <![CDATA[ <= ]]> #{currentSeconds}
and batch_time <![CDATA[ >= ]]> #{preSeconds}
</select>
......
......@@ -26,8 +26,8 @@
</resultMap>
<sql id="Base_Column_List">
id,dir_type,in_out_type,cross_id,length,status,traffic_index,start_time,capacity,duration,flow,speed,queue_length,
stop_times,delay_time,sturation,batch_time,gmt_create,gmt_modified,effusion_time
id,dir_type,in_out_type,cross_id,length,status,traffic_index,start_time,capacity,flow,speed,queue_length,stop_times,
delay_time,sturation,no_stop_rate,one_stop_rate,two_stop_rate,three_stop_rate,batch_time,gmt_create,gmt_modified,effusion_time
</sql>
<insert id="insertBatch" parameterType="net.wanji.databus.po.CrossDirDataRealtimePO">
......@@ -51,7 +51,7 @@
<select id="selectByCrossIdAndDirType" resultType="net.wanji.databus.po.CrossDirDataRealtimePO">
select <include refid="Base_Column_List"/>
from t_cross_dir_data_realtime
where cross_id = #{crossId} and dir_type = #{key} and in_out_type = 1
where cross_id = #{crossId} and dir_type = #{key} and in_out_type = 2
</select>
<select id="selectByCrossIdAndInOutType" resultType="net.wanji.databus.po.CrossDirDataRealtimePO">
......@@ -72,4 +72,10 @@
where cross_id = #{crossId}
</select>
<select id="selectByInDir" resultType="net.wanji.databus.po.CrossDirDataRealtimePO">
select <include refid="Base_Column_List"/>
from t_cross_dir_data_realtime
where cross_id = #{currentCrossId} and dir_type = #{key} and in_out_type = 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.wanji.web.mapper.scheme.CrossSchedulesPlanMapper">
<mapper namespace="net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper">
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.web.po.scheme.CrossSchedulesPlanPO" id="BaseResultMap">
<resultMap type="net.wanji.databus.dao.entity.CrossSchedulesPlanPO" id="BaseResultMap">
<result property="id" column="id"/>
<result property="crossId" column="cross_id"/>
<result property="schedulesId" column="schedules_id"/>
......@@ -14,6 +14,10 @@
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<sql id="baseColumnList">
id,cross_id,schedules_id,plan_id,week,special_date,gmt_create,gmt_modified
</sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_cross_schedules_plan(cross_id,schedules_id,plan_id,week,special_date)
values (#{crossId},#{schedulesId},#{planId},#{week},#{specialDate})
......@@ -24,12 +28,22 @@
WHERE cross_id = #{crossId}
</delete>
<select id="selectByCrossIdAndSchedulesId" resultType="net.wanji.web.po.scheme.CrossSchedulesPlanPO">
select
id,cross_id,schedules_id,plan_id,week,special_date,gmt_create,gmt_modified
<select id="selectByCrossIdAndSchedulesId" resultType="net.wanji.databus.dao.entity.CrossSchedulesPlanPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId}
</select>
<select id="selectBySpecialDate" resultType="net.wanji.databus.dao.entity.CrossSchedulesPlanPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId} and DATE(special_date) = DATE(#{todayDate});
</select>
<select id="selectByWeekday" resultType="net.wanji.databus.dao.entity.CrossSchedulesPlanPO">
select <include refid="baseColumnList" />
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId} and week = #{weekday};
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.wanji.databus.dao.mapper.GreenwaveRealtimeMapper">
<select id="selectById" resultType="net.wanji.databus.dao.entity.GreenwaveRealtimePO">
select
id,status,type,traffic_index,speed,trval_time,stop_times,queue_length,cong_rate,delay_time,nopark_pass_rate,uncoordinate_phase_queue,gmt_create,gmt_modified
from t_greenwave_realtime
where id = #{id}
</select>
</mapper>
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