root 2 лет назад
Родитель
Сommit
c9f4e598c6

+ 77 - 68
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/VehicleService.java

@@ -85,35 +85,6 @@ public class VehicleService {
             String par = FileUtil.read(parTemplate);
             log.info("saveVehicle() par文件内容为:" + vehiclePO);
             log.info("saveVehicle() 车辆模型对象为:" + vehiclePO);
-            String replace1 = par.replaceAll("wheelCenterToTop", vehiclePO.getWheelCenterToTop());
-            String replace2 = replace1.replaceAll("wheelCenterToGround", vehiclePO.getWheelCenterToGround());
-            String replace3 = replace2.replaceAll("centroidToFrontWheelCenter", vehiclePO.getCentroidToFrontWheelCenter());
-            String replace4 = replace3.replaceAll("wheelbase", vehiclePO.getWheelbase().toString());
-            String replace5 = replace4.replaceAll("sprungMass", vehiclePO.getSprungMass());
-            String replace6 = replace5.replaceAll("vehicleWidth", vehiclePO.getVehicleWidth());
-            String replace7 = replace6.replaceAll("rotationalInertiaX", vehiclePO.getRotationalInertiaX());
-            String replace8 = replace7.replaceAll("rotationalInertiaY", vehiclePO.getRotationalInertiaY());
-            String replace9 = replace8.replaceAll("effectiveRollingRadius", vehiclePO.getFrontLeftWheelEffectiveRollingRadius());
-            String replace10 = replace9.replaceAll("rollingResistanceCoefficient", vehiclePO.getFrontLeftWheelRollingResistanceCoefficient());
-            String replace11 = replace10.replaceAll("freeRadius", vehiclePO.getFrontLeftWheelFreeRadius());
-            String replace12 = replace11.replaceAll("relationCurvePositiveMomentAndSideslipAngle", convertArrayToTable(vehiclePO.getFrontLeftWheelRelationCurvePositiveMomentAndSideslipAngle()));
-            String replace13 = replace12.replaceAll("relationCurveLateralForceAndSideslipAngle", convertArrayToTable(vehiclePO.getFrontLeftWheelRelationCurveLateralForceAndSideslipAngle()));
-            String replace14 = replace13.replaceAll("relationCurveLongitudinalForceAndSideslipAngle", convertArrayToTable(vehiclePO.getFrontLeftWheelRelationCurveLongitudinalForceAndSideslipAngle()));
-            String replace15 = replace14.replaceAll("frontWheelSuspensionKinematicsCoefficient", vehiclePO.getFrontWheelSuspensionKinematicsCoefficient());
-            String replace16 = replace15.replaceAll("rearWheelSuspensionKinematicsCoefficient", vehiclePO.getRearWheelSuspensionKinematicsCoefficient());
-            String replace17 = replace16.replaceAll("rearWheelUnsprungMass", vehiclePO.getRearWheelUnsprungMass());
-            String replace18 = replace17.replaceAll("frontWheelTrackWidth", vehiclePO.getFrontWheelTrackWidth());
-            String replace19 = replace18.replaceAll("rearWheelTrackWidth", vehiclePO.getRearWheelTrackWidth());
-            String replace20 = replace19.replaceAll("windwardArea", vehiclePO.getWindwardArea());
-            String replace21 = replace20.replaceAll("airDensity", vehiclePO.getAirDensity());
-            String replace22 = replace21.replaceAll("engineCrankshaftMomentInertia", vehiclePO.getEngineCrankshaftMomentInertia());
-            String replace23 = replace22.replaceAll("idleSpeed", vehiclePO.getIdleSpeed());
-            String replace24 = replace23.replaceAll("relationCurveEngineTorqueSpeedAndThrottleOpening", convertArrayToTable(vehiclePO.getRelationCurveEngineTorqueSpeedAndThrottleOpening()));
-            String replace25 = replace24.replaceAll("momentInertiaInputShaft", vehiclePO.getMomentInertiaInputShaft());
-            String replace26 = replace25.replaceAll("momentInertiaOutputShaft", vehiclePO.getMomentInertiaOutputShaft());
-            String replace27 = replace26.replaceAll("finalDriveRatio", vehiclePO.getFinalDriveRatio());
-            String replace28 = replace27.replaceAll("transmissionEfficiency", vehiclePO.getTransmissionEfficiency());
-
             List<String> gearRatio = vehiclePO.getGearRatio();
             StringBuilder gearRatioString = new StringBuilder();
             for (int i = 0; i < gearRatio.size(); i++) {
@@ -128,8 +99,6 @@ public class VehicleService {
                 gearRatioString.append("R_GEAR_TR ").append(gearRatio.get(i)).append(System.lineSeparator());
                 gearRatioString.append("*R_GEAR_TR(").append(i - 1).append(") ").append(gearRatio.get(i)).append(System.lineSeparator());
             }
-            String replace29 = replace28.replaceAll("gearRatio", gearRatioString.toString());
-
             List<String> inertia = vehiclePO.getInertia();
             StringBuilder inertiaString = new StringBuilder();
             for (int i = 0; i < inertia.size(); i++) {
@@ -145,8 +114,6 @@ public class VehicleService {
                 inertiaString.append("ITR ").append(inertia.get(i)).append(System.lineSeparator());
                 inertiaString.append("*ITR(").append(i - 1).append(") ").append(inertia.get(i)).append(System.lineSeparator());
             }
-            String replace30 = replace29.replaceAll("inertia", inertiaString.toString());
-
             List<String> driving = vehiclePO.getDriving();
             StringBuilder drivingString = new StringBuilder();
             for (int i = 0; i < driving.size(); i++) {
@@ -161,8 +128,6 @@ public class VehicleService {
                 drivingString.append("R_EFF_TR_F ").append(driving.get(i)).append(System.lineSeparator());
                 drivingString.append("*R_EFF_TR_F(").append(i - 1).append(") ").append(driving.get(i)).append(System.lineSeparator());
             }
-            String replace31 = replace30.replaceAll("driving", drivingString.toString());
-
             List<String> coasting = vehiclePO.getDriving();
             StringBuilder coastingString = new StringBuilder();
             for (int i = 0; i < coasting.size(); i++) {
@@ -177,36 +142,62 @@ public class VehicleService {
                 coastingString.append("R_EFF_TR_R ").append(coasting.get(i)).append(System.lineSeparator());
                 coastingString.append("*R_EFF_TR_R(").append(i - 1).append(") ").append(coasting.get(i)).append(System.lineSeparator());
             }
-            String replace32 = replace31.replaceAll("coasting", coastingString.toString());
-            String replace33 = replace32.replaceAll("shiftTime", vehiclePO.getShiftTime());
-
-            String replace34 = replace33.replaceAll("shiftTimeUp12", convertArrayToTable(vehiclePO.getShiftTimeUp12()));
-            String replace35 = replace34.replaceAll("shiftTimeDown12", convertArrayToTable(vehiclePO.getShiftTimeDown12()));
-
-            String replace36 = replace35.replaceAll("shiftTimeUp23", convertArrayToTable(vehiclePO.getShiftTimeUp23()));
-            String replace37 = replace36.replaceAll("shiftTimeDown23", convertArrayToTable(vehiclePO.getShiftTimeDown23()));
-
-            String replace38 = replace37.replaceAll("shiftTimeUp34", convertArrayToTable(vehiclePO.getShiftTimeUp34()));
-            String replace39 = replace38.replaceAll("shiftTimeDown34", convertArrayToTable(vehiclePO.getShiftTimeDown34()));
-
-            String replace40 = replace39.replaceAll("shiftTimeUp45", convertArrayToTable(vehiclePO.getShiftTimeUp45()));
-            String replace41 = replace40.replaceAll("shiftTimeDown45", convertArrayToTable(vehiclePO.getShiftTimeDown45()));
-
-            String replace42 = replace41.replaceAll("shiftTimeUp56", convertArrayToTable(vehiclePO.getShiftTimeUp56()));
-            String replace43 = replace42.replaceAll("shiftTimeDown56", convertArrayToTable(vehiclePO.getShiftTimeDown56()));
-
-            // 制动力矩不再区分左右,前轮使用前左,后轮使用后左
-            String replace44 = replace43.replaceAll("frontLeftWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque());
-            String replace45 = replace44.replaceAll("frontRightWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque());
-            String replace46 = replace45.replaceAll("rearLeftWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque());
-            String replace47 = replace46.replaceAll("rearRightWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque());
-            String replace48 = replace47.replaceAll("steeringGearRatio", vehiclePO.getSteeringGearRatio());
-            String replace49 = replace48.replaceAll("relationCurveRightWheelAngleAndSteeringGearOutput", convertArrayToTable(vehiclePO.getRelationCurveRightWheelAngleAndSteeringGearOutput()));
-            String replace50 = replace49.replaceAll("relationCurveLeftWheelAngleAndSteeringGearOutput", convertArrayToTable(vehiclePO.getRelationCurveLeftWheelAngleAndSteeringGearOutput()));
             String parFileName = StringUtil.getRandomEightBitUUID() + ".par";
             String localParFilePath = parTemp + parFileName;
             String minioParFilePath = "/model/" + parFileName;
-            FileUtil.writeStringToLocalFile(replace50, localParFilePath);
+            FileUtil.writeStringToLocalFile(
+                    par.replaceAll("wheelCenterToTop", vehiclePO.getWheelCenterToTop())
+                            .replaceAll("wheelCenterToGround", vehiclePO.getWheelCenterToGround())
+                            .replaceAll("centroidToFrontWheelCenter", vehiclePO.getCentroidToFrontWheelCenter())
+                            .replaceAll("centroidToGround", vehiclePO.getCentroidToGround())
+                            .replaceAll("wheelbase", vehiclePO.getWheelbase().toString())
+                            .replaceAll("sprungMass", vehiclePO.getSprungMass())
+                            .replaceAll("vehicleWidth", vehiclePO.getVehicleWidth())
+                            .replaceAll("rotationalInertiaX", vehiclePO.getRotationalInertiaX())
+                            .replaceAll("rotationalInertiaY", vehiclePO.getRotationalInertiaY())
+                            .replaceAll("effectiveRollingRadius", vehiclePO.getFrontLeftWheelEffectiveRollingRadius())
+                            .replaceAll("rollingResistanceCoefficient", vehiclePO.getFrontLeftWheelRollingResistanceCoefficient())
+                            .replaceAll("freeRadius", vehiclePO.getFrontLeftWheelFreeRadius())
+                            .replaceAll("relationCurvePositiveMomentAndSideslipAngle", convertArrayToTableWithoutHead(vehiclePO.getFrontLeftWheelRelationCurvePositiveMomentAndSideslipAngle()))
+                            .replaceAll("relationCurveLateralForceAndSideslipAngle", convertArrayToTableWithoutHead(vehiclePO.getFrontLeftWheelRelationCurveLateralForceAndSideslipAngle()))
+                            .replaceAll("relationCurveLongitudinalForceAndSideslipAngle", convertArrayToTableWithoutHead(vehiclePO.getFrontLeftWheelRelationCurveLongitudinalForceAndSideslipAngle()))
+                            .replaceAll("frontWheelSuspensionKinematicsCoefficient", vehiclePO.getFrontWheelSuspensionKinematicsCoefficient())
+                            .replaceAll("rearWheelSuspensionKinematicsCoefficient", vehiclePO.getRearWheelSuspensionKinematicsCoefficient())
+                            .replaceAll("rearWheelUnsprungMass", vehiclePO.getRearWheelUnsprungMass())
+                            .replaceAll("frontWheelTrackWidth", vehiclePO.getFrontWheelTrackWidth())
+                            .replaceAll("rearWheelTrackWidth", vehiclePO.getRearWheelTrackWidth())
+                            .replaceAll("windwardArea", vehiclePO.getWindwardArea())
+                            .replaceAll("airDensity", vehiclePO.getAirDensity())
+                            .replaceAll("engineCrankshaftMomentInertia", vehiclePO.getEngineCrankshaftMomentInertia())
+                            .replaceAll("idleSpeed", vehiclePO.getIdleSpeed())
+                            .replaceAll("relationCurveEngineTorqueSpeedAndThrottleOpening", convertArrayToTableWithoutHead(vehiclePO.getRelationCurveEngineTorqueSpeedAndThrottleOpening()))
+                            .replaceAll("momentInertiaInputShaft", vehiclePO.getMomentInertiaInputShaft())
+                            .replaceAll("momentInertiaOutputShaft", vehiclePO.getMomentInertiaOutputShaft())
+                            .replaceAll("finalDriveRatio", vehiclePO.getFinalDriveRatio())
+                            .replaceAll("transmissionEfficiency", vehiclePO.getTransmissionEfficiency())
+                            .replaceAll("gearRatio", gearRatioString.toString())
+                            .replaceAll("inertia", inertiaString.toString())
+                            .replaceAll("driving", drivingString.toString())
+                            .replaceAll("coasting", coastingString.toString())
+                            .replace("shiftTimeSource", vehiclePO.getShiftTime()) // 换第一个
+                            .replaceAll("shiftTimeUp12", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp12()))
+                            .replaceAll("shiftTimeDown12", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown12()))
+                            .replaceAll("shiftTimeUp23", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp23()))
+                            .replaceAll("shiftTimeDown23", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown23()))
+                            .replaceAll("shiftTimeUp34", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp34()))
+                            .replaceAll("shiftTimeDown34", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown34()))
+                            .replaceAll("shiftTimeUp45", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp45()))
+                            .replaceAll("shiftTimeDown45", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown45()))
+                            .replaceAll("shiftTimeUp56", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp56()))
+                            .replaceAll("shiftTimeDown56", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown56())) // 制动力矩不再区分左右,前轮使用前左,后轮使用后左
+                            .replaceAll("frontLeftWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque())
+                            .replaceAll("frontRightWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque())
+                            .replaceAll("rearLeftWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque())
+                            .replaceAll("rearRightWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque())
+                            .replaceAll("steeringGearRatio", vehiclePO.getSteeringGearRatio())
+                            .replaceAll("relationCurveRightWheelAngleAndSteeringGearOutput", convertArrayToTableWithoutHead(vehiclePO.getRelationCurveRightWheelAngleAndSteeringGearOutput()))
+                            .replaceAll("relationCurveLeftWheelAngleAndSteeringGearOutput", convertArrayToTableWithoutHead(vehiclePO.getRelationCurveLeftWheelAngleAndSteeringGearOutput()))
+                    , localParFilePath);
             fileDownService.uploadLocalFile(localParFilePath, minioParFilePath);
             vehiclePO.setParFilePath(minioParFilePath);
         }
@@ -539,14 +530,32 @@ public class VehicleService {
         return result;
     }
 
-    public String convertArrayToTable(List<List<String>> array) {
+    public String convertArrayToTable(List<List<String>> lines) {
         StringBuilder stringBuilder = new StringBuilder();
-        for (List<String> strings : array) {
-            stringBuilder.append(strings.get(0));
-            for (int i = 1; i < strings.size(); i++) {
-                stringBuilder.append(",").append(strings.get(i));
+        for (int i = 0; i < lines.size(); i++) {
+            List<String> words = lines.get(i);
+            stringBuilder.append(words.get(0));
+            for (int j = 1; i < words.size(); i++) {
+                stringBuilder.append(",").append(words.get(j));
+            }
+            if (i != lines.size() - 1) {
+                stringBuilder.append(System.lineSeparator());
+            }
+        }
+        return stringBuilder.toString();
+    }
+
+    public String convertArrayToTableWithoutHead(List<List<String>> lines) {
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 1; i < lines.size(); i++) {
+            List<String> words = lines.get(i);
+            stringBuilder.append(words.get(0));
+            for (int j = 1; j < words.size(); j++) {
+                stringBuilder.append(",").append(words.get(j));
+            }
+            if (i != lines.size() - 1) {
+                stringBuilder.append(System.lineSeparator());
             }
-            stringBuilder.append(System.lineSeparator());
         }
         return stringBuilder.toString();
     }