【生成实训规则修改】

This commit is contained in:
weizhihong 2022-12-05 15:48:26 +08:00
parent 9e7fe0c336
commit 219267c455
7 changed files with 279 additions and 112 deletions

View File

@ -10,6 +10,8 @@ public class RtsTraining2Rule {
private String simType;
private String lineCode;
private String locationRule;
private String deviceRule;

View File

@ -225,6 +225,66 @@ public class RtsTraining2RuleExample {
return (Criteria) this;
}
public Criteria andLineCodeIsNull() {
addCriterion("line_code is null");
return (Criteria) this;
}
public Criteria andLineCodeIsNotNull() {
addCriterion("line_code is not null");
return (Criteria) this;
}
public Criteria andLineCodeEqualTo(String value) {
addCriterion("line_code =", value, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeNotEqualTo(String value) {
addCriterion("line_code <>", value, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeGreaterThan(String value) {
addCriterion("line_code >", value, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeGreaterThanOrEqualTo(String value) {
addCriterion("line_code >=", value, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeLessThan(String value) {
addCriterion("line_code <", value, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeLessThanOrEqualTo(String value) {
addCriterion("line_code <=", value, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeIn(List<String> values) {
addCriterion("line_code in", values, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeNotIn(List<String> values) {
addCriterion("line_code not in", values, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeBetween(String value1, String value2) {
addCriterion("line_code between", value1, value2, "lineCode");
return (Criteria) this;
}
public Criteria andLineCodeNotBetween(String value1, String value2) {
addCriterion("line_code not between", value1, value2, "lineCode");
return (Criteria) this;
}
public Criteria andFunctionIdIsNull() {
addCriterion("function_id is null");
return (Criteria) this;

View File

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

View File

@ -11,9 +11,12 @@ import club.joylink.rtss.simulation.cbtc.data.map.*;
import club.joylink.rtss.simulation.cbtc.data.storage.StorageSimulation;
import club.joylink.rtss.simulation.cbtc.data.support.SectionPosition;
import club.joylink.rtss.simulation.cbtc.data.vo.TrainInfo;
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealitySectionAxleCounter;
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealitySignal;
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealitySwitch;
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealityTrain;
import club.joylink.rtss.simulation.cbtc.exception.SimulationException;
import club.joylink.rtss.simulation.cbtc.exception.SimulationExceptionType;
import club.joylink.rtss.util.JsonUtils;
import lombok.Getter;
import org.springframework.util.CollectionUtils;
@ -69,17 +72,6 @@ public enum BgSceneStatusRule {
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);
}
},
/**
* 道岔解封背景将道岔设置为封锁
*/
@ -87,18 +79,9 @@ public enum BgSceneStatusRule {
@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);
iSwitch.setBlockade(true);
iSwitch.getAllSections().stream().forEach(section -> section.setBlockade(true));
iSwitch.setInit(false);
return getBgScene(simulation);
}
},
@ -109,7 +92,39 @@ public enum BgSceneStatusRule {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
setSingleLockSwitch(iSwitch, true);
iSwitch.setSingleLock(true);
return getBgScene(simulation);
}
},
SWITCH_FAULT_UNLOCK_BG_SCENE("道岔故障解锁背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
iSwitch.setRouteLock(true);
iSwitch.getAllSections().forEach(section -> section.setRouteLock(true));
return getBgScene(simulation);
}
},
SWITCH_AXLE_FAULT_PRE_RESET_BG_SCENE("道岔计轴预复位背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
Switch.SwitchFault.AXLE_FAULT.apply(iSwitch);
return getBgScene(simulation);
}
},
SWITCH_SECTION_ACTIVE_BG_SCENE("道岔区段激活背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
return SECTION_ACTIVE_BG_SCENE.doHandle(simulation, iSwitch.getA());
}
},
SWITCH_SECTION_LIMIT_SPEED("道岔区段速度限制背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
iSwitch.getAllSections().forEach(section -> section.setSpeedUpLimit(5));
return getBgScene(simulation);
}
},
@ -231,6 +246,19 @@ public enum BgSceneStatusRule {
return getBgScene(simulation);
}
},
SECTION_UNLOCK_BG_SCENE("区段解封背景"){
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Section section = (Section) mapElement;
section.setBlockade(true);
if (!CollectionUtils.isEmpty(section.getLogicList())) {
for (Section logic : section.getLogicList()) {
logic.setBlockade(true);
}
}
return getBgScene(simulation);
}
},
/**
* 区段激活背景
*/
@ -246,7 +274,7 @@ public enum BgSceneStatusRule {
for (Section logic : axleSection.getLogicList()) {
logic.setCutOff(true);
}
return null;
return getBgScene(simulation);
}
},
/**
@ -260,7 +288,7 @@ public enum BgSceneStatusRule {
return null;
}
},
SECTION_CONFIRM_AXIS_VALID_BG_SCENE("") {
SECTION_CONFIRM_AXIS_VALID_BG_SCENE("设置计轴生效背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Section section = (Section) mapElement;
@ -269,6 +297,34 @@ public enum BgSceneStatusRule {
} else {
section.judgeAsNctOccupied(simulation);
}
return getBgScene(simulation);
}
},
SECTION_AXIS_PRE_RESET_BG_SCENE("计轴预复位背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Section section = (Section) mapElement;
if(!section.isAxleCounter() && !section.isCross()){
throw new SimulationException(SimulationExceptionType.Simulation_Map_Data_Error);
}
VirtualRealitySectionAxleCounter virtualAxleCounter = section.findAxleCounterSection().getVirtualAxleCounter();
virtualAxleCounter.setOccupy(true);
virtualAxleCounter.setPreReset(false);
virtualAxleCounter.setLeftCount(2);
virtualAxleCounter.setRightCount(2);
return getBgScene(simulation);
}
},
SECTION_TURN_BACK_REENTRY_STRATEGY("区段折返策略修改背景"){
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Section section = (Section) mapElement;
Stand stand = section.getStandList().get(0);
stand.setTypeStrategy(Stand.TurnBackType.AUTO);
// 添加信号机
VirtualRealityTrain train = (VirtualRealityTrain) simulation.getRepository().getVrDeviceMap().values().stream()
.filter(o -> o instanceof VirtualRealityTrain).findFirst().get();
BgSceneStatusRule.trainOnline(simulation, train, section, stand.isRight());
return null;
}
},
@ -282,7 +338,51 @@ public enum BgSceneStatusRule {
restartInterlock(simulation, station);
return getBgScene(simulation);
}
},
STAND_EARLY_DEPART_BG_SCENE("提前发车背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Stand stand = (Stand) mapElement;
Section section = stand.getSection();
Route route = stand.getSection().getSignalToRight().getRouteList().stream().filter(r ->
(section.equals(r.getStart().getSection()) || r.containSection(section) && !r.routeLastSection(section))
&& Objects.equals(stand.isRight(), r.getStart().isRight()))
.findAny().orElse(null);
if (Objects.nonNull(route)) {
openRouteDirect(simulation, route);
}
// 添加信号机
VirtualRealityTrain train = (VirtualRealityTrain) simulation.getRepository().getVrDeviceMap().values().stream()
.filter(o -> o instanceof VirtualRealityTrain).findFirst().get();
BgSceneStatusRule.trainOnline(simulation,train,section,route.isRight());
return getBgScene(simulation);
}
},
STAND_CANCEL_HOLD_TRAIN_BG_SCENE("站台取消扣车背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Stand stand = (Stand) mapElement;
stand.setTrainLimit(3);
return getBgScene(simulation);
}
},
STAND_FORCE_CANCEL_HOLD_TRAIN_BG_SCENE("强制取消扣车背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Stand stand = (Stand) mapElement;
stand.setCenterHoldTrain(true);
return getBgScene(simulation);
}
},
STAND_CANCEL_JUMP_STOP_BG_SCENE("站台取消设置跳停") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Stand stand = (Stand) mapElement;
stand.setAllSkip(true);
return getBgScene(simulation);
}
}
;
/**
@ -403,28 +503,6 @@ 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);
}
/**
* 重启联锁机
*/
@ -458,6 +536,17 @@ public enum BgSceneStatusRule {
SectionPosition headPosition = new SectionPosition(section, section.getStopPointByDirection(right));
train.initManualTrain(headPosition, right);
SimulationDataRepository repository = simulation.getRepository();
//设置列车预选模式驾驶模式运行级别
if (!headPosition.getSection().anyZcWorking()) {
train.initAsRM();
} else {
MapConfig config = repository.getConfig();
if (RunLevel.ITC.equals(config.getRunMode())) {
train.initAsAM_I();
} else if (RunLevel.IL.equals(config.getRunMode())) {
train.initAsRM();
}
}
TrainInfo trainInfo = TrainInfo.constructManualTrain(train);
trainInfo.tracking(train);
repository.addOnlineTrain(train);

View File

@ -4,42 +4,14 @@ import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.simulation.cbtc.data.map.*;
import club.joylink.rtss.vo.map.graph.MapStationNewVO;
import lombok.Getter;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Random;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@Getter
public enum MapDeviceRule {
METRO_ROUTE_LIST("地铁进路利列表") {
@Override
public List<Route> filterMapDeviceList(Simulation simulation) {
boolean isMETRO = Simulation.Type.METRO.equals(simulation.getBuildParams().getWorkParamVO().getType());
if (!isMETRO) {
return List.of();
}
List<Signal> signalList = METRO_DEPARTURE_SIGNAL_LIST.filterMapDeviceList(simulation);
List<Route> routeList = new ArrayList<>();
signalList.forEach(s -> routeList.addAll(s.getRouteList()));
return generateRandomElement(routeList, 2);
}
},
RAILWAY_PICK_ROUTE_LIST("大铁接车进路列表") {
@Override
public List<Route> filterMapDeviceList(Simulation simulation) {
boolean isRailWay = Simulation.Type.RAILWAY.equals(simulation.getBuildParams().getWorkParamVO().getType());
if (!isRailWay) {
return List.of();
}
List<Route> routeList = simulation.getRepository().getRouteList().stream()
.filter(r -> Objects.equals(r.getType(), Route.Type.RECEIVING)).collect(Collectors.toList());
return generateRandomElement(routeList, 2);
}
},
STATION_LIST("车站列表") {
@Override
public List<Station> filterMapDeviceList(Simulation simulation) {
@ -50,62 +22,87 @@ public enum MapDeviceRule {
return generateRandomElement(stationList, 1);
}
},
STAND_LIST("站台列表"){
@Override
public List<Stand> filterMapDeviceList(Simulation simulation) {
List<Station> stationList = STATION_LIST.filterMapDeviceList(simulation);
Station station = stationList.get(0);
return MapDeviceRule.generateRandomElement(station.getAllStandList(), 2);
}
},
ROUTE_LIST("进路列表") {
@Override
public List<Route> filterMapDeviceList(Simulation simulation) {
List<Station> stationList = STATION_LIST.filterMapDeviceList(simulation);
Station station = stationList.get(0);
List<Route> routeList = new ArrayList<>();
station.getAllStandList().stream().filter(stand -> stand.getSection().getSignalToRight() != null)
.forEach(stand -> routeList.addAll(stand.getSection().getSignalToRight().getRouteList()));
return generateRandomElement(routeList, 2);
}
},
SWITCH_LIST("道岔列表") {
@Override
public List<Switch> filterMapDeviceList(Simulation simulation) {
List<Switch> switchList = simulation.getRepository().getSwitchList();
List<Station> stationList = STATION_LIST.filterMapDeviceList(simulation);
Station station = stationList.get(0);
List<Switch> switchList = simulation.getRepository().getSwitchList().stream()
.filter(aSwitch -> station.equals(aSwitch.getDeviceStation())).collect(Collectors.toList());
return generateRandomElement(switchList, 2);
}
},
SIGNAL_LIST("信号机列表") {
@Override
public List<Signal> filterMapDeviceList(Simulation simulation) {
List<Signal> signalList = simulation.getRepository().getSignalList();
List<Station> stationList = STATION_LIST.filterMapDeviceList(simulation);
Station station = stationList.get(0);
List<Signal> signalList = new ArrayList<>();
station.getAllStandList().stream().filter(stand -> stand.getSection().getSignalToRight() != null)
.forEach(stand -> signalList.add(stand.getSection().getSignalToRight()));
return generateRandomElement(signalList, 2);
}
},
METRO_DEPARTURE_SIGNAL_LIST("地铁信号机列表") {
@Override
public List<Signal> filterMapDeviceList(Simulation simulation) {
List<Signal> signalList = simulation.getRepository().getStandList().stream().map(s -> s.getSection().getSignalToRight())
.filter(s -> s != null && !CollectionUtils.isEmpty(s.getRouteList())).collect(Collectors.toList());
return generateRandomElement(signalList, 2);
}
},
RAILWAY_DEPARTURE_SIGNAL_LIST("大铁发车信号机列表") {
@Override
public List<Signal> filterMapDeviceList(Simulation simulation) {
List<Signal> signalList = simulation.getRepository().getSignalList().stream()
.filter(s -> Signal.SignalType.DEPARTURE.equals(s.getType())).collect(Collectors.toList());
return generateRandomElement(signalList, 2);
}
},
SECTION_LIST("普通区段列表") {
SECTION_LIST("区段列表") {
@Override
public List<Section> filterMapDeviceList(Simulation simulation) {
List<Signal> signalList = simulation.getRepository().getStandList().stream().map(s -> s.getSection().getSignalToRight())
.filter(s -> s != null && !CollectionUtils.isEmpty(s.getRouteList())).collect(Collectors.toList());
signalList = generateRandomElement(signalList, 2);
List<Route> routeList = ROUTE_LIST.filterMapDeviceList(simulation);
List<Section> sectionList = new ArrayList<>(100);
signalList.forEach(s -> s.getRouteList().forEach(r -> sectionList.addAll(r.getSectionList())));
routeList.forEach(route -> sectionList.addAll(route.getSectionList()));
return generateRandomElement(sectionList, 2);
}
},
SECTION_STAND_TURN_BACK_LIST("折返区段列表") {
@Override
public List<Section> filterMapDeviceList(Simulation simulation) {
List<Section> sectionList = simulation.getRepository().getSectionList().stream()
.filter(section -> section.isStandTrack() && section.isTurnBackTrack())
.collect(Collectors.toList());
return MapDeviceRule.generateRandomElement(sectionList, 2);
}
},
SECTION_NO_AXLE_COUNTER_LIST("非计轴区段列表") {
@Override
public List<Section> filterMapDeviceList(Simulation simulation) {
List<String> stationCodeList = simulation.getBuildParams().getMap().getGraphDataNew().getStationList()
.stream().filter(s -> s.isVisible() && s.isCentralized() && s.isCiStation()).map(MapStationNewVO::getCode)
.collect(Collectors.toList());
List<Section> sectionList = simulation.getRepository().getSectionList().stream()
.filter(section -> stationCodeList.contains(section.getDeviceStation().getCode()) && !section.isAxleCounter())
.collect(Collectors.toList());
return generateRandomElement(sectionList, 2);
}
},
SECTION_AXLE_COUNTER_LIST("道岔计轴区段列表") {
@Override
public List<Section> filterMapDeviceList(Simulation simulation) {
List<String> stationCodeList = simulation.getBuildParams().getMap().getGraphDataNew().getStationList()
.stream().filter(s -> s.isVisible() && s.isCentralized() && s.isCiStation()).map(MapStationNewVO::getCode)
.collect(Collectors.toList());
List<Section> sectionList = simulation.getRepository().getSectionList().stream()
.filter(Section::isSwitchTrack).collect(Collectors.toList());
.filter(section -> stationCodeList.contains(section.getDeviceStation().getCode()) && section.isAxleCounter())
.collect(Collectors.toList());
return generateRandomElement(sectionList, 2);
}
},
SECTION_ROUTE_LIST("") {
@Override
public List<Section> filterMapDeviceList(Simulation simulation) {
List<Signal> signalList = simulation.getRepository().getStandList().stream()
.map(s -> s.getSection().getSignalToRight()).filter(s -> s != null && !CollectionUtils.isEmpty(s.getRouteList())).collect(Collectors.toList());
return null;
}
}
;

View File

@ -36,6 +36,8 @@ public abstract class MapElementRule {
return ((Switch) mapElement).getDeviceStation();
} else if (mapElement instanceof Section) {
return ((Section) mapElement).getDeviceStation();
} else if (mapElement instanceof Stand) {
return ((Stand) mapElement).getDeviceStation();
}
throw new SimulationException(SimulationExceptionType.Simulation_Map_Data_Error);
}

View File

@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="club.joylink.rtss.entity.training2.RtsTraining2Rule" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="sim_type" property="simType" jdbcType="VARCHAR" />
<result column="line_code" property="lineCode" 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 +83,7 @@
</sql>
<sql id="Base_Column_List" >
id, sim_type, device_rule, client, name, description, type, labels, scene_rule, creator_id, create_time, location_rule
id, sim_type, line_code, device_rule, client, name, description, type, labels, scene_rule, creator_id, create_time, location_rule
</sql>
<sql id="Blob_Column_List" >
@ -138,11 +139,11 @@
<insert id="insert" parameterType="club.joylink.rtss.entity.training2.RtsTraining2RuleWithBLOBs" >
insert into rts_training2_rule (
id, sim_type, device_rule, client, name, description, type, labels,
id, sim_type, line_code, device_rule, client, name, description, type, labels,
scene_rule, creator_id, create_time, steps, failure_rule, location_rule
)
values (
#{id,jdbcType=BIGINT}, #{simType,jdbcType=VARCHAR}, #{deviceRule,jdbcType=VARCHAR}, #{client,jdbcType=VARCHAR},
#{id,jdbcType=BIGINT}, #{simType,jdbcType=VARCHAR}, #{lineCode,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}
@ -158,6 +159,9 @@
<if test="simType != null" >
sim_type,
</if>
<if test="lineCode != null">
line_code,
</if>
<if test="deviceRule != null" >
device_rule,
</if>
@ -202,6 +206,9 @@
<if test="simType != null" >
#{simType,jdbcType=VARCHAR},
</if>
<if test="lineCode != null">
#{lineCode,jdbcType=VARCHAR},
</if>
<if test="deviceRule != null" >
#{deviceRule,jdbcType=VARCHAR},
</if>
@ -250,6 +257,9 @@
<if test="record.simType != null" >
sim_type = #{record.simType,jdbcType=VARCHAR},
</if>
<if test="record.lineCode != null">
line_code = #{record.lineCode,jdbcType=VARCHAR},
</if>
<if test="record.deviceRule != null" >
device_rule = #{record.deviceRule,jdbcType=VARCHAR},
</if>
@ -296,6 +306,7 @@
update rts_training2_rule
set id = #{record.id,jdbcType=BIGINT},
sim_type = #{record.simType,jdbcType=VARCHAR},
line_code = #{record.lineCode,jdbcType=VARCHAR},
device_rule = #{record.deviceRule,jdbcType=VARCHAR},
client = #{record.client,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
@ -317,6 +328,7 @@
update rts_training2_rule
set id = #{record.id,jdbcType=BIGINT},
sim_type = #{record.simType,jdbcType=VARCHAR},
line_code = #{record.lineCode,jdbcType=VARCHAR},
device_rule = #{record.deviceRule,jdbcType=VARCHAR},
client = #{record.client,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
@ -338,6 +350,9 @@
<if test="simType != null" >
sim_type = #{simType,jdbcType=VARCHAR},
</if>
<if test="lineCode != null">
line_code = #{lineCode,jdbcType=VARCHAR},
</if>
<if test="deviceRule != null" >
device_rule = #{deviceRule,jdbcType=VARCHAR},
</if>
@ -381,6 +396,7 @@
<update id="updateByPrimaryKeyWithBLOBs" parameterType="club.joylink.rtss.entity.training2.RtsTraining2RuleWithBLOBs" >
update rts_training2_rule
set sim_type = #{simType,jdbcType=VARCHAR},
line_code = #{lineCode,jdbcType=VARCHAR},
device_rule = #{deviceRule,jdbcType=VARCHAR},
client = #{client,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
@ -399,6 +415,7 @@
<update id="updateByPrimaryKey" parameterType="club.joylink.rtss.entity.training2.RtsTraining2Rule" >
update rts_training2_rule
set sim_type = #{simType,jdbcType=VARCHAR},
line_code = #{lineCode,jdbcType=VARCHAR},
device_rule = #{deviceRule,jdbcType=VARCHAR},
client = #{client,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},