Merge remote-tracking branch 'origin/test-training2' into test-training2

This commit is contained in:
joylink_zhangsai 2022-12-01 10:57:10 +08:00
commit 13a7f01a77
10 changed files with 261 additions and 88 deletions

View File

@ -8,7 +8,7 @@ import java.util.Date;
public class RtsTraining2Rule {
private Long id;
private Long mapId;
private String simType;
private String locationRule;

View File

@ -165,63 +165,63 @@ public class RtsTraining2RuleExample {
return (Criteria) this;
}
public Criteria andMapIdIsNull() {
addCriterion("map_id is null");
public Criteria andSimTypeIsNull() {
addCriterion("sim_type is null");
return (Criteria) this;
}
public Criteria andMapIdIsNotNull() {
addCriterion("map_id is not null");
public Criteria andSimTypeIsNotNull() {
addCriterion("sim_type is not null");
return (Criteria) this;
}
public Criteria andMapIdEqualTo(Long value) {
addCriterion("map_id =", value, "mapId");
public Criteria andSimTypeEqualTo(String value) {
addCriterion("sim_type =", value, "simType");
return (Criteria) this;
}
public Criteria andMapIdNotEqualTo(Long value) {
addCriterion("map_id <>", value, "mapId");
public Criteria andSimTypeNotEqualTo(String value) {
addCriterion("sim_type <>", value, "simType");
return (Criteria) this;
}
public Criteria andMapIdGreaterThan(Long value) {
addCriterion("map_id >", value, "mapId");
public Criteria andSimTypeGreaterThan(String value) {
addCriterion("sim_type >", value, "simType");
return (Criteria) this;
}
public Criteria andMapIdGreaterThanOrEqualTo(Long value) {
addCriterion("map_id >=", value, "mapId");
public Criteria andSimTypeGreaterThanOrEqualTo(String value) {
addCriterion("sim_type >=", value, "simType");
return (Criteria) this;
}
public Criteria andMapIdLessThan(Long value) {
addCriterion("map_id <", value, "mapId");
public Criteria andSimTypeLessThan(String value) {
addCriterion("sim_type <", value, "simType");
return (Criteria) this;
}
public Criteria andMapIdLessThanOrEqualTo(Long value) {
addCriterion("map_id <=", value, "mapId");
public Criteria andSimTypeLessThanOrEqualTo(String value) {
addCriterion("sim_type <=", value, "simType");
return (Criteria) this;
}
public Criteria andMapIdIn(List<Long> values) {
addCriterion("map_id in", values, "mapId");
public Criteria andSimTypeIn(List<String> values) {
addCriterion("sim_type in", values, "simType");
return (Criteria) this;
}
public Criteria andMapIdNotIn(List<Long> values) {
addCriterion("map_id not in", values, "mapId");
public Criteria andSimTypeNotIn(List<String> values) {
addCriterion("sim_type not in", values, "simType");
return (Criteria) this;
}
public Criteria andMapIdBetween(Long value1, Long value2) {
addCriterion("map_id between", value1, value2, "mapId");
public Criteria andSimTypeBetween(String value1, String value2) {
addCriterion("sim_type between", value1, value2, "simType");
return (Criteria) this;
}
public Criteria andMapIdNotBetween(Long value1, Long value2) {
addCriterion("map_id not between", value1, value2, "mapId");
public Criteria andSimTypeNotBetween(String value1, String value2) {
addCriterion("sim_type not between", value1, value2, "simType");
return (Criteria) this;
}

View File

@ -60,7 +60,7 @@ public class Training2RuleService {
runningMapIdSet.add(mapId);
// 规则列表
RtsTraining2RuleExample example = new RtsTraining2RuleExample();
example.createCriteria().andMapIdEqualTo(mapId);
example.createCriteria().andSimTypeEqualTo(simulation.getBuildParams().getWorkParamVO().getType().name());
List<RtsTraining2RuleWithBLOBs> ruleList = rtsTraining2RuleMapper.selectByExampleWithBLOBs(example);
if (!CollectionUtils.isEmpty(ruleList)) {
// 清除数据库原有数据

View File

@ -19,9 +19,9 @@ import java.util.Objects;
public enum BgSceneStatusRule {
/**
* 设置进路背景
* 设置进路背景blockade
*/
ROUTE_BG_SCENE("进路背景") {
ROUTE_CANCEL_BG_SCENE("取消进路背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
openRouteDirect(simulation, (Route) mapElement);
@ -31,14 +31,107 @@ public enum BgSceneStatusRule {
/**
* 解封按钮背景
*/
BUTTON_BG_SCENE("解封按钮背景") {
BUTTON_BLOCK_BG_SCENE("解封按钮背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Signal signal = (Signal) mapElement;
signal.setBlockade(true);
return getBgScene(simulation);
}
},
/**
* 道岔定位背景将道岔设置为反位
*/
SWITCH_NP_BG_SCENE("道岔定位背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setSingleSwitchPositionDirectly(iSwitch, false);
return getBgScene(simulation);
}
},
/**
* 道岔反位背景将道岔设置为定位
*/
SWITCH_RP_BG_SCENE("道岔反位背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setSingleSwitchPositionDirectly(iSwitch, true);
return getBgScene(simulation);
}
},
/**
* 道岔封锁背景将道岔设置为未封锁
*/
SWITCH_BLOCK_BG_SCENE("道岔封锁背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setBlockSwitch(iSwitch, false);
return getBgScene(simulation);
}
},
/**
* 道岔解封背景将道岔设置为封锁
*/
SWITCH_UNBLOCK_BG_SCENE("道岔解封背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setBlockSwitch(iSwitch, true);
return getBgScene(simulation);
}
},
/**
* 道岔单锁背景将道岔设置为未封锁
*/
SWITCH_SINGLE_BLOCK_BG_SCENE("道岔单锁背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setSingleLockSwitch(iSwitch, false);
return getBgScene(simulation);
}
},
/**
* 道岔单解背景将道岔设置为封锁
*/
SWITCH_SINGLE_UNBLOCK_BG_SCENE("道岔单解背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setSingleLockSwitch(iSwitch, true);
return getBgScene(simulation);
}
},
/**
* 信号机点灯背景
*/
SIGNAL_TURN_ON_BG_SCENE("信号机点灯背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Signal signal = (Signal) mapElement;
signal.setAspect(SignalAspect.No);
VirtualRealitySignal vrSignal = signal.getVirtualSignal();
vrSignal.setAspect(SignalAspect.No);
return getBgScene(simulation);
}
},
/**
* 信号机灭灯背景
*/
SIGNAL_TURN_OFF_BG_SCENE("信号机灭灯背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Signal signal = (Signal) mapElement;
VirtualRealitySignal vrSignal = signal.getVirtualSignal();
signal.setAspect(vrSignal.getModel().getDefaultAspect());
vrSignal.setAspect(vrSignal.getModel().getDefaultAspect());
return getBgScene(simulation);
}
}
;
/**
@ -158,4 +251,25 @@ public enum BgSceneStatusRule {
}
signal.setAspect(aspect);
}
/**
* 封锁解封道岔
* @param aSwitch 道岔
*/
private static void setBlockSwitch(Switch aSwitch, boolean block) {
aSwitch.setBlockade(block);
aSwitch.getA().setBlockade(block);
aSwitch.getB().setBlockade(block);
aSwitch.getC().setBlockade(block);
if (block) {
aSwitch.setInit(false);
}
}
/**
* 设置道岔单锁单解
*/
private static void setSingleLockSwitch(Switch aSwitch, boolean block) {
aSwitch.setSingleLock(block);
}
}

View File

@ -6,23 +6,38 @@ import lombok.Getter;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@Getter
public enum MapDeviceRule {
ROUTE_LIST("进路列表") {
RAILWAY_PICK_ROUTE_LIST("大铁接车进路列表") {
@Override
public List<Route> filterMapDeviceList(Simulation simulation) {
boolean isRailWay = Simulation.Type.RAILWAY.equals(simulation.getBuildParams().getWorkParamVO().getType());
// 只获取一个车站的
List<Station> stationList = simulation.getRepository().getStationList();
if (CollectionUtils.isEmpty(stationList) || !isRailWay) {
return List.of();
}
Station station = stationList.get(0);
// 获取本站的2个进路信息
return simulation.getRepository().getRouteList().stream()
.filter(r -> Objects.equals(r.getType(), Route.Type.RECEIVING) && station.equals(r.getStart().getStation()))
.limit(2).collect(Collectors.toList());
}
},
STATION_LIST("车站列表") {
@Override
public List<Station> filterMapDeviceList(Simulation simulation) {
// 只获取一个车站的
List<Station> stationList = simulation.getRepository().getStationList();
if (CollectionUtils.isEmpty(stationList)) {
return List.of();
}
Station station = stationList.get(0);
// 获取本站的5个进路信息
return simulation.getRepository().getRouteList().stream()
.filter(r -> station.equals(r.getInterlockStation())).limit(5).collect(Collectors.toList());
return stationList.stream().limit(2).collect(Collectors.toList());
}
},
SWITCH_LIST("道岔列表") {
@ -35,7 +50,7 @@ public enum MapDeviceRule {
}
Station station = stationList.get(0);
return simulation.getRepository().getSwitchList().stream()
.filter(s -> station.equals(s.getDeviceStation())).limit(5).collect(Collectors.toList());
.filter(s -> station.equals(s.getDeviceStation())).limit(2).collect(Collectors.toList());
}
},
SIGNAL_LIST("信号机列表") {
@ -48,7 +63,21 @@ public enum MapDeviceRule {
}
Station station = stationList.get(0);
return simulation.getRepository().getSignalList().stream()
.filter(s -> station.equals(s.getDeviceStation())).limit(5).collect(Collectors.toList());
.filter(s -> station.equals(s.getDeviceStation())).limit(2).collect(Collectors.toList());
}
},
RAILWAY_SIGNAL_LIST("大铁信号机列表") {
@Override
public List<Signal> filterMapDeviceList(Simulation simulation) {
// 只获取一个车站的
List<Station> stationList = simulation.getRepository().getStationList();
if (CollectionUtils.isEmpty(stationList)) {
return List.of();
}
Station station = stationList.get(0);
return simulation.getRepository().getSignalList().stream()
.filter(s -> Signal.SignalType.DEPARTURE.equals(s.getType()) && station.equals(s.getDeviceStation()))
.limit(2).collect(Collectors.toList());
}
},
SIGNAL_BUTTON_LIST("有按钮的信号机列表") {
@ -62,7 +91,7 @@ public enum MapDeviceRule {
Station station = stationList.get(0);
return simulation.getRepository().getSignalList().stream()
.filter(s -> station.equals(s.getDeviceStation()) && Signal.SignalType.RECEIVING.equals(s.getType()))
.limit(5).collect(Collectors.toList());
.limit(2).collect(Collectors.toList());
}
};

View File

@ -55,13 +55,19 @@ public enum PropertyValueRule {
return null;
}
},
ROUTE_START_NAME("进路起始名称") {
ROUTE_START_SIGNAL_NAME("进路起始名称") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
return ((Route) mapElement).getStart().getShowName();
}
},
BUTTON_START_CODE("进路起始按钮编码") {
ROUTE_START_SIGNAL_CODE("进路始端信号机编码") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
return ((Route) mapElement).getStart().getCode();
}
},
ROUTE_START_PICK_BUTTON_CODE("进路始端接车按钮编码") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
Route route = (Route) mapElement;
@ -74,13 +80,32 @@ public enum PropertyValueRule {
return buttonVO.getCode();
}
},
ROUTE_END_NAME("进路终端名称") {
ROUTE_START_PASS_BUTTON_CODE("进路始端通过按钮编码") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
Route route = (Route) mapElement;
List<MapSignalButtonVO> signalButtonList = simulation.getBuildParams().getMap().getGraphDataNew().getSignalButtonList();
MapSignalButtonVO buttonVO = signalButtonList.stream().filter(button -> MapSignalButtonVO.Type.PASS.equals(button.getType())
&& Objects.equals(button.getSignalCode(), route.getStart().getCode())).findFirst().orElse(null);
if (buttonVO == null) {
throw new SimulationException(SimulationExceptionType.Data_Not_Exist, "错误数据");
}
return buttonVO.getCode();
}
},
ROUTE_END_SIGNAL_NAME("进路末端名称") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
return ((Route) mapElement).getDestination().getShowName();
}
},
BUTTON_END_CODE("进路终端按钮编码") {
ROUTE_END_SIGNAL_CODE("进路末端信号机编码") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
return ((Route) mapElement).getDestination().getCode();
}
},
ROUTE_END_BUTTON_CODE("进路末端按钮编码") {
@Override
public String resolve(Simulation simulation, Object mapElement) {
Route route = (Route) mapElement;

View File

@ -21,27 +21,27 @@ public class StepRule {
private Long id;
private MemberRule memberRule;
private MemberRule memberId;
private String description;
private List<OperationRule.ClientOperationRule> operationRules;
private List<OperationRule.ClientOperationRule> operations;
private List<OperationRule.SimOperationRule> simCommandRules;
private List<OperationRule.SimOperationRule> simCommands;
private ValuableRule.ExpressionVORule triggerRule;
private ValuableRule.ExpressionVORule trigger;
private ValuableRule.ExpressionVORule completionRule;
private ValuableRule.ExpressionVORule completion;
private ValuableRule.ExpressionVORule failureRule;
private ValuableRule.ExpressionVORule failure;
private Map<String, Object> tipPositionRule;
private Map<String, Object> tipPosition;
public Step2VO convert2BO(Simulation simulation, Object mapElement) {
Step2VO copyStep2 = new Step2VO();
copyStep2.setId(this.id);
if (memberRule != null) {
SimulationMember member = memberRule.convert2BO(simulation, mapElement);
if (memberId != null) {
SimulationMember member = memberId.convert2BO(simulation, mapElement);
copyStep2.setMemberId(member.getId());
} else {
throw new SimulationException(SimulationExceptionType.Illegal_Argument, String.format("未找到角色的成员"));
@ -49,32 +49,32 @@ public class StepRule {
if (description != null) { // 描述
copyStep2.setDescription(PropertyValueRule.resolveContentFormat(description, simulation, mapElement));
}
if (!CollectionUtils.isEmpty(operationRules)) { // 操作规则
List<Operation2VO.ClientOperation2VO> operationList = operationRules.stream()
if (!CollectionUtils.isEmpty(operations)) { // 操作规则
List<Operation2VO.ClientOperation2VO> operationList = operations.stream()
.map(o -> o.convert2BO(simulation, mapElement)).collect(Collectors.toList());
copyStep2.setOperations(operationList);
} else {
copyStep2.setOperations(List.of());
}
if (!CollectionUtils.isEmpty(simCommandRules)) { // 实训操作列表
List<Operation2VO.SimCommand2VO> simCommandList = simCommandRules.stream()
if (!CollectionUtils.isEmpty(simCommands)) { // 实训操作列表
List<Operation2VO.SimCommand2VO> simCommandList = simCommands.stream()
.map(o -> o.convert2BO(simulation, mapElement)).collect(Collectors.toList());
copyStep2.setSimCommands(simCommandList);
} else {
copyStep2.setSimCommands(List.of());
}
if (triggerRule != null) { // 触发规则
copyStep2.setTriggerCondition(triggerRule.convert2BO(simulation, mapElement));
if (trigger != null) { // 触发规则
copyStep2.setTriggerCondition(trigger.convert2BO(simulation, mapElement));
}
if (completionRule != null) { // 完成规则
copyStep2.setCompletionCondition(completionRule.convert2BO(simulation, mapElement));
if (completion != null) { // 完成规则
copyStep2.setCompletionCondition(completion.convert2BO(simulation, mapElement));
}
if (failureRule != null) { // 失败规则
copyStep2.setFailureCondition(failureRule.convert2BO(simulation, mapElement));
if (failure != null) { // 失败规则
copyStep2.setFailureCondition(failure.convert2BO(simulation, mapElement));
}
copyStep2.setTipPosition(new HashMap<>());
if (!CollectionUtils.isEmpty(tipPositionRule)) { // 定位信息
tipPositionRule.forEach((k, v) -> {
if (!CollectionUtils.isEmpty(tipPosition)) { // 定位信息
tipPosition.forEach((k, v) -> {
String vStr = String.valueOf(v);
if (PropertyValueRule.match(vStr)) {
copyStep2.getTipPosition().put(k, PropertyValueRule.valueOf(vStr).resolve(simulation, mapElement));

View File

@ -28,8 +28,6 @@ import java.util.stream.Collectors;
public class Training2Rule {
private Long id;
private Long mapId;
/**
* 地图定位规则
*/
@ -82,17 +80,20 @@ public class Training2Rule {
public Training2Rule(RtsTraining2RuleWithBLOBs rule) {
this.id = rule.getId();
this.mapId = rule.getMapId();
this.deviceRule = MapDeviceRule.valueOf(rule.getDeviceRule());
this.client = rule.getClient();
this.name = rule.getName();
this.description = rule.getDescription();
this.type = Training2.Type.valueOf(rule.getType());
if (StringUtils.hasText(rule.getLocationRule())) {
this.locationRule = MapLocationRule.valueOf(rule.getLocationRule());
}
if (StringUtils.hasText(rule.getLabels())) {
this.labels = JsonUtils.readCollection(rule.getLabels(), List.class, String.class);
}
if (StringUtils.hasText(rule.getSceneRule())) {
this.sceneRule = BgSceneStatusRule.valueOf(rule.getSceneRule());
}
if (StringUtils.hasText(rule.getSteps())) {
this.steps = JsonUtils.readCollection(rule.getSteps(), List.class, StepRule.class);
}
@ -104,7 +105,7 @@ public class Training2Rule {
public PublishedTraining2WithBLOBs convert2BO(Simulation simulation, MapNamedElement mapElement) {
PublishedTraining2WithBLOBs copyTraining2 = new PublishedTraining2WithBLOBs();
// 地图ID
copyTraining2.setMapId(mapId);
copyTraining2.setMapId(simulation.getBuildParams().getMap().getId());
// 名称
if (name != null) {
copyTraining2.setName(PropertyValueRule.resolveContentFormat(name, simulation, mapElement));
@ -120,7 +121,11 @@ public class Training2Rule {
// 实训类型
copyTraining2.setType(type.name());
// 实训标签
if (labels != null) {
copyTraining2.setLabelJson(JsonUtils.writeValueAsString(labels));
} else {
copyTraining2.setLabelJson("[]");
}
// 背景设置
if (sceneRule != null) {
copyTraining2.setBgSceneJson(sceneRule.doHandle(simulation, mapElement));

View File

@ -3,7 +3,7 @@
<mapper namespace="club.joylink.rtss.dao.training.RtsTraining2RuleMapper" >
<resultMap id="BaseResultMap" type="club.joylink.rtss.entity.training2.RtsTraining2Rule" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="map_id" property="mapId" jdbcType="BIGINT" />
<result column="sim_type" property="simType" jdbcType="VARCHAR" />
<result column="device_rule" property="deviceRule" jdbcType="VARCHAR" />
<result column="client" property="client" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
@ -82,7 +82,7 @@
</sql>
<sql id="Base_Column_List" >
id, map_id, device_rule, client, name, description, type, labels, scene_rule, creator_id, create_time, location_rule
id, sim_type, device_rule, client, name, description, type, labels, scene_rule, creator_id, create_time, location_rule
</sql>
<sql id="Blob_Column_List" >
@ -138,11 +138,11 @@
<insert id="insert" parameterType="club.joylink.rtss.entity.training2.RtsTraining2RuleWithBLOBs" >
insert into rts_training2_rule (
id, map_id, device_rule, client, name, description, type, labels,
id, sim_type, device_rule, client, name, description, type, labels,
scene_rule, creator_id, create_time, steps, failure_rule, location_rule
)
values (
#{id,jdbcType=BIGINT}, #{mapId,jdbcType=BIGINT}, #{deviceRule,jdbcType=VARCHAR}, #{client,jdbcType=VARCHAR},
#{id,jdbcType=BIGINT}, #{simType,jdbcType=VARCHAR}, #{deviceRule,jdbcType=VARCHAR}, #{client,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{labels,jdbcType=VARCHAR},
#{sceneRule,jdbcType=VARCHAR}, #{creatorId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP},
#{steps,jdbcType=LONGVARCHAR}, #{failureRule,jdbcType=LONGVARCHAR}, #{locationRule,jdbcType=VARCHAR}
@ -155,8 +155,8 @@
<if test="id != null" >
id,
</if>
<if test="mapId != null" >
map_id,
<if test="simType != null" >
sim_type,
</if>
<if test="deviceRule != null" >
device_rule,
@ -199,8 +199,8 @@
<if test="id != null" >
#{id,jdbcType=BIGINT},
</if>
<if test="mapId != null" >
#{mapId,jdbcType=BIGINT},
<if test="simType != null" >
#{simType,jdbcType=VARCHAR},
</if>
<if test="deviceRule != null" >
#{deviceRule,jdbcType=VARCHAR},
@ -247,8 +247,8 @@
<if test="record.id != null" >
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.mapId != null" >
map_id = #{record.mapId,jdbcType=BIGINT},
<if test="record.simType != null" >
sim_type = #{record.simType,jdbcType=VARCHAR},
</if>
<if test="record.deviceRule != null" >
device_rule = #{record.deviceRule,jdbcType=VARCHAR},
@ -295,7 +295,7 @@
<update id="updateByExampleWithBLOBs" parameterType="map" >
update rts_training2_rule
set id = #{record.id,jdbcType=BIGINT},
map_id = #{record.mapId,jdbcType=BIGINT},
sim_type = #{record.simType,jdbcType=VARCHAR},
device_rule = #{record.deviceRule,jdbcType=VARCHAR},
client = #{record.client,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
@ -316,7 +316,7 @@
<update id="updateByExample" parameterType="map" >
update rts_training2_rule
set id = #{record.id,jdbcType=BIGINT},
map_id = #{record.mapId,jdbcType=BIGINT},
sim_type = #{record.simType,jdbcType=VARCHAR},
device_rule = #{record.deviceRule,jdbcType=VARCHAR},
client = #{record.client,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
@ -335,8 +335,8 @@
<update id="updateByPrimaryKeySelective" parameterType="club.joylink.rtss.entity.training2.RtsTraining2RuleWithBLOBs" >
update rts_training2_rule
<set >
<if test="mapId != null" >
map_id = #{mapId,jdbcType=BIGINT},
<if test="simType != null" >
sim_type = #{simType,jdbcType=VARCHAR},
</if>
<if test="deviceRule != null" >
device_rule = #{deviceRule,jdbcType=VARCHAR},
@ -380,7 +380,7 @@
<update id="updateByPrimaryKeyWithBLOBs" parameterType="club.joylink.rtss.entity.training2.RtsTraining2RuleWithBLOBs" >
update rts_training2_rule
set map_id = #{mapId,jdbcType=BIGINT},
set sim_type = #{simType,jdbcType=VARCHAR},
device_rule = #{deviceRule,jdbcType=VARCHAR},
client = #{client,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
@ -398,7 +398,7 @@
<update id="updateByPrimaryKey" parameterType="club.joylink.rtss.entity.training2.RtsTraining2Rule" >
update rts_training2_rule
set map_id = #{mapId,jdbcType=BIGINT},
set sim_type = #{simType,jdbcType=VARCHAR},
device_rule = #{deviceRule,jdbcType=VARCHAR},
client = #{client,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},

View File

@ -50,8 +50,8 @@ public class Training2RuleTest {
@Transactional
@Test
public void entityTest() {
String trainingRuleStr = "{\"id\":1,\"mapId\":154,\"deviceRule\":\"ROUTE_LIST\",\"name\":\"取消{NAME}进路\",\"description\":\"取消{NAME}进路\",\"type\":\"SINGLE\",\"labels\":null,\"sceneRule\":\"ROUTE_BG_SCENE\",\"steps\":[{\"id\":1,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击总取消\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"userOperationType\":\"leftClick\",\"domId\":\"2994\",\"operationType\":\"\",\"params\":{}}],\"triggerRule\":null,\"completionRule\":null,\"failureRule\":null,\"tipPosition\":{\"domId\":\"2994\",\"operateIndex\":0}},{\"id\":2,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击信号机【{ROUTE_START_NAME}】\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"deviceCode\":\"BUTTON_START_CODE\",\"userOperationType\":\"leftClick\",\"domId\":\"2994\",\"operationType\":\"Signal_Cancel_Route\",\"params\":{}}],\"tipPosition\":{\"domId\":\"2994\",\"deviceCode\":\"BUTTON_START_CODE\",\"operateIndex\":0}}],\"failureRule\":null,\"creatorId\":5710}";
String trainingRuleStr2 = "{\"id\":1,\"mapId\":154,\"deviceRule\":\"ROUTE_LIST\",\"name\":\"【{NAME}】办理\",\"description\":\"【{NAME}】办理\",\"type\":\"SINGLE\",\"labels\":null,\"sceneRule\":null,\"steps\":[{\"id\":1,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击信号机【{ROUTE_START_NAME}】按钮\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"deviceCode\":\"BUTTON_START_CODE\",\"userOperationType\":\"leftClick\",\"domId\":\"3010\",\"operationType\":\"\",\"params\":{}}],\"triggerRule\":null,\"completionRule\":null,\"failureRule\":null,\"tipPosition\":{\"domId\":\"3010\",\"deviceCode\":\"BUTTON_START_CODE\",\"operateIndex\":0}},{\"id\":2,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击信号机【{ROUTE_END_NAME}】按钮\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"deviceCode\":\"BUTTON_END_CODE\",\"userOperationType\":\"leftClick\",\"domId\":\"3010\",\"operationType\":\"Signal_Set_Route\",\"params\":{}}],\"tipPosition\":{\"domId\":\"3010\",\"deviceCode\":\"BUTTON_END_CODE\",\"operateIndex\":0}}],\"failureRule\":null,\"creatorId\":5710}";
String trainingRuleStr = "{\"id\":1,\"deviceRule\":\"RAILWAY_PICK_ROUTE_LIST\",\"name\":\"取消{NAME}进路\",\"description\":\"取消{NAME}进路\",\"type\":\"SINGLE\",\"labels\":null,\"sceneRule\":\"ROUTE_CANCEL_BG_SCENE\",\"steps\":[{\"id\":1,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击总取消\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"userOperationType\":\"leftClick\",\"domId\":\"2994\",\"operationType\":\"\",\"params\":{}}],\"triggerRule\":null,\"completionRule\":null,\"failureRule\":null,\"tipPosition\":{\"domId\":\"2994\",\"operateIndex\":0}},{\"id\":2,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击信号机【{ROUTE_START_NAME}】\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"deviceCode\":\"BUTTON_START_CODE\",\"userOperationType\":\"leftClick\",\"domId\":\"2994\",\"operationType\":\"Signal_Cancel_Route\",\"params\":{}}],\"tipPosition\":{\"domId\":\"2994\",\"deviceCode\":\"BUTTON_START_CODE\",\"operateIndex\":0}}],\"failureRule\":null,\"creatorId\":5710}";
String trainingRuleStr2 = "{\"id\":1,\"deviceRule\":\"RAILWAY_PICK_ROUTE_LIST\",\"name\":\"【{NAME}】办理\",\"description\":\"【{NAME}】办理\",\"type\":\"SINGLE\",\"labels\":null,\"sceneRule\":null,\"steps\":[{\"id\":1,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击信号机【{ROUTE_START_NAME}】按钮\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"deviceCode\":\"BUTTON_START_CODE\",\"userOperationType\":\"leftClick\",\"domId\":\"3010\",\"operationType\":\"\",\"params\":{}}],\"triggerRule\":null,\"completionRule\":null,\"failureRule\":null,\"tipPosition\":{\"domId\":\"3010\",\"deviceCode\":\"BUTTON_START_CODE\",\"operateIndex\":0}},{\"id\":2,\"memberRule\":{\"type\":\"STATION_SUPERVISOR\",\"deviceCodeRule\":\"STATION_CODE\"},\"description\":\"点击信号机【{ROUTE_END_NAME}】按钮\",\"operationRules\":[{\"t\":\"C\",\"id\":0,\"deviceCode\":\"BUTTON_END_CODE\",\"userOperationType\":\"leftClick\",\"domId\":\"3010\",\"operationType\":\"Signal_Set_Route\",\"params\":{}}],\"tipPosition\":{\"domId\":\"3010\",\"deviceCode\":\"BUTTON_END_CODE\",\"operateIndex\":0}}],\"failureRule\":null,\"creatorId\":5710}";
Training2Rule training2Rule = JsonUtils.read(trainingRuleStr, Training2Rule.class);
Training2Rule training2Rule2 = JsonUtils.read(trainingRuleStr2, Training2Rule.class);
// 生成实训
@ -61,7 +61,7 @@ public class Training2RuleTest {
accountVO.setId(5710L);
loginUserInfoVO.setAccountVO(accountVO);
SimulationWorkService initService = simulationWorkServiceManager.getWorkService(workParamVO.getType());
Simulation simulation = initService.create(training2Rule.getMapId(), workParamVO, loginUserInfoVO);
Simulation simulation = initService.create(154, workParamVO, loginUserInfoVO);
// 删除旧仿真保存新仿真
club.joylink.rtss.simulation.Simulation oldSimulation = simulationManager.queryByCreatorId(simulation.getCreatorId());
if (oldSimulation != null) {