Commit 69c00675 authored by hkl's avatar hkl

feat:1.动静态分析代码核心业务代码提交

parent 4c6e0b11
...@@ -4,7 +4,8 @@ import org.jeecg.modules.deviceAsset.service.ICurveManagementService; ...@@ -4,7 +4,8 @@ import org.jeecg.modules.deviceAsset.service.ICurveManagementService;
import org.jeecg.modules.deviceAsset.service.IRailManagementService; import org.jeecg.modules.deviceAsset.service.IRailManagementService;
import org.jeecg.modules.deviceAsset.service.ISwitchManagementService; import org.jeecg.modules.deviceAsset.service.ISwitchManagementService;
import org.jeecg.modules.deviceAsset.service.IVerticalCurveManagementService; import org.jeecg.modules.deviceAsset.service.IVerticalCurveManagementService;
import org.jeecg.modules.deviceAsset.service.impl.RailManagementServiceImpl; import org.jeecg.modules.dynamicStaticAnalysis.algorithm.AnalysisAlgorithm;
import org.jeecg.modules.dynamicStaticAnalysis.algorithm.SingleConsumer;
import org.jeecg.modules.subwayNetwork.service.ILineAliasService; import org.jeecg.modules.subwayNetwork.service.ILineAliasService;
import org.jeecg.modules.utils.UnitCodeUtil; import org.jeecg.modules.utils.UnitCodeUtil;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
...@@ -32,6 +33,10 @@ public class InitData implements InitializingBean { ...@@ -32,6 +33,10 @@ public class InitData implements InitializingBean {
@Resource @Resource
private IRailManagementService railManagementService; private IRailManagementService railManagementService;
@Resource
private AnalysisAlgorithm analysisAlgorithm;
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
UnitCodeUtil.setService(lineAliasService, UnitCodeUtil.setService(lineAliasService,
...@@ -39,5 +44,7 @@ public class InitData implements InitializingBean { ...@@ -39,5 +44,7 @@ public class InitData implements InitializingBean {
curveManagementService, curveManagementService,
verticalCurveManagementService, verticalCurveManagementService,
railManagementService); railManagementService);
SingleConsumer.setService(analysisAlgorithm);
} }
} }
...@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component; ...@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
public class SystemInitRunner implements ApplicationRunner { public class SystemInitRunner implements ApplicationRunner {
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
// 开启消费者 // 单独开启消费者线程
new Thread(SingleConsumer::consume).start(); new Thread(SingleConsumer::consume).start();
} }
} }
...@@ -21,5 +21,5 @@ public interface RailManagementMapper extends BaseMapper<RailManagement> { ...@@ -21,5 +21,5 @@ public interface RailManagementMapper extends BaseMapper<RailManagement> {
Page<RailManagementVO> queryPageList(Page<RailManagementVO> pageData, RailManagementDTO dto); Page<RailManagementVO> queryPageList(Page<RailManagementVO> pageData, RailManagementDTO dto);
List<Map<String, Object>> getLineSpecialRail(String lineAliasId); List<Map<String, Object>> getLineSpecialRail(String lightRailId, String lineAliasId);
} }
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
</select> </select>
<select id="getLineSpecialRail" resultType="java.util.Map"> <select id="getLineSpecialRail" resultType="java.util.Map">
SELECT SELECT
id,
unitCode, unitCode,
startMileage, startMileage,
endMileage, endMileage,
...@@ -35,38 +36,47 @@ ...@@ -35,38 +36,47 @@
FROM FROM
( (
SELECT SELECT
t1.id,
t1.unit_code unitCode, t1.unit_code unitCode,
t1.curve_mileage_zh startMileage, t1.curve_mileage_zh startMileage,
t1.curve_mileage_hz endMileage, t1.curve_mileage_hz endMileage,
'曲线' type '曲线' type
FROM FROM
t_da_curve_management t1 t_da_curve_management t1
LEFT JOIN t_sn_train_station t2 ON t1.section_id = t1.id
WHERE WHERE
t1.line_alias_id = #{lineAliasId} t1.line_alias_id = #{lineAliasId}
AND t2.light_rail_id = #{lightRailId}
UNION ALL UNION ALL
SELECT SELECT
unit_code unitCode, t1.id,
starting_mileage startMileage, t1.unit_code unitCode,
end_mileage endMileage, t1.starting_mileage startMileage,
t1.end_mileage endMileage,
'竖曲线' type '竖曲线' type
FROM FROM
t_da_vertical_curve_management t_da_vertical_curve_management t1
LEFT JOIN t_sn_train_station t2 ON t1.section_id = t1.id
WHERE WHERE
line_alias_id = #{lineAliasId} t1.line_alias_id = #{lineAliasId}
AND t2.light_rail_id = #{lightRailId}
UNION ALL UNION ALL
SELECT SELECT
unit_code unitCode, t1.id,
byroad_pre_mileage startMileage, t1.unit_code unitCode,
byroad_end_mileage endMileage, t1.byroad_pre_mileage startMileage,
t1.byroad_end_mileage endMileage,
'道岔' type '道岔' type
FROM FROM
t_da_switch_management t_da_switch_management t1
LEFT JOIN t_sn_section_station_map t2 ON t1.section_station_map_id = t2.id
LEFT JOIN t_sn_subway_section t3 ON t2.section_id = t3.id
AND t3.line_alias_id = t1.line_alias_id
WHERE WHERE
line_alias_id = #{lineAliasId} t1.line_alias_id = #{lineAliasId}
AND t2.light_rail_id = #{lightRailId}
) t ) t
ORDER BY ORDER BY
t.startMileage t.startMileage
......
...@@ -30,5 +30,5 @@ public interface IRailManagementService extends IService<RailManagement> { ...@@ -30,5 +30,5 @@ public interface IRailManagementService extends IService<RailManagement> {
* *
* @param lineAliasId 线别ID * @param lineAliasId 线别ID
*/ */
List<Map<String, Object>> getLineSpecialRail(String lineAliasId); List<Map<String, Object>> getLineSpecialRail(String lightRailId, String lineAliasId);
} }
...@@ -2,12 +2,9 @@ package org.jeecg.modules.deviceAsset.service.impl; ...@@ -2,12 +2,9 @@ package org.jeecg.modules.deviceAsset.service.impl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ognl.IntHashMap;
import org.jeecg.common.util.UUIDGenerator; import org.jeecg.common.util.UUIDGenerator;
import org.jeecg.modules.deviceAsset.dto.RailManagementDTO; import org.jeecg.modules.deviceAsset.dto.RailManagementDTO;
import org.jeecg.modules.deviceAsset.entity.RailManagement; import org.jeecg.modules.deviceAsset.entity.RailManagement;
...@@ -188,7 +185,7 @@ public class RailManagementServiceImpl extends ServiceImpl<RailManagementMapper, ...@@ -188,7 +185,7 @@ public class RailManagementServiceImpl extends ServiceImpl<RailManagementMapper,
* @param lineAliasId * @param lineAliasId
*/ */
private void generationCore(LightRail lightRail, List<RailManagement> allRailList, String lineAliasId) { private void generationCore(LightRail lightRail, List<RailManagement> allRailList, String lineAliasId) {
List<Map<String, Object>> lineSpecialRailList = this.getLineSpecialRail(lineAliasId); List<Map<String, Object>> lineSpecialRailList = this.getLineSpecialRail(lightRail.getId(),lineAliasId);
BigDecimal lineStartMileage = BigDecimal.ZERO; BigDecimal lineStartMileage = BigDecimal.ZERO;
BigDecimal endMileage = lightRail.getUpLineMileage(); BigDecimal endMileage = lightRail.getUpLineMileage();
...@@ -271,7 +268,7 @@ public class RailManagementServiceImpl extends ServiceImpl<RailManagementMapper, ...@@ -271,7 +268,7 @@ public class RailManagementServiceImpl extends ServiceImpl<RailManagementMapper,
@Override @Override
public List<Map<String, Object>> getLineSpecialRail(String lineAliasId) { public List<Map<String, Object>> getLineSpecialRail(String lightRailId, String lineAliasId) {
return this.baseMapper.getLineSpecialRail(lineAliasId); return this.baseMapper.getLineSpecialRail(lightRailId,lineAliasId);
} }
} }
package org.jeecg.modules.dynamicStaticAnalysis.algorithm;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.Converter;
import org.jeecg.modules.checkData.equipmentCheckData.entity.MovementCourse;
import org.jeecg.modules.checkData.equipmentCheckData.entity.MovementCourseInfo;
import org.jeecg.modules.checkData.equipmentCheckData.service.IMovementCourseInfoService;
import org.jeecg.modules.checkData.equipmentCheckData.service.IMovementCourseService;
import org.jeecg.modules.dynamicStaticAnalysis.entity.AnalysisBatch;
import org.jeecg.modules.dynamicStaticAnalysis.entity.AnalysisBatchCheckDataMap;
import org.jeecg.modules.dynamicStaticAnalysis.mapper.AnalysisAlgorithmMapper;
import org.jeecg.modules.dynamicStaticAnalysis.service.IAnalysisBatchCheckDataMapService;
import org.jeecg.modules.dynamicStaticAnalysis.service.IAnalysisBatchService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 分析算法
*/
@Service
public class AnalysisAlgorithm {
@Resource
private AnalysisAlgorithmMapper analysisAlgorithmMapper;
@Resource
private IAnalysisBatchService analysisBatchService;
@Resource
private IAnalysisBatchCheckDataMapService analysisBatchCheckDataMapService;
@Resource
private IMovementCourseInfoService movementCourseInfoService;
@Resource
private IMovementCourseService movementCourseService;
/**
* 分析
*/
public void analysis(String analysisBatchId) {
// 1.映射单元格
// 1.1 获取分析批次数据
AnalysisBatch analysisBatch = analysisBatchService.getById(analysisBatchId);
List<AnalysisBatchCheckDataMap> analysisBatchCheckDataMapList = analysisBatchCheckDataMapService.lambdaQuery()
.eq(AnalysisBatchCheckDataMap::getAnalysisBatchId, analysisBatchId)
.list();
// 1.2 按公里数正序排序所有道岔,钢轨,曲线,竖曲线
List<Map<String, Object>> unitDeviceList = analysisAlgorithmMapper.getUnitDevice(analysisBatch.getLightRailId(), analysisBatch.getLineAliasId());
// 1.3 获取检查数据
for (AnalysisBatchCheckDataMap checkDataMap : analysisBatchCheckDataMapList) {
// 检查数据类型 1-人工静态检查 2-轨检仪静态检查 3-轨检车检查 4-添乘仪检查
if (1 == checkDataMap.getEkType()) {
// 1 获取人工检查数据
List<MovementCourse> checkItemList = movementCourseService.lambdaQuery()
.eq(MovementCourse::getMovementMasterId, checkDataMap.getEkId())
.list();
List<MovementCourseInfo> checkItemItemDetailList = movementCourseInfoService.lambdaQuery()
.eq(MovementCourseInfo::getMovementMasterId, checkDataMap.getEkId())
.list();
Map<String, List<MovementCourseInfo>> checkItemItemDetailMap = checkItemItemDetailList.stream()
.collect(Collectors.groupingBy(MovementCourseInfo::getMovementCourseId));
// 2 循环遍历检查项目比较【开始-结束】来映射关联关系
for (MovementCourse checkItem : checkItemList) {
// 2.1 这里可能出现开始时间比结束时间大的情况
String seq = "ASC";
BigDecimal checkItemStartingMileage = checkItem.getCourseStartingMileage();
BigDecimal checkItemEndMileage = checkItem.getCourseEndMileage();
if (checkItemStartingMileage.compareTo(checkItemEndMileage) > 0) {
seq = "DESC"; // 说明起始和结束里程颠倒了
checkItemStartingMileage = checkItem.getCourseEndMileage();
checkItemEndMileage = checkItem.getCourseStartingMileage();
}
// 2.2 单元设备中心里程落在检查项目【开始-结束】这个区间视为这个区间的单元设备
for (Map<String, Object> unitDevice : unitDeviceList) {
BigDecimal startMileage = Convert.toBigDecimal(unitDevice.get("startMileage"));
BigDecimal endMileage = Convert.toBigDecimal(unitDevice.get("endMileage"));
BigDecimal centerMileage = startMileage.add(endMileage).divide(new BigDecimal("2"), 3, RoundingMode.HALF_UP);
if (checkItemStartingMileage.compareTo(centerMileage) > 0) {
break;
}
if (checkItemStartingMileage.compareTo(centerMileage) <= 0 && checkItemEndMileage.compareTo(centerMileage) > 0) {
List<MovementCourseInfo> movementCourseInfos = checkItemItemDetailMap.get(checkItem.getId());
Map<String, List<MovementCourseInfo>> trackCodeMap = movementCourseInfos.stream().collect(Collectors.groupingBy(MovementCourseInfo::getTrackCode));
int size = trackCodeMap.size();
if (size != 0) {
BigDecimal divide = checkItemStartingMileage.add(checkItemEndMileage).divide(new BigDecimal(size), 3, RoundingMode.HALF_UP);
}
}
}
}
}
// 1.映射单元格
// 2.评分
}
}
}
\ No newline at end of file
...@@ -3,6 +3,10 @@ package org.jeecg.modules.dynamicStaticAnalysis.algorithm; ...@@ -3,6 +3,10 @@ package org.jeecg.modules.dynamicStaticAnalysis.algorithm;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
/**
* @author hkl
* 换冲区
*/
public class Buffer { public class Buffer {
/** /**
* 缓冲队列最大缓存能力 * 缓冲队列最大缓存能力
...@@ -11,7 +15,7 @@ public class Buffer { ...@@ -11,7 +15,7 @@ public class Buffer {
/** /**
* 缓冲队列 * 缓冲队列
* 这个队列是一个基于链表的阻塞队列,它的容量可以是有界的或无界的。 * 这个队列是一个基于链表的阻塞队列,它的容量可以是有界的或无界的。
* 当使用有界容量时,如果队列已满,新插入操作会被阻塞,直到有空间可用。 * 当使用有界容量时,如果队列已满,新插入操作会被阻塞,直到有空间可用。
* 因为队列可以无限增长(无界),所以在插入元素时不会发生阻塞。 * 因为队列可以无限增长(无界),所以在插入元素时不会发生阻塞。
*/ */
public static final BlockingQueue<String> queue = new LinkedBlockingQueue<>(MAX_CAPACITY); public static final BlockingQueue<String> queue = new LinkedBlockingQueue<>(MAX_CAPACITY);
......
...@@ -13,10 +13,10 @@ public class MultiProducer { ...@@ -13,10 +13,10 @@ public class MultiProducer {
public static void produce(String analysisBatchId) { public static void produce(String analysisBatchId) {
try { try {
Buffer.queue.put(analysisBatchId); Buffer.queue.put(analysisBatchId);
log.info("MultiProducer[生产者]|线程id:【" + Thread.currentThread().getId() + "】=============分析批次ID:【" + analysisBatchId+"】"); log.info("MultiProducer[生产者]|线程id:【" + Thread.currentThread().getId() + "】=============分析批次ID:【" + analysisBatchId + "】");
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
log.error("MultiProducer:"); log.info("MultiProducer[生产者]|线程id:【" + Thread.currentThread().getId() + "】=============分析批次ID:【" + analysisBatchId + "】异常信息:" + e.getMessage());
} }
} }
} }
...@@ -8,15 +8,23 @@ import lombok.extern.slf4j.Slf4j; ...@@ -8,15 +8,23 @@ import lombok.extern.slf4j.Slf4j;
*/ */
@Slf4j @Slf4j
public class SingleConsumer { public class SingleConsumer {
private static AnalysisAlgorithm analysisAlgorithm;
public static void setService(AnalysisAlgorithm analysisAlgorithm) {
SingleConsumer.analysisAlgorithm = analysisAlgorithm;
}
public static void consume() { public static void consume() {
try { try {
while (true) { while (true) {
String analysisBatchId = Buffer.queue.take(); String analysisBatchId = Buffer.queue.take();
log.info("SingleConsumer[消费者]|线程id:【" + Thread.currentThread().getId() + "】=============分析批次ID:【" + analysisBatchId+"】"); log.info("SingleConsumer[消费者]|线程id:【" + Thread.currentThread().getId() + "】=============分析批次ID:【" + analysisBatchId + "】");
analysisAlgorithm.analysis(analysisBatchId);
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
log.info("SingleConsumer[消费者]|线程id:【" + Thread.currentThread().getId() + "】异常信息:" + e.getMessage());
} }
} }
......
...@@ -55,17 +55,17 @@ public class AnalysisBatch implements Serializable { ...@@ -55,17 +55,17 @@ public class AnalysisBatch implements Serializable {
@TableField("light_rail_id") @TableField("light_rail_id")
private String lightRailId; private String lightRailId;
// @ApiModelProperty("所属线路名称") @ApiModelProperty("所属线路名称")
// @TableField("light_rail_name") @TableField("light_rail_name")
// private String lightRailName; private String lightRailName;
@ApiModelProperty("所属线别id") @ApiModelProperty("所属线别id")
@TableField("line_alias_id") @TableField("line_alias_id")
private String lineAliasId; private String lineAliasId;
// @ApiModelProperty("所属线别名称") @ApiModelProperty("所属线别名称")
// @TableField("line_alias_name") @TableField("line_alias_name")
// private String lineAliasName; private String lineAliasName;
@ApiModelProperty("起始里程") @ApiModelProperty("起始里程")
@TableField("starting_mileage") @TableField("starting_mileage")
......
package org.jeecg.modules.dynamicStaticAnalysis.mapper;
import java.util.List;
import java.util.Map;
/**
* <p>
* 动静态分析-算法sql
* </p>
*
* @author hkl
* @since 2023-07-25
*/
public interface AnalysisAlgorithmMapper {
/**
* 获取单元设备
*
* @param lightRailId 线路id
* @param lineAliasId 线别id
*/
List<Map<String,Object>> getUnitDevice(String lightRailId, String lineAliasId);
}
<?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="org.jeecg.modules.dynamicStaticAnalysis.mapper.AnalysisAlgorithmMapper">
<select id="getUnitDevice" resultType="java.util.Map">
SELECT id,
unitCode,
startMileage,
endMileage,
type
FROM (SELECT t1.id,
t1.unit_code unitCode,
t1.starting_mileage startMileage,
t1.end_mileage endMileage,
'钢轨' type
FROM t_da_rail_management t1
WHERE t1.line_alias_id = #{lineAliasId}
AND t1.light_rail_id = #{lightRailId}
UNION ALL
SELECT t1.id,
t1.unit_code unitCode,
t1.curve_mileage_zh startMileage,
t1.curve_mileage_hz endMileage,
'曲线' type
FROM t_da_curve_management t1
LEFT JOIN t_sn_train_station t2 ON t1.section_id = t1.id
WHERE t1.line_alias_id = #{lineAliasId}
AND t2.light_rail_id = #{lightRailId}
UNION ALL
SELECT t1.id,
t1.unit_code unitCode,
t1.starting_mileage startMileage,
t1.end_mileage endMileage,
'竖曲线' type
FROM t_da_vertical_curve_management t1
LEFT JOIN t_sn_train_station t2 ON t1.section_id = t1.id
WHERE t1.line_alias_id = #{lineAliasId}
AND t2.light_rail_id = #{lightRailId}
UNION ALL
SELECT t1.id,
t1.unit_code unitCode,
t1.byroad_pre_mileage startMileage,
t1.byroad_end_mileage endMileage,
'道岔' type
FROM t_da_switch_management t1
LEFT JOIN t_sn_section_station_map t2 ON t1.section_station_map_id = t2.id
LEFT JOIN t_sn_subway_section t3 ON t2.section_id = t3.id
AND t3.line_alias_id = t1.line_alias_id
WHERE t1.line_alias_id = #{lineAliasId}
AND t2.light_rail_id = #{lightRailId}) t
ORDER BY t.startMileage
</select>
</mapper>
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.util.UUIDGenerator; import org.jeecg.common.util.UUIDGenerator;
import org.jeecg.modules.dynamicStaticAnalysis.algorithm.MultiProducer;
import org.jeecg.modules.dynamicStaticAnalysis.dto.AnalysisBatchQueryDTO; import org.jeecg.modules.dynamicStaticAnalysis.dto.AnalysisBatchQueryDTO;
import org.jeecg.modules.dynamicStaticAnalysis.dto.AnalysisBatchSaveOrUpdateDTO; import org.jeecg.modules.dynamicStaticAnalysis.dto.AnalysisBatchSaveOrUpdateDTO;
import org.jeecg.modules.dynamicStaticAnalysis.dto.CheckBatchDTO; import org.jeecg.modules.dynamicStaticAnalysis.dto.CheckBatchDTO;
...@@ -73,6 +74,9 @@ public class AnalysisBatchServiceImpl extends ServiceImpl<AnalysisBatchMapper, A ...@@ -73,6 +74,9 @@ public class AnalysisBatchServiceImpl extends ServiceImpl<AnalysisBatchMapper, A
for (AnalysisBatchCheckDataMap analysisBatchCheckDataMap : analysisBatchCheckDataMaps) { for (AnalysisBatchCheckDataMap analysisBatchCheckDataMap : analysisBatchCheckDataMaps) {
analysisBatchCheckDataMapMapper.insert(analysisBatchCheckDataMap); analysisBatchCheckDataMapMapper.insert(analysisBatchCheckDataMap);
} }
// 执行分析
MultiProducer.produce(analysisBatch.getId());
} }
@Override @Override
...@@ -111,6 +115,9 @@ public class AnalysisBatchServiceImpl extends ServiceImpl<AnalysisBatchMapper, A ...@@ -111,6 +115,9 @@ public class AnalysisBatchServiceImpl extends ServiceImpl<AnalysisBatchMapper, A
for (AnalysisBatchCheckDataMap analysisBatchCheckDataMap : analysisBatchCheckDataMaps) { for (AnalysisBatchCheckDataMap analysisBatchCheckDataMap : analysisBatchCheckDataMaps) {
analysisBatchCheckDataMapMapper.insert(analysisBatchCheckDataMap); analysisBatchCheckDataMapMapper.insert(analysisBatchCheckDataMap);
} }
// 执行分析
MultiProducer.produce(analysisBatch.getId());
} }
@Override @Override
......
...@@ -12,9 +12,6 @@ import org.jeecg.modules.deviceAsset.service.IVerticalCurveManagementService; ...@@ -12,9 +12,6 @@ import org.jeecg.modules.deviceAsset.service.IVerticalCurveManagementService;
import org.jeecg.modules.subwayNetwork.entity.LineAlias; import org.jeecg.modules.subwayNetwork.entity.LineAlias;
import org.jeecg.modules.subwayNetwork.service.ILineAliasService; import org.jeecg.modules.subwayNetwork.service.ILineAliasService;
import java.util.List;
import java.util.Map;
/** /**
* @describe:单元编码生成工具 * @describe:单元编码生成工具
*/ */
...@@ -184,18 +181,4 @@ public class UnitCodeUtil { ...@@ -184,18 +181,4 @@ public class UnitCodeUtil {
return String.format("%0" + numLength + "d", num); return String.format("%0" + numLength + "d", num);
} }
/**
* 钢轨智能单元生成
*
* @param lineAliasId 线别ID
*/
public static void railIntelligentGeneration(String lineAliasId) {
List<Map<String, Object>> lineSpecialRail = railManagementService.getLineSpecialRail(lineAliasId);
// 1.判断完整的线路有没有空白部分(指剩余区间既不是道岔、曲线、竖曲线、钢轨的部分),只需要填空白部分,空白部分一定是钢轨,按照25一根的逻辑余数自成一根;
// 2.如果不存在空白部分,则定义道岔曲线竖曲线为绝对正确里程值,并且定义为特殊钢轨,相邻两个特殊钢轨之间的里程区间按照25一根的逻辑余数自成一根。
}
} }
\ 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