Commit e982cc92 authored by zhouleilei's avatar zhouleilei

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
parents 5a660faf 6b528341
package net.wanji.utc.hisense.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.utc.hisense.pojo.view.VNtcipChannelPhaseDTO;
import net.wanji.utc.hisense.pojo.view.VNtcipChannelView;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author duanruiming
* @date 2024/11/11 19:55
*/
@DS("oracle")
public interface VNtcipChannelViewMapper extends BaseMapper<VNtcipChannelView> {
List<VNtcipChannelPhaseDTO> selectChannelPhaseList(@Param("code") String code);
}
package net.wanji.utc.hisense.pojo.view;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
* @author duanruiming
* @date 2024/11/12 10:40
*/
@Data
public class VNtcipChannelPhaseDTO {
@TableField("CINTSID")
private String cIntsID;
@TableField("NSTRATEGYNO")
private String nStrategyNo;
@TableField("NPHASENUMBER")
private String nPhaseNumber;
// 行人放行时间
@TableField("NPHASEWALK")
private String nPhaseWalk;
// 行人清空时间
@TableField("NPHASEPEDESTRIANCLEAR")
private String nPhasePedestrianClear;
// 最小绿
@TableField("NPHASEMINIMUMGREEN")
private String nPhaseMiniNumGreen;
// 单位延长绿
@TableField("NPHASEPASSAGE")
private String nPhasePassage;
// 最大绿1
@TableField("NPHASEMAXIMUM1")
private String nPhaseMaxiNum1;
// 最大绿2
@TableField("NPHASEMAXIMUM2")
private String nPhaseMaxiNum2;
// 相位黄灯时间
@TableField("NPHASEYELLOWCHANGE")
private String nPhaseYellowChange;
// 相位红灯清空时间
@TableField("NPHASEREDCLEAR")
private String nPhaseRedClear;
// 红灯保护时间
@TableField("NPHASEREDREVERT")
private String nPhaseRedRevert;
// 用到该相位的 ring 表号
@TableField("NPHASERING")
private String nPhaseRing;
// 并发相位
@TableField("NPHASECONCURRENCY")
private String nPhaseConCurrency;
// 并发相位长度
@TableField("NPHASECONCURRENCYLEN")
private String nPhaseConCurrencyLen;
// 红黄
@TableField("NREDYELLOW")
private String nRedYellow;
// 绿闪
@TableField("NGREENFLASH")
private String nGreenFlash;
// 安全红灯
@TableField("NSAFERED")
private String nSafeRed;
// 通道号
@TableField("NCHANNELNUMBER")
private String nChannelNumber;
// 通道类型
@TableField("NCHANNELCONTROLTYPE")
private String nChannelControlType;
// 通道灰度
@TableField("NCHANNELDIM")
private String nChannelDim;
}
package net.wanji.utc.hisense.pojo.view;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @author duanruiming
* @date 2024/11/11 19:52
* @description 海信通道视图实体
*/
@Data
@TableName("hicon.V_NTCIPCHANNEL")
public class VNtcipChannelView {
@TableField("CINTSID")
private String cIntsID;
@TableField("NCHANNELNUMBER")
private Integer nChannelNumber;
@TableField("NCHANNELCONTROLSOURCE")
private Integer nChannelControlSource;
@TableField("NCHANNELCONTROLTYPE")
private Integer nChannelControlType;
@TableField("NCHANNELDIM")
private Integer nChannelDim;
@TableField("NSTRATEGYNO")
private Integer nStrategyNo;
}
...@@ -7,6 +7,7 @@ import lombok.Data; ...@@ -7,6 +7,7 @@ import lombok.Data;
/** /**
* @author duanruiming * @author duanruiming
* @date 2024/11/07 11:15 * @date 2024/11/07 11:15
* @descrioption 海信调度视图实体
*/ */
@Data @Data
@TableName("hicon.V_NTCIPTIMEBASESCHEDULE") @TableName("hicon.V_NTCIPTIMEBASESCHEDULE")
......
...@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; ...@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.ScheduleUtil; import net.wanji.common.utils.tool.ScheduleUtil;
import net.wanji.common.utils.tool.StringUtils; import net.wanji.common.utils.tool.StringUtils;
import net.wanji.databus.dao.entity.CrossLightsPO;
import net.wanji.databus.dao.entity.CrossSchedulesPO; import net.wanji.databus.dao.entity.CrossSchedulesPO;
import net.wanji.databus.dao.mapper.CrossInfoMapper; import net.wanji.databus.dao.mapper.CrossInfoMapper;
import net.wanji.databus.dao.mapper.ManufacturerInfoMapper; import net.wanji.databus.dao.mapper.ManufacturerInfoMapper;
...@@ -14,6 +15,7 @@ import net.wanji.databus.po.CrossInfoPO; ...@@ -14,6 +15,7 @@ import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.CrossInfoPOExt; import net.wanji.databus.po.CrossInfoPOExt;
import net.wanji.databus.vo.PlanSectionVO; import net.wanji.databus.vo.PlanSectionVO;
import net.wanji.databus.vo.SchemePhaseLightsVO; import net.wanji.databus.vo.SchemePhaseLightsVO;
import net.wanji.utc.hisense.cache.CrossInfoCache;
import net.wanji.utc.hisense.common.OperationBaseDom; import net.wanji.utc.hisense.common.OperationBaseDom;
import net.wanji.utc.hisense.common.constants.HttpConstants; import net.wanji.utc.hisense.common.constants.HttpConstants;
import net.wanji.utc.hisense.mapper.VIntersectionMapper; import net.wanji.utc.hisense.mapper.VIntersectionMapper;
...@@ -65,6 +67,9 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -65,6 +67,9 @@ public class StaticInfoServiceImpl implements StaticInfoService {
private VNtcipTimeBaseDayplanMapper vNtcipTimeBaseDayplanMapper; private VNtcipTimeBaseDayplanMapper vNtcipTimeBaseDayplanMapper;
@Resource @Resource
private VNtcipTimeBaseAscActionMapper vNtcipTimeBaseAscActionMapper; private VNtcipTimeBaseAscActionMapper vNtcipTimeBaseAscActionMapper;
@Resource
private VNtcipChannelViewMapper vNtcipChannelViewMapper;
@Override @Override
public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception { public List<CrossInfoPO> crossBasicInfo(CrossInfoDTO crossInfoDTO) throws Exception {
...@@ -96,6 +101,12 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -96,6 +101,12 @@ public class StaticInfoServiceImpl implements StaticInfoService {
@Override @Override
public SchemePhaseLightsVO schemePhaseLights(SchemePhaseLightsDTO schemePhaseLightsDTO) throws Exception { public SchemePhaseLightsVO schemePhaseLights(SchemePhaseLightsDTO schemePhaseLightsDTO) throws Exception {
String crossId = schemePhaseLightsDTO.getCrossId();
Map<String, CrossInfoPO> crossInfoCache = CrossInfoCache.getCrossInfoCache();
CrossInfoPO crossInfoPO = crossInfoCache.get(crossId);
List<CrossLightsPO> crossLightsList = new ArrayList<>();
List<VNtcipChannelPhaseDTO> vNtcipChannelPhaseDTOS = vNtcipChannelViewMapper.selectChannelPhaseList(crossInfoPO.getCode());
log.error("======" + vNtcipChannelPhaseDTOS);
return null; return null;
} }
...@@ -111,14 +122,13 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -111,14 +122,13 @@ public class StaticInfoServiceImpl implements StaticInfoService {
List<VNtcipTimeBaseDayplan> vNtcipTimeBaseDayplans = vNtcipTimeBaseDayplanMapper.selectList(queryWrapper); List<VNtcipTimeBaseDayplan> vNtcipTimeBaseDayplans = vNtcipTimeBaseDayplanMapper.selectList(queryWrapper);
return null; return null;
} }
@Override @Override
public List<CrossSchedulesPO> crossSchedules(CrossSchedulesDTO crossSchedulesDTO) throws Exception { public List<CrossSchedulesPO> crossSchedules(CrossSchedulesDTO crossSchedulesDTO) throws Exception {
Map<String, String> codeCrossIdMap = getCodeCrossIdMap(crossSchedulesDTO);
// 路口编号列表 // 路口编号列表
List<String> crossIdList = crossSchedulesDTO.getCrossIdList(); List<String> crossIdList = crossSchedulesDTO.getCrossIdList();
// 信号机编号 // 信号机编号
...@@ -126,6 +136,8 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -126,6 +136,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
List<CrossSchedulesPO> results = new ArrayList<>(crossCodeList.size()); List<CrossSchedulesPO> results = new ArrayList<>(crossCodeList.size());
if (!CollectionUtils.isEmpty(crossCodeList)) { if (!CollectionUtils.isEmpty(crossCodeList)) {
for (String code : crossCodeList) { for (String code : crossCodeList) {
CrossInfoPO crossInfoBySignalCode = CrossInfoCache.getCrossInfoBySignalCode(code);
String crossId = crossInfoBySignalCode.getId();
LambdaQueryWrapper<VNtcipTimeBaseSchedule> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<VNtcipTimeBaseSchedule> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(VNtcipTimeBaseSchedule::getCIntsID, code); queryWrapper.eq(VNtcipTimeBaseSchedule::getCIntsID, code);
List<VNtcipTimeBaseSchedule> vNtcipTimeBaseSchedules = vNtcipTimeBaseScheduleMapper.selectList(queryWrapper); List<VNtcipTimeBaseSchedule> vNtcipTimeBaseSchedules = vNtcipTimeBaseScheduleMapper.selectList(queryWrapper);
...@@ -133,7 +145,7 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -133,7 +145,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
for (VNtcipTimeBaseSchedule vNtcipTimeBaseSchedule : vNtcipTimeBaseSchedules) { for (VNtcipTimeBaseSchedule vNtcipTimeBaseSchedule : vNtcipTimeBaseSchedules) {
if (Objects.nonNull(vNtcipTimeBaseSchedule)) { if (Objects.nonNull(vNtcipTimeBaseSchedule)) {
CrossSchedulesPO crossSchedulesPO = new CrossSchedulesPO(); CrossSchedulesPO crossSchedulesPO = new CrossSchedulesPO();
crossSchedulesPO.setCrossId(codeCrossIdMap.get(code)); crossSchedulesPO.setCrossId(crossId);
crossSchedulesPO.setScheduleNo(vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber()); crossSchedulesPO.setScheduleNo(vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber());
crossSchedulesPO.setName("海信调度" + vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber()); crossSchedulesPO.setName("海信调度" + vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber());
// 海信月份 // 海信月份
...@@ -142,6 +154,8 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -142,6 +154,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
Integer hisenseWeek = vNtcipTimeBaseSchedule.getNTimeBaseScheduleDay(); Integer hisenseWeek = vNtcipTimeBaseSchedule.getNTimeBaseScheduleDay();
// 日期 2147483647 // 日期 2147483647
Integer hisenseDays = vNtcipTimeBaseSchedule.getNTimeBaseScheduleDate(); Integer hisenseDays = vNtcipTimeBaseSchedule.getNTimeBaseScheduleDate();
// 时段表号
Integer hisensePlanId = vNtcipTimeBaseSchedule.getNTimeBaseScheduleDayPlan();
String monthsStr = ScheduleUtil.getSchedule(hisenseMonth.longValue(), 1); String monthsStr = ScheduleUtil.getSchedule(hisenseMonth.longValue(), 1);
String daysStr = ScheduleUtil.getSchedule(hisenseDays.longValue(), 2); String daysStr = ScheduleUtil.getSchedule(hisenseDays.longValue(), 2);
String weekStr = ScheduleUtil.getSchedule(hisenseWeek.longValue(), 3); String weekStr = ScheduleUtil.getSchedule(hisenseWeek.longValue(), 3);
...@@ -149,19 +163,19 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -149,19 +163,19 @@ public class StaticInfoServiceImpl implements StaticInfoService {
String[] weekSplit = weekStr.split(","); String[] weekSplit = weekStr.split(",");
for (String oneWeek : weekSplit) { for (String oneWeek : weekSplit) {
CrossSchedulesPO crossSchedulesPOWeek = new CrossSchedulesPO(); CrossSchedulesPO crossSchedulesPOWeek = new CrossSchedulesPO();
crossSchedulesPOWeek.setCrossId(codeCrossIdMap.get(code)); crossSchedulesPOWeek.setCrossId(crossId);
crossSchedulesPOWeek.setScheduleNo(vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber()); crossSchedulesPOWeek.setScheduleNo(vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber());
crossSchedulesPOWeek.setName("海信调度" + vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber()); crossSchedulesPOWeek.setName("海信调度" + vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber());
crossSchedulesPOWeek.setWeek(Integer.valueOf(oneWeek)); crossSchedulesPOWeek.setWeek(Integer.valueOf(oneWeek));
crossSchedulesPOWeek.setMonths(monthsStr); crossSchedulesPOWeek.setMonths(monthsStr);
crossSchedulesPOWeek.setDays(daysStr); crossSchedulesPOWeek.setDays(daysStr);
crossSchedulesPOWeek.setPlanId(0); crossSchedulesPOWeek.setPlanId(hisensePlanId);
results.add(crossSchedulesPOWeek); results.add(crossSchedulesPOWeek);
} }
} else { } else {
// 不执行周调度 // 不执行周调度
CrossSchedulesPO crossSchedulesPOMonthDays = new CrossSchedulesPO(); CrossSchedulesPO crossSchedulesPOMonthDays = new CrossSchedulesPO();
crossSchedulesPOMonthDays.setCrossId(codeCrossIdMap.get(code)); crossSchedulesPOMonthDays.setCrossId(crossId);
crossSchedulesPOMonthDays.setScheduleNo(vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber()); crossSchedulesPOMonthDays.setScheduleNo(vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber());
crossSchedulesPOMonthDays.setName("海信调度" + vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber()); crossSchedulesPOMonthDays.setName("海信调度" + vNtcipTimeBaseSchedule.getNTimeBaseScheduleNumber());
crossSchedulesPOMonthDays.setWeek(null); crossSchedulesPOMonthDays.setWeek(null);
...@@ -178,19 +192,6 @@ public class StaticInfoServiceImpl implements StaticInfoService { ...@@ -178,19 +192,6 @@ public class StaticInfoServiceImpl implements StaticInfoService {
return results; return results;
} }
/**
* 通过厂商编码,获取map<code 信号机编码, crossId 路口编号></>
*
* @param crossSchedulesDTO
* @return
*/
private Map<String, String> getCodeCrossIdMap(CrossSchedulesDTO crossSchedulesDTO) {
Integer id = manufacturerInfoMapper.selectIdByCode("HISENSE");
List<CrossInfoPO> crossInfoPOList = crossInfoMapper.selectByManufacturerId(id);
List<String> codeList = crossInfoPOList.stream().map(CrossInfoPO::getCode).collect(Collectors.toList());
Map<String, String> codeCrossIdMap = crossInfoPOList.stream().collect(Collectors.toMap(CrossInfoPO::getCode, CrossInfoPO::getId));
return codeCrossIdMap;
}
@Override @Override
public CoordinationStatus crossPlan(String crossId) throws Exception { public CoordinationStatus crossPlan(String crossId) throws Exception {
......
<?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.utc.hisense.mapper.VNtcipChannelViewMapper">
<resultMap type="net.wanji.utc.hisense.pojo.view.VNtcipChannelPhaseDTO" id="BaseResultMap">
<result property="cIntsID" column="CINTSID"/>
<result property="nStrategyNo" column="NSTRATEGYNO"/>
<result property="nPhaseNumber" column="NPHASENUMBER"/>
<result property="nPhaseWalk" column="NPHASEWALK"/>
<result property="nPhasePedestrianClear" column="NPHASEPEDESTRIANCLEAR"/>
<result property="nPhaseMiniNumGreen" column="NPHASEMINIMUMGREEN"/>
<result property="nPhasePassage" column="NPHASEPASSAGE"/>
<result property="nPhaseMaxiNum1" column="NPHASEMAXIMUM1"/>
<result property="nPhaseMaxiNum2" column="NPHASEMAXIMUM2"/>
<result property="nPhaseYellowChange" column="NPHASEYELLOWCHANGE"/>
<result property="nPhaseRedClear" column="NPHASEREDCLEAR"/>
<result property="nPhaseRedRevert" column="NPHASEREDREVERT"/>
<result property="nPhaseRing" column="NPHASERING"/>
<result property="nPhaseConCurrency" column="NPHASECONCURRENCY"/>
<result property="nPhaseConCurrencyLen" column="NPHASECONCURRENCYLEN"/>
<result property="nRedYellow" column="NREDYELLOW"/>
<result property="nGreenFlash" column="NGREENFLASH"/>
<result property="nSafeRed" column="NSAFERED"/>
<result property="nChannelNumber" column="NCHANNELNUMBER"/>
<result property="nChannelControlType" column="NCHANNELCONTROLTYPE"/>
<result property="nChannelDim" column="NCHANNELDIM"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<select id="selectChannelPhaseList" resultMap="BaseResultMap" parameterType="java.lang.String">
select
phase.CINTSID,
channel.NSTRATEGYNO,
phase.NPHASENUMBER,
phase.NPHASEWALK,
phase.NPHASEPEDESTRIANCLEAR,
phase.NPHASEMINIMUMGREEN,
phase.NPHASEPASSAGE,
phase.NPHASEMAXIMUM1,
phase.NPHASEMAXIMUM2,
phase.NPHASEYELLOWCHANGE,
phase.NPHASEREDCLEAR,
phase.NPHASEREDREVERT,
phase.NPHASERING,
phase.NPHASECONCURRENCY,
phase.NPHASECONCURRENCYLEN,
phase.NREDYELLOW,
phase.NGREENFLASH,
phase.NSAFERED,
channel.NCHANNELNUMBER,
channel.NCHANNELCONTROLTYPE,
channel.NCHANNELDIM
from hicon.V_NTCIPPHASE phase
left join hicon.V_NTCIPCHANNEL channel
on channel.CINTSID = phase.CINTSID and channel.NSTRATEGYNO = phase.NSTRATEGYNO and phase.NPHASENUMBER = channel.NCHANNELCONTROLSOURCE
WHERE phase.CINTSID = #{code} and channel.NSTRATEGYNO >= 0 order by phase.NSTRATEGYNO, phase.NPHASENUMBER
</select>
</mapper>
\ No newline at end of file
package net.wanji.opt.vo; package net.wanji.databus.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import net.wanji.databus.vo.SchemeSendVO;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
......
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