Ver código fonte

2024-03-15 数据库修改

fuyanting 1 ano atrás
pai
commit
97c7574e9c

+ 5 - 0
fidms-admin/pom.xml

@@ -66,6 +66,11 @@
             <version>RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>4.1.2</version>
+        </dependency>
 
     </dependencies>
 

+ 145 - 137
fidms-admin/src/main/java/com/fidms/web/domain/ExportAll.java

@@ -12,136 +12,25 @@ public class ExportAll extends BaseEntity {
     public InfraredOutput infraredout;
     public InfraredInput infraredin;
 
-    /** 编号 */
-    @Excel(name="红外输出编号")
-    public Long id;
-
-    /**对应红外输入编号*/
-    @Excel(name="对应红外输入编号")
-    public Long infraredInputID;
-
-
-    /** 文件输出路径 */
-    @Excel(name = "文件输出路径")
-    public String outputFilePath;
-
-    /** 红外辐射强度 */
-    @Excel(name = "红外辐射强度")
-    public BigDecimal radiationIntensity;
-
-    /** 红外图像路径 */
-    @Excel(name = "红外图像",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
-    public String infraredImagePath;
-
-    public void getinfraredoutData(InfraredOutput infraredout)
-    {
-        id = infraredout.getId();
-        infraredInputID = infraredout.getInfraredInputID();
-        outputFilePath = infraredout.getOutputFilePath();
-        radiationIntensity = infraredout.getRadiationIntensity();
-        infraredImagePath = infraredout.getInfraredImagePath();
-    }
-
-    @Excel(name="对应流场输出编号")
-    public Long flowFieldOutputID;
-
-    /** 完好发射率 */
-    @Excel(name = "完好发射率")
-    public BigDecimal FullLaunchRate;
-
-    /** 损伤发射率 */
-    @Excel(name = "损伤发射率")
-    public BigDecimal DamageLaunchRate;
-
-    /** 损伤区域 */
-    @Excel(name = "损伤区域")
-    public String DamageArea;
-
-    /** 损伤面积比 */
-    @Excel(name = "损伤面积比")
-    public BigDecimal DamageAreaRatio;
-
-    /** 表面状态说明 */
-    @Excel(name = "表面状态说明")
-    public String SurfaceDescription;
-
-    /** 探测距离*/
-    @Excel(name = "探测距离")
-    public BigDecimal DetectDistance;
+    /** 3D模型名称 */
+    @Excel(name = "3D模型名称")
+    public String name;
 
-    /** 探测方位角 */
-    @Excel(name = "探测方位角")
-    public BigDecimal DetectAngle;
+    /**飞机类型*/
+    @Excel(name="飞机类型")
+    public String aircraftType;
 
-    /** 红外波段 */
-    @Excel(name = "红外波段")
-    public BigDecimal InfraredBand;
+    /** 3d模型文件名称路径 */
+    @Excel(name = "3D模型文件")
+    public String model3dFilePath;
 
-    public void getinfraredinData(InfraredInput infraredin)
-    {
-        flowFieldOutputID = infraredin.getFlowFieldOutputID();
-        FullLaunchRate = infraredin.getFullLaunchRate();
-        DamageLaunchRate = infraredin.getDamageLaunchRate();
-        DamageArea =infraredin.getDamageArea();
-        DamageAreaRatio = infraredin.getDamageAreaRatio();
-        SurfaceDescription = infraredin.getSurfaceDescription();
-        DetectDistance=infraredin.getDetectDistance();
-        DetectAngle=infraredin.getDetectAngle();
-        InfraredBand=infraredin.getInfraredBand();
+    public void getModel3dData(Model3d model3d){
+        name = model3d.getName();
+        aircraftType = model3d.getAircraftType();
+        model3dFilePath = model3d.getModel3dFilePath();
     }
 
-    /**对应流场输入编号*/
-    @Excel(name = "对应流场输入编号")
-    public Long flowFieldInputID;
-
-    /** 是否为结构网格 */
-    @Excel(name = "是否为结构网格")
-    public Boolean isStructureGrid;
-
-    /** 网格数 */
-    @Excel(name = "网格数")
-    public BigDecimal gridNumber;
-
-    /** 迭代步数*/
-    @Excel(name = "迭代步数")
-    public BigDecimal iterationSteps;
-
-    /** cas文件输出路径 */
-    @Excel(name = "cas文件输出")
-    public String casOutputFilePath;
-
-    /** dat文件输出路径 */
-    @Excel(name = "dat文件输出")
-    public String datOutputFilePath;
-
-    /** other文件输出路径 */
-    @Excel(name = "other文件输出")
-    public String otherOutputFilePath;
-
-    /**表面温度分布图路径*/
-    @Excel(name="表面温度分布图",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
-    public String temperatureImagePath;
 
-    /**表面速度分布图路径*/
-    @Excel(name="表面速度分布图",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
-    public String velocityImagePath;
-
-    /**表面压力分布图路径*/
-    @Excel(name="表面压力分布图",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
-    public String pressureImagePath;
-
-    public void getFlowfieldoutData(FlowFieldOutput flowfieldout){
-        flowFieldInputID = flowfieldout.getFlowFieldInputID();
-        isStructureGrid = flowfieldout.getIsStructureGrid();
-        gridNumber = flowfieldout.getGridNumber();
-        iterationSteps = flowfieldout.getIterationSteps();
-        casOutputFilePath = flowfieldout.getCasOutputFilePath();
-        datOutputFilePath = flowfieldout.getDatOutputFilePath();
-        otherOutputFilePath = flowfieldout.getOtherOutputFilePath();
-        temperatureImagePath = flowfieldout.getTemperatureImagePath();
-        velocityImagePath=flowfieldout.getVelocityImagePath();
-        pressureImagePath=flowfieldout.getPressureImagePath();
-    }
 
     /** 3d模型主键 */
     @Excel(name = "3d模型主键")
@@ -245,22 +134,141 @@ public class ExportAll extends BaseEntity {
         fluentDatFilePath = flowfieldin.getFluentDatFilePath();
     }
 
-    /** 3D模型名称 */
-    @Excel(name = "3D模型名称")
-    public String name;
+    /**对应流场输入编号*/
+    @Excel(name = "对应流场输入编号")
+    public Long flowFieldInputID;
 
-    /**飞机类型*/
-    @Excel(name="飞机类型")
-    public String aircraftType;
+    /** 是否为结构网格 */
+    @Excel(name = "是否为结构网格")
+    public Boolean isStructureGrid;
 
-    /** 3d模型文件名称路径 */
-    @Excel(name = "3D模型文件")
-    public String model3dFilePath;
+    /** 网格数 */
+    @Excel(name = "网格数")
+    public BigDecimal gridNumber;
 
-    public void getModel3dData(Model3d model3d){
-        name = model3d.getName();
-        aircraftType = model3d.getAircraftType();
-        model3dFilePath = model3d.getModel3dFilePath();
+    /** 迭代步数*/
+    @Excel(name = "迭代步数")
+    public BigDecimal iterationSteps;
+
+    /** cas文件输出路径 */
+    @Excel(name = "cas文件输出")
+    public String casOutputFilePath;
+
+    /** dat文件输出路径 */
+    @Excel(name = "dat文件输出")
+    public String datOutputFilePath;
+
+    /** other文件输出路径 */
+    @Excel(name = "other文件输出")
+    public String otherOutputFilePath;
+
+    /**表面温度分布图路径*/
+    @Excel(name="表面温度分布图",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
+    public String temperatureImagePath;
+
+    /**表面速度分布图路径*/
+    @Excel(name="表面速度分布图",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
+    public String velocityImagePath;
+
+    /**表面压力分布图路径*/
+    @Excel(name="表面压力分布图",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
+    public String pressureImagePath;
+
+    public void getFlowfieldoutData(FlowFieldOutput flowfieldout){
+        flowFieldInputID = flowfieldout.getFlowFieldInputID();
+        isStructureGrid = flowfieldout.getIsStructureGrid();
+        gridNumber = flowfieldout.getGridNumber();
+        iterationSteps = flowfieldout.getIterationSteps();
+        casOutputFilePath = flowfieldout.getCasOutputFilePath();
+        datOutputFilePath = flowfieldout.getDatOutputFilePath();
+        otherOutputFilePath = flowfieldout.getOtherOutputFilePath();
+        temperatureImagePath = flowfieldout.getTemperatureImagePath();
+        velocityImagePath=flowfieldout.getVelocityImagePath();
+        pressureImagePath=flowfieldout.getPressureImagePath();
     }
 
+    @Excel(name="对应流场输出编号")
+    public Long flowFieldOutputID;
+
+    /** 完好发射率 */
+    @Excel(name = "完好发射率")
+    public BigDecimal FullLaunchRate;
+
+    /** 损伤发射率 */
+    @Excel(name = "损伤发射率")
+    public BigDecimal DamageLaunchRate;
+
+    /** 损伤区域 */
+    @Excel(name = "损伤区域")
+    public String DamageArea;
+
+    /** 损伤面积比 */
+    @Excel(name = "损伤面积比")
+    public BigDecimal DamageAreaRatio;
+
+    /** 表面状态说明 */
+    @Excel(name = "表面状态说明")
+    public String SurfaceDescription;
+
+    /** 探测距离*/
+    @Excel(name = "探测距离")
+    public BigDecimal DetectDistance;
+
+    /** 探测方位角 */
+    @Excel(name = "探测方位角")
+    public BigDecimal DetectAngle;
+
+    /** 红外波段 */
+    @Excel(name = "红外波段")
+    public BigDecimal InfraredBand;
+
+    public void getinfraredinData(InfraredInput infraredin)
+    {
+        flowFieldOutputID = infraredin.getFlowFieldOutputID();
+        FullLaunchRate = infraredin.getFullLaunchRate();
+        DamageLaunchRate = infraredin.getDamageLaunchRate();
+        DamageArea =infraredin.getDamageArea();
+        DamageAreaRatio = infraredin.getDamageAreaRatio();
+        SurfaceDescription = infraredin.getSurfaceDescription();
+        DetectDistance=infraredin.getDetectDistance();
+        DetectAngle=infraredin.getDetectAngle();
+        InfraredBand=infraredin.getInfraredBand();
+    }
+
+
+
+    /** 编号 */
+    @Excel(name="红外输出编号")
+    public Long id;
+
+    /**对应红外输入编号*/
+    @Excel(name="对应红外输入编号")
+    public Long infraredInputID;
+
+
+    /** 文件输出路径 */
+    @Excel(name = "文件输出路径")
+    public String outputFilePath;
+
+    /** 红外辐射强度 */
+    @Excel(name = "红外辐射强度")
+    public BigDecimal radiationIntensity;
+
+    /** 红外图像路径 */
+    @Excel(name = "红外图像",width = 25,height = 125,cellType= Excel.ColumnType.IMAGE)
+    public String infraredImagePath;
+
+    public void getinfraredoutData(InfraredOutput infraredout)
+    {
+        id = infraredout.getId();
+        infraredInputID = infraredout.getInfraredInputID();
+        outputFilePath = infraredout.getOutputFilePath();
+        radiationIntensity = infraredout.getRadiationIntensity();
+        infraredImagePath = infraredout.getInfraredImagePath();
+    }
+
+
+
+
+
 }

+ 2 - 2
fidms-admin/src/main/resources/application-druid.yml

@@ -6,9 +6,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://47.108.150.237:3306/fidms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://localhost:3306/fidms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: w.cf123321
+                password: 090022@Fyt
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 1 - 1
fidms-admin/src/main/resources/mapper/data/FlowFieldOutputMapper.xml

@@ -95,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="otherOutputFile != null">#{otherOutputFile},</if>
             <if test="otherOutputFilePath != null">#{otherOutputFilePath},</if>
             <if test="temperatureImage!= null">#{temperatureImage},</if>
-            <if test="temperatureImagePath != null">#{temperarueImagePath},</if>
+            <if test="temperatureImagePath != null">#{temperatureImagePath},</if>
             <if test="velocityImage != null">#{velocityImage},</if>
             <if test="velocityImagePath != null">#{velocityImagePath},</if>
             <if test="pressureImage != null">#{pressureImage},</if>

+ 10 - 0
fidms-ui/src/api/data/model.js

@@ -9,6 +9,16 @@ export function listModel(query) {
   })
 }
 
+// 查询3d模型列表
+export function listallinfo(query) {
+  return request({
+    url: '/data/allinfo/list',
+    method: 'get',
+    params: query
+  })
+}
+
+
 // 查询3d模型详细
 export function getModel(id) {
   return request({

+ 171 - 7
fidms-ui/src/views/data/flowIn/index.vue

@@ -417,18 +417,166 @@ export default {
           { required: true, message: "3d模型主键不能为空", trigger: "change" }
         ],
         machNumber: [
-          { required: true, message: "来流马赫数不能为空", trigger: "blur" }
+          { required: true, message: "来流马赫数不能为空", trigger: "change" },
+          {validator: (rule, value, callback) => {
+            const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+            if (!machNumberRegex.test(value)) {
+              callback(new Error('来流马赫数格式不正确,应为DECIMAL(16,6)格式'));
+            } else {
+              callback();
+            }
+            },
+            trigger: 'change'
+          }
+        ],
+        flowDirectionX: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('来流方向X格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        flowDirectionY: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('来流方向Y格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        flowDirectionZ: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('来流方向Z格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
         ],
-        fluentGridFilePath: [
-          { required: true, message: "Fluent网格文件路径不能为空", trigger: "blur" }
+        flightAltitude: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('飞行高度格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
         ],
-        fluentCasFilePath: [
-          { required: true, message: "Fluent cas文件路径不能为空", trigger: "blur" }
+        co2MassFraction: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('二氧化碳质量分数格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
         ],
-        fluentDatFilePath: [
-          { required: true, message: "Fluent dat文件不能为空", trigger: "blur" }
+        coMassFraction: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('一氧化碳质量分数格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],   
+        h2oMassFraction: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('水蒸气质量分数格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
         ],
+        infraredBand:[
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('红外波段数据格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ]
+        // fluentGridFilePath: [
+        //   { required: true, message: "Fluent网格文件路径不能为空", trigger: "blur" }
+        // ],
+        // fluentCasFilePath: [
+        //   { required: true, message: "Fluent cas文件路径不能为空", trigger: "blur" }
+        // ],
+        // fluentDatFilePath: [
+        //   { required: true, message: "Fluent dat文件不能为空", trigger: "blur" }
+        // ],
+        
       },
+      
       modelOption: [],
       fileTypeGrid: ['mesh'],
       fileTypeCas: ['cas'],
@@ -492,6 +640,18 @@ export default {
     },
     /** 搜索按钮操作 */
     handleQuery() {
+      if (this.queryParams.machNumber &&!this.isDecimalFormat(this.queryParams.machNumber)) {
+        this.$modal.msgError("来流马赫数格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
+      if (this.queryParams.infraredBand &&!this.isDecimalFormat(this.queryParams.infraredBand)) {
+        this.$modal.msgError("红外波段数据格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
+      if (this.queryParams.flightAltitude &&!this.isDecimalFormat(this.queryParams.flightAltitude)) {
+        this.$modal.msgError("飞行高度格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
       this.queryParams.pageNum = 1;
       this.getList();
     },
@@ -580,6 +740,10 @@ export default {
     },
     download(path) {
       this.$download.resource(path);
+    },
+    isDecimalFormat(value) {
+      const decimalRegex = /^\d{1,16}(\.\d{1,6})?$/;
+      return value === '' || decimalRegex.test(value);
     }
   }
 };

+ 50 - 6
fidms-ui/src/views/data/flowOut/index.vue

@@ -195,15 +195,18 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="是否为结构网格" prop="gridNumber">
+        <el-form-item label="是否为结构网格" prop="isStructureGrid">
           <el-checkbox v-model="form.isStructureGrid"></el-checkbox>
         </el-form-item>
+        
         <el-form-item label="网格数" prop="gridNumber">
           <el-input v-model="form.gridNumber" placeholder="请输入网格数" />
         </el-form-item>
         <el-form-item label="迭代步数" prop="iterationSteps">
-          <el-input v-model="form.iterationSteps" placeholder="请输入迭代步数"/>
+          <el-input v-model="form.iterationSteps" placeholder="请输入迭代步数" />
         </el-form-item>
+        
+       
         <!-- <el-form-item label="文件输出" prop="outputFile">
           <file-upload v-model="form.outputFile"/>
         </el-form-item> -->
@@ -283,18 +286,59 @@ export default {
         pressureImagePath:null
       },
       // 表单参数
-      form: {},
+      form: {
+        
+      },
       // 表单校验
       rules: {
         casOutputFilePath: [
-          { required: true, message: "3d模型主键不能为空", trigger: "change" }
+          { required: true, message: "cas文件不能为空", trigger: "change" }
         ],
         datOutputFilePath: [
-          { required: true, message: "3d模型主键不能为空", trigger: "change" }
+          { required: true, message: "dat文件不能为空", trigger: "change" }
         ],
         otherOutputFilePath: [
-          { required: true, message: "3d模型主键不能为空", trigger: "change" }
+          { required: true, message: "其他文件不能为空", trigger: "change" }
+        ],
+        flowFieldInputID: [
+          { required: true, message: "对应流场输入不能为空", trigger: "change" }
+        ],
+
+        gridNumber: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('网格数格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        iterationSteps: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null || value === undefined)  { // 允许空值通过验证
+                callback();
+              } else {
+                const x = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!x.test(value)) {
+                  callback(new Error('迭代步数格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
         ],
+
       },
       fileType: ['dat','cas','xlsx','jpg','png'],
       casfileType: ['cas'],

+ 124 - 2
fidms-ui/src/views/data/infraredIn/index.vue

@@ -210,9 +210,115 @@ export default {
       form: {},
       // 表单校验
       rules: {
-        flowFieldOutputPath: [
-          { required: true, message: "流场输出结果不能为空", trigger: "change" }
+        // flowFieldOutputPath: [
+        //   { required: true, message: "流场输出结果不能为空", trigger: "change" }
+        // ],
+        flowFieldOutputID: [
+          { required: true, message: "对应流场输出编号不能为空", trigger: "change" }
         ],
+        fullLaunchRate: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('完好发射率格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        damageLaunchRate: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('损伤发射率格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        damageAreaRatio: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('损伤面积比格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        detectDistance: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('探测距离格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        detectAngle: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('探测方位角格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
+        infraredBand: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('红外波段格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],   
+       
       },
       flowFieldOutputOption:[],
       fileType: ['cas', 'dat']
@@ -255,6 +361,18 @@ export default {
     },
     /** 搜索按钮操作 */
     handleQuery() {
+      if (this.queryParams.detectDistance &&!this.isDecimalFormat(this.queryParams.detectDistance)) {
+        this.$modal.msgError("探测距离格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
+      if (this.queryParams.detectAngle &&!this.isDecimalFormat(this.queryParams.detectAngle)) {
+        this.$modal.msgError("探测方位角格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
+      if (this.queryParams.infraredBand &&!this.isDecimalFormat(this.queryParams.infraredBand)) {
+        this.$modal.msgError("红外波段格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
       this.queryParams.pageNum = 1;
       this.getList();
     },
@@ -341,6 +459,10 @@ export default {
     },
     getOption() {
       getFlowFieldOutputID().then(resp=>{this.flowFieldOutputOption=resp.data})
+    },
+     isDecimalFormat(value) {
+      const decimalRegex = /^\d{1,16}(\.\d{1,6})?$/;
+      return value === '' || decimalRegex.test(value);
     }
   }
 };

+ 31 - 3
fidms-ui/src/views/data/infraredOut/index.vue

@@ -201,12 +201,32 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        infraredInputID: [
+          { required: true, message: "对应红外输入编号不能为空", trigger: "change" }
+        ],
         outputFilePath:[
-          { required: true, message: "文件输出不能为空", trigger: "blur" }
+          { required: true, message: "文件输出不能为空", trigger: "change" }
         ],
         infraredImagePath:[
-          { required: true, message: "文件输出不能为空", trigger: "blur" }
-        ]
+          { required: true, message: "文件输出不能为空", trigger: "change" }
+        ],
+        radiationIntensity: [
+          {
+            validator: (rule, value, callback) => {
+              if (value === '' || value === null) { // 允许空值通过验证
+                callback();
+              } else {
+                const machNumberRegex = /^\d{1,10}(\.\d{1,6})?$/; // 匹配DECIMAL(16,6)格式的正则表达式
+                if (!machNumberRegex.test(value)) {
+                  callback(new Error('红外辐射强度格式不正确,应为DECIMAL(16,6)格式'));
+                } else {
+                  callback();
+                }
+              }
+            },
+            trigger: 'change'
+          }
+        ],
       },
       infraredInputOption:[],
       fileType: ['dat', 'xls', 'jpg', 'png'],
@@ -251,6 +271,10 @@ export default {
     },
     /** 搜索按钮操作 */
     handleQuery() {
+      if (this.queryParams.radiationIntensity &&!this.isDecimalFormat(this.queryParams.radiationIntensity)) {
+        this.$modal.msgError("红外辐射强度格式不正确,请输入DECIMAL(16,6)格式数据");
+        return;
+      }
       this.queryParams.pageNum = 1;
       this.getList();
     },
@@ -342,6 +366,10 @@ export default {
     openFolder(path){
       const newName = path.slice(0,path.lastIndexOf("/"))
       getFolder(newName);
+    },
+     isDecimalFormat(value) {
+      const decimalRegex = /^\d{1,16}(\.\d{1,6})?$/;
+      return value === '' || decimalRegex.test(value);
     }
   }
 };

+ 4 - 1
fidms-ui/src/views/data/model/index.vue

@@ -130,7 +130,7 @@
 </template>
 
 <script>
-import { listModel, getModel, delModel, addModel, updateModel,getFolder } from "@/api/data/model";
+import { listModel, getModel, delModel, addModel, updateModel,getFolder,listallinfo } from "@/api/data/model";
 
 export default {
   name: "Model",
@@ -179,6 +179,7 @@ export default {
   },
   created() {
     this.getList();
+
   },
   methods: {
     /** 查询3d模型列表 */
@@ -190,6 +191,8 @@ export default {
         this.loading = false;
       });
     },
+
+    
     // 取消按钮
     cancel() {
       this.open = false;

+ 217 - 1
sql/ry_20230223.sql

@@ -919,4 +919,220 @@ insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame
 values('流场输入删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'data:flowIn:remove',       '#', 'admin', sysdate(), '', null, '');
 
 insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('流场输入导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'data:flowIn:export',       '#', 'admin', sysdate(), '', null, '');
+values('流场输入导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'data:flowIn:export',       '#', 'admin', sysdate(), '', null, '');
+
+
+
+
+
+
+
+-- 2024/03/15 修复数据库报错
+-- 具体的SQL
+
+ALTER TABLE bz_model_3d_t
+    ADD COLUMN aircraft_type VARCHAR(64) COMMENT '飞机类型';
+
+
+-- SHOW COLUMNS FROM bz_model_3d_t;
+
+
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN mach_number VARCHAR(64) COMMENT '来流马赫数';
+
+
+
+
+
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flow_direction_x DECIMAL ( 16, 6 ) COMMENT '来流方向x';
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flow_direction_y DECIMAL ( 16, 6 ) COMMENT '来流方向y';
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flow_direction_z DECIMAL ( 16, 6 ) COMMENT '来流方向z';
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN infrared_band VARCHAR(64) COMMENT '红外波段';
+
+
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flow_temperature VARCHAR(64) COMMENT '来流温度';
+
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flow_pressure VARCHAR(64) COMMENT '来流静压';
+
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flow_density VARCHAR(64) COMMENT '来流密度';
+
+
+ALTER TABLE bz_flow_field_input_t
+    ADD COLUMN flight_altitude VARCHAR(64) COMMENT '飞行高度';
+
+
+SHOW COLUMNS FROM bz_flow_field_input_t;
+
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN mach_number_x;
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN mach_number_y;
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN mach_number_z;
+
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN flight_height;
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN ox_coordinate;
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN oy_coordinate;
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN oz_coordinate;
+
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN pressure;
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN density;
+
+
+ALTER TABLE bz_flow_field_input_t
+DROP COLUMN temperature;
+
+ALTER TABLE bz_flow_field_input_t MODIFY COLUMN flight_altitude DECIMAL(16,6);
+ALTER TABLE bz_flow_field_input_t MODIFY COLUMN flow_temperature DECIMAL(16,6);
+ALTER TABLE bz_flow_field_input_t MODIFY COLUMN flow_pressure DECIMAL(16,6);
+ALTER TABLE bz_flow_field_input_t MODIFY COLUMN flow_density DECIMAL(16,6);
+ALTER TABLE bz_flow_field_input_t MODIFY COLUMN infrared_band DECIMAL(16,6);
+
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN flow_field_input_id BIGINT ( 20 ) COMMENT '对应流场输入编号';
+
+
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN cas_output_file_path VARCHAR ( 511 ) COMMENT 'cas文件输出路径';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN dat_output_file_path VARCHAR ( 511 ) COMMENT 'dat文件输出路径';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN other_output_file_path VARCHAR ( 511 ) COMMENT 'other文件输出路径';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN temperature_image_path VARCHAR ( 511 ) COMMENT '表面温度分布图输出路径';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN velocity_image_path VARCHAR ( 511 ) COMMENT '表面速度分布图输出路径';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN pressure_image_path VARCHAR ( 511 ) COMMENT '表面压力分布图输出路径';
+
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN iteration_steps VARCHAR ( 64 ) COMMENT '迭代步数';
+
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN cas_output_file VARCHAR ( 511 ) COMMENT 'cas文件输出';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN dat_output_file VARCHAR ( 511 ) COMMENT 'dat文件输出';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN other_output_file VARCHAR ( 511 ) COMMENT 'other文件输出';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN temperature_image VARCHAR ( 511 ) COMMENT '表面温度分布图输出';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN velocity_image VARCHAR ( 511 ) COMMENT '表面速度分布图输出';
+ALTER TABLE bz_flow_field_output_t
+    ADD COLUMN pressure_image VARCHAR ( 511 ) COMMENT '表面压力分布图输出';
+
+-- SHOW COLUMNS FROM bz_flow_field_output_t;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN output_file;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN output_file_path;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN soft_screen_shoot;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN soft_screen_shoot_path;
+
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN temperature;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN co2;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN co;
+ALTER TABLE bz_flow_field_output_t
+DROP COLUMN h2o;
+ALTER TABLE bz_flow_field_output_t MODIFY COLUMN iteration_steps DECIMAL(16,6);
+
+
+
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN full_launch_rate VARCHAR ( 64 ) COMMENT '完好发射率';
+ALTER TABLE bz_infrared_input_t MODIFY COLUMN full_launch_rate DECIMAL(16,6);
+
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN damage_launch_rate VARCHAR ( 64 ) COMMENT '损伤发射率';
+ALTER TABLE bz_infrared_input_t MODIFY COLUMN damage_launch_rate DECIMAL(16,6);
+
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN damage_area VARCHAR ( 511 ) COMMENT '损伤区域';
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN damage_area_ratio VARCHAR ( 64 ) COMMENT '损伤面积比';
+ALTER TABLE bz_infrared_input_t MODIFY COLUMN damage_area_ratio DECIMAL(16,6);
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN surface_description VARCHAR ( 511 ) COMMENT '表面状态说明';
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN detect_distance VARCHAR ( 64 ) COMMENT '探测距离';
+ALTER TABLE bz_infrared_input_t MODIFY COLUMN detect_distance DECIMAL(16,6);
+
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN detect_angle VARCHAR ( 64 ) COMMENT '探测方位角';
+ALTER TABLE bz_infrared_input_t MODIFY COLUMN detect_angle DECIMAL(16,6);
+ALTER TABLE bz_infrared_input_t
+    ADD COLUMN infrared_band VARCHAR ( 64 ) COMMENT '红外波段';
+
+ALTER TABLE bz_infrared_input_t MODIFY COLUMN infrared_band DECIMAL(16,6);
+-- SHOW COLUMNS FROM bz_infrared_input_t;
+
+ALTER TABLE bz_infrared_input_t
+DROP COLUMN flow_field_output_path;
+ALTER TABLE bz_infrared_input_t
+DROP COLUMN surface_material;
+ALTER TABLE bz_infrared_input_t
+DROP COLUMN infrared_obser_dist;
+
+
+
+ALTER TABLE bz_infrared_output_t
+    ADD COLUMN infrared_input_id BIGINT ( 20 ) COMMENT '对应红外输入编号';
+
+
+ALTER TABLE bz_infrared_output_t
+    ADD COLUMN infrared_image_path  VARCHAR ( 511 ) COMMENT '红外图像输出路径';
+
+ALTER TABLE bz_infrared_output_t
+    ADD COLUMN infrared_image  VARCHAR ( 511 ) COMMENT '红外图像输出';
+
+
+--  SHOW COLUMNS FROM bz_infrared_output_t;
+ALTER TABLE bz_infrared_output_t
+DROP COLUMN flow_field_output_path;
+ALTER TABLE bz_infrared_output_t
+DROP COLUMN surface_material;
+ALTER TABLE bz_infrared_output_t
+DROP COLUMN infrared_obser_dist;
+
+
+
+-- 菜单 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('报表管理', '2030', '1', 'allinfo', 'data/allinfo/index', 1, 0, 'C', '0', '0', 'data:allinfo:list', '#', 'admin', sysdate(), '', null, '报表管理菜单');
+
+-- 按钮父菜单ID
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 按钮 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('报表管理查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'data:allinfo:query',        '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('报表管理新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'data:allinfo:add',          '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('报表管理修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'data:allinfo:edit',         '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('报表管理删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'data:allinfo:remove',       '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('报表管理导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'data:allinfo:export',       '#', 'admin', sysdate(), '', null, '');