Browse Source

Merge branch 'develop' of http://47.108.150.237:10000/allen/gphm into develop-rmd

Rmengdi 1 year ago
parent
commit
d9eb4e5f52

+ 1 - 1
PHM-admin/phm-admin/src/main/resources/application-local.yml

@@ -10,7 +10,7 @@ udp:
     port: 19000
   simulation:
     host: 127.0.0.1
-    port: 1900
+    port: 19100
 spring:
   redis:
     host: localhost

+ 11 - 0
PHM-admin/phm-manage/src/main/java/com/phm/manage/controller/SortieController.java

@@ -8,6 +8,7 @@ import com.phm.common.core.page.TableDataInfo;
 import com.phm.common.enums.BusinessType;
 import com.phm.common.utils.poi.ExcelUtil;
 import com.phm.manage.domain.Sortie;
+import com.phm.manage.domain.common.CommonResult;
 import com.phm.manage.service.ISortieParameterService;
 import com.phm.manage.service.ISortieService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +42,16 @@ public class SortieController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询架次信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('manage:sortie:list')")
+    @GetMapping("/list/all")
+    public CommonResult<List<Sortie>> listAll(Sortie sortie) {
+        List<Sortie> list = sortieService.selectSortieList(sortie);
+        return CommonResult.success(list);
+    }
+
     /**
      * 导出架次信息列表
      */

+ 55 - 0
PHM-admin/phm-manage/src/main/java/com/phm/manage/domain/BackupRestoreLog.java

@@ -0,0 +1,55 @@
+package com.phm.manage.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import com.phm.common.annotation.Excel;
+import com.phm.common.core.domain.BaseEntity;
+
+/**
+ * 备份恢复对象 PHM_BACKUP_RESTORE_LOG
+ *
+ * @author phm
+ * @date 2023-12-06
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+public class BackupRestoreLog extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一ID */
+    @Excel(name = "唯一ID")
+    private Long id;
+
+    /** 数据类型 */
+    @Excel(name = "数据类型")
+    private Integer type;
+
+    /** 操作方式 */
+    @Excel(name = "操作方式")
+    private String operateType;
+
+    /** 备份状态 */
+    @Excel(name = "备份状态")
+    private String status;
+
+    /** 数据源 */
+    @Excel(name = "数据源")
+    private String source;
+
+    /** 目标 */
+    @Excel(name = "目标")
+    private String target;
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("type", getType())
+            .append("operateType", getOperateType()).append("status", getStatus()).append("source", getSource())
+            .append("target", getTarget()).append("remark", getRemark()).append("isDelete", getIsDelete())
+            .append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime()).toString();
+    }
+}

+ 2 - 2
PHM-admin/phm-manage/src/main/java/com/phm/manage/domain/ModelInfo.java

@@ -47,11 +47,11 @@ public class ModelInfo extends BaseEntity {
      * 模型参数
      */
     @Excel(name = "模型参数")
-    private String modelParms;
+    private String modelParams;
 
     /**
      * 数据参数
      */
     @Excel(name = "数据参数")
-    private String dataParms;
+    private String dataParams;
 }

+ 61 - 0
PHM-admin/phm-manage/src/main/java/com/phm/manage/mapper/BackupRestoreMapper.java

@@ -0,0 +1,61 @@
+package com.phm.manage.mapper;
+
+import java.util.List;
+
+import com.phm.manage.domain.BackupRestoreLog;
+
+/**
+ * 备份恢复Mapper接口
+ *
+ * @author phm
+ * @date 2023-12-06
+ */
+public interface BackupRestoreMapper {
+    /**
+     * 查询备份恢复
+     *
+     * @param id 备份恢复主键
+     * @return 备份恢复
+     */
+    public BackupRestoreLog selectBackupRestoreLogById(Long id);
+
+    /**
+     * 查询备份恢复列表
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 备份恢复集合
+     */
+    public List<BackupRestoreLog> selectBackupRestoreLogList(BackupRestoreLog backupRestoreLog);
+
+    /**
+     * 新增备份恢复
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 结果
+     */
+    public int insertBackupRestoreLog(BackupRestoreLog backupRestoreLog);
+
+    /**
+     * 修改备份恢复
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 结果
+     */
+    public int updateBackupRestoreLog(BackupRestoreLog backupRestoreLog);
+
+    /**
+     * 删除备份恢复
+     *
+     * @param id 备份恢复主键
+     * @return 结果
+     */
+    public int deleteBackupRestoreLogById(Long id);
+
+    /**
+     * 批量删除备份恢复
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBackupRestoreLogByIds(Long[] ids);
+}

+ 52 - 1
PHM-admin/phm-manage/src/main/java/com/phm/manage/service/IBackupRestoreService.java

@@ -1,6 +1,8 @@
 package com.phm.manage.service;
 
-import java.io.IOException;
+import com.phm.manage.domain.BackupRestoreLog;
+
+import java.util.List;
 
 /**
  * @Description IBackupRestoreService
@@ -9,5 +11,54 @@ import java.io.IOException;
  */
 public interface IBackupRestoreService {
     boolean fileCopyBackup(String sourceFolderPath, String targetFolderPath);
+
     boolean fileCopyRestore(String sourceFolderPath, String targetFolderPath);
+
+    /**
+     * 查询备份恢复
+     *
+     * @param id 备份恢复主键
+     * @return 备份恢复
+     */
+    public BackupRestoreLog selectBackupRestoreLogById(Long id);
+
+    /**
+     * 查询备份恢复列表
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 备份恢复集合
+     */
+    public List<BackupRestoreLog> selectBackupRestoreLogList(BackupRestoreLog backupRestoreLog);
+
+    /**
+     * 新增备份恢复
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 结果
+     */
+    public int insertBackupRestoreLog(BackupRestoreLog backupRestoreLog);
+
+    /**
+     * 修改备份恢复
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 结果
+     */
+    public int updateBackupRestoreLog(BackupRestoreLog backupRestoreLog);
+
+    /**
+     * 批量删除备份恢复
+     *
+     * @param ids 需要删除的备份恢复主键集合
+     * @return 结果
+     */
+    public int deleteBackupRestoreLogByIds(Long[] ids);
+
+    /**
+     * 删除备份恢复信息
+     *
+     * @param id 备份恢复主键
+     * @return 结果
+     */
+    public int deleteBackupRestoreLogById(Long id);
 }

+ 109 - 10
PHM-admin/phm-manage/src/main/java/com/phm/manage/service/impl/BackupRestoreService.java

@@ -5,11 +5,17 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.phm.common.utils.DateUtils;
+import com.phm.manage.domain.BackupRestoreLog;
+import com.phm.manage.mapper.BackupRestoreMapper;
 import com.phm.manage.service.IBackupRestoreService;
+import com.phm.manage.util.SnowFlakeIdGenerator;
 
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ObjectUtil;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -20,13 +26,108 @@ import lombok.extern.slf4j.Slf4j;
 @Service
 @Slf4j
 public class BackupRestoreService implements IBackupRestoreService {
+
+    @Autowired
+    private BackupRestoreMapper backupRestoreMapper;
+
+    @Autowired
+    private SnowFlakeIdGenerator snowFlakeIdGenerator;
+
+    @Override
+    public boolean fileCopyRestore(String sourceFolderPath, String targetFolderPath) {
+        BackupRestoreLog log = new BackupRestoreLog();
+        log.setType(1).setTarget(sourceFolderPath).setTarget(targetFolderPath).setOperateType("恢复").setStatus("成功");
+        // 执行复制操作
+        boolean flag = copyFile(sourceFolderPath, targetFolderPath, true);
+        if (!flag) {
+            log.setStatus("失败");
+        }
+        backupRestoreMapper.insertBackupRestoreLog(log);
+        return true;
+    }
+
     @Override
     public boolean fileCopyBackup(String sourceFolderPath, String targetFolderPath) {
-        copyFile(sourceFolderPath, targetFolderPath, false);
+        BackupRestoreLog log = new BackupRestoreLog();
+        log.setType(1).setTarget(sourceFolderPath).setTarget(targetFolderPath).setOperateType("备份").setStatus("成功");
+        boolean flag = copyFile(sourceFolderPath, targetFolderPath, false);
+        if (!flag) {
+            log.setStatus("失败");
+        }
         return true;
     }
 
-    private static void copyFile(String sourceFolderPath, String targetFolderPath, boolean isAllCopy) {
+    /**
+     * 查询备份恢复
+     *
+     * @param id 备份恢复主键
+     * @return 备份恢复
+     */
+    @Override
+    public BackupRestoreLog selectBackupRestoreLogById(Long id) {
+        return backupRestoreMapper.selectBackupRestoreLogById(id);
+    }
+
+    /**
+     * 查询备份恢复列表
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 备份恢复
+     */
+    @Override
+    public List<BackupRestoreLog> selectBackupRestoreLogList(BackupRestoreLog backupRestoreLog) {
+        return backupRestoreMapper.selectBackupRestoreLogList(backupRestoreLog);
+    }
+
+    /**
+     * 新增备份恢复
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 结果
+     */
+    @Override
+    public int insertBackupRestoreLog(BackupRestoreLog backupRestoreLog) {
+        backupRestoreLog.setId(snowFlakeIdGenerator.nextId());
+        backupRestoreLog.setCreateTime(DateUtils.getNowDate());
+        return backupRestoreMapper.insertBackupRestoreLog(backupRestoreLog);
+    }
+
+    /**
+     * 修改备份恢复
+     *
+     * @param backupRestoreLog 备份恢复
+     * @return 结果
+     */
+    @Override
+    public int updateBackupRestoreLog(BackupRestoreLog backupRestoreLog) {
+        backupRestoreLog.setUpdateTime(DateUtils.getNowDate());
+        return backupRestoreMapper.updateBackupRestoreLog(backupRestoreLog);
+    }
+
+    /**
+     * 批量删除备份恢复
+     *
+     * @param ids 需要删除的备份恢复主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBackupRestoreLogByIds(Long[] ids) {
+        return backupRestoreMapper.deleteBackupRestoreLogByIds(ids);
+    }
+
+    /**
+     * 删除备份恢复信息
+     *
+     * @param id 备份恢复主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBackupRestoreLogById(Long id) {
+        return backupRestoreMapper.deleteBackupRestoreLogById(id);
+    }
+
+    private static boolean copyFile(String sourceFolderPath, String targetFolderPath, boolean isAllCopy) {
+        boolean flag = true;
         // 获取源文件夹和目标文件夹中的文件列表
         List<File> sourceFiles = FileUtil.loopFiles(sourceFolderPath);
         List<File> targetFiles = FileUtil.loopFiles(targetFolderPath);
@@ -44,15 +145,13 @@ public class BackupRestoreService implements IBackupRestoreService {
             // 如果源文件是新添加或者修改过的,则进行复制
             if (isAllCopy || !targetFiles.contains(targetFile)
                 || sourceFile.lastModified() > targetFile.lastModified()) {
-                FileUtil.copy(sourceFile, targetFile, true);
+                File file = FileUtil.copy(sourceFile, targetFile, true);
+                if (ObjectUtil.isEmpty(file)) {
+                    flag = false;
+                    break;
+                }
             }
         }
-    }
-
-    @Override
-    public boolean fileCopyRestore(String sourceFolderPath, String targetFolderPath) {
-        // 执行复制操作
-        copyFile(sourceFolderPath, targetFolderPath, true);
-        return true;
+        return flag;
     }
 }

+ 15 - 0
PHM-admin/phm-manage/src/main/java/com/phm/manage/service/impl/FaultCaseServiceImpl.java

@@ -126,4 +126,19 @@ public class FaultCaseServiceImpl implements IFaultCaseService {
         wrapper.queryStringQuery(description);
         return esFaultCaseMapper.selectList(wrapper);
     }
+
+    /**
+     * 数据同步到es
+     *
+     * @param index 索引
+     * @return 插入的数据总数
+     */
+    public boolean syncEsData(String index) {
+        esFaultCaseMapper.deleteIndex(index);
+        if (!esFaultCaseMapper.existsIndex("fault_case")) {
+            esFaultCaseMapper.createIndex();
+        }
+        Integer count = esFaultCaseMapper.insertBatch(faultCaseMapper.selectFaultCaseList(new FaultCase()));
+        return count > 0;
+    }
 }

+ 2 - 3
PHM-admin/phm-manage/src/main/java/com/phm/manage/service/impl/ModelServiceImpl.java

@@ -17,7 +17,6 @@ import com.phm.common.constant.Constants;
 import com.phm.common.exception.GlobalException;
 import com.phm.common.utils.file.FileUploadUtils;
 import com.phm.common.utils.ip.IpUtils;
-import com.phm.common.utils.uuid.Seq;
 import com.phm.manage.domain.ModelInfo;
 import com.phm.manage.domain.SortieParameter;
 import com.phm.manage.domain.dto.ModelRequest;
@@ -106,7 +105,7 @@ public class ModelServiceImpl implements IModelService {
         }
         String url;
         try {
-            url = getFileUrl(modelInfo.getDataParms(), sortieParameter.getDataPath());
+            url = getFileUrl(modelInfo.getDataParams(), sortieParameter.getDataPath());
         } catch (IOException e) {
             log.error(e.getMessage());
             throw new GlobalException("上传文件失败");
@@ -133,7 +132,7 @@ public class ModelServiceImpl implements IModelService {
     }
 
     private static Map<String, String> getParmsMap(ModelInfo modelInfo) {
-        String modelParms = modelInfo.getModelParms();
+        String modelParms = modelInfo.getModelParams();
         if (ObjectUtil.isEmpty(modelParms)) {
             return new HashMap<>();
         }

+ 109 - 0
PHM-admin/phm-manage/src/main/resources/mapper/manage/BackupRestoreMapper.xml

@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.phm.manage.mapper.BackupRestoreMapper">
+
+    <resultMap type="BackupRestoreLog" id="BackupRestoreLogResult">
+        <result property="id"    column="ID"    />
+        <result property="type"    column="TYPE"    />
+        <result property="operateType"    column="OPERATE_TYPE"    />
+        <result property="status"    column="STATUS"    />
+        <result property="source"    column="SOURCE"    />
+        <result property="target"    column="TARGET"    />
+        <result property="remark"    column="REMARK"    />
+        <result property="isDelete"    column="IS_DELETE"    />
+        <result property="createBy"    column="CREATE_BY"    />
+        <result property="createTime"    column="CREATE_TIME"    />
+        <result property="updateBy"    column="UPDATE_BY"    />
+        <result property="updateTime"    column="UPDATE_TIME"    />
+    </resultMap>
+
+    <sql id="selectBackupRestoreLogVo">
+        select ID, TYPE, OPERATE_TYPE, STATUS, SOURCE, TARGET, REMARK, IS_DELETE, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME from PHM_BACKUP_RESTORE_LOG
+    </sql>
+
+    <select id="selectBackupRestoreLogList" parameterType="BackupRestoreLog" resultMap="BackupRestoreLogResult">
+        <include refid="selectBackupRestoreLogVo"/>
+        <where>
+            <if test="id != null "> and ID = #{id}</if>
+            <if test="type != null "> and TYPE = #{type}</if>
+            <if test="operateType != null  and operateType != ''"> and OPERATE_TYPE = #{operateType}</if>
+            <if test="status != null  and status != ''"> and STATUS = #{status}</if>
+            <if test="source != null  and source != ''"> and SOURCE = #{source}</if>
+            <if test="target != null  and target != ''"> and TARGET = #{target}</if>
+            <if test="remark != null  and remark != ''"> and REMARK = #{remark}</if>
+            <if test="isDelete != null "> and IS_DELETE = #{isDelete}</if>
+            <if test="createBy != null  and createBy != ''"> and CREATE_BY = #{createBy}</if>
+            <if test="createTime != null "> and CREATE_TIME = #{createTime}</if>
+            <if test="updateBy != null  and updateBy != ''"> and UPDATE_BY = #{updateBy}</if>
+            <if test="updateTime != null "> and UPDATE_TIME = #{updateTime}</if>
+        </where>
+    </select>
+
+    <select id="selectBackupRestoreLogById" parameterType="Long" resultMap="BackupRestoreLogResult">
+        <include refid="selectBackupRestoreLogVo"/>
+        where ID = #{id}
+    </select>
+
+    <insert id="insertBackupRestoreLog" parameterType="BackupRestoreLog">
+        insert into PHM_BACKUP_RESTORE_LOG
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">ID,</if>
+            <if test="type != null">TYPE,</if>
+            <if test="operateType != null">OPERATE_TYPE,</if>
+            <if test="status != null">STATUS,</if>
+            <if test="source != null">SOURCE,</if>
+            <if test="target != null">TARGET,</if>
+            <if test="remark != null">REMARK,</if>
+            <if test="isDelete != null">IS_DELETE,</if>
+            <if test="createBy != null">CREATE_BY,</if>
+            <if test="createTime != null">CREATE_TIME,</if>
+            <if test="updateBy != null">UPDATE_BY,</if>
+            <if test="updateTime != null">UPDATE_TIME,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="type != null">#{type},</if>
+            <if test="operateType != null">#{operateType},</if>
+            <if test="status != null">#{status},</if>
+            <if test="source != null">#{source},</if>
+            <if test="target != null">#{target},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="isDelete != null">#{isDelete},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateBackupRestoreLog" parameterType="BackupRestoreLog">
+        update PHM_BACKUP_RESTORE_LOG
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null">TYPE = #{type},</if>
+            <if test="operateType != null">OPERATE_TYPE = #{operateType},</if>
+            <if test="status != null">STATUS = #{status},</if>
+            <if test="source != null">SOURCE = #{source},</if>
+            <if test="target != null">TARGET = #{target},</if>
+            <if test="remark != null">REMARK = #{remark},</if>
+            <if test="isDelete != null">IS_DELETE = #{isDelete},</if>
+            <if test="createBy != null">CREATE_BY = #{createBy},</if>
+            <if test="createTime != null">CREATE_TIME = #{createTime},</if>
+            <if test="updateBy != null">UPDATE_BY = #{updateBy},</if>
+            <if test="updateTime != null">UPDATE_TIME = #{updateTime},</if>
+        </trim>
+        where ID = #{id}
+    </update>
+
+    <delete id="deleteBackupRestoreLogById" parameterType="Long">
+        delete from PHM_BACKUP_RESTORE_LOG where ID = #{id}
+    </delete>
+
+    <delete id="deleteBackupRestoreLogByIds" parameterType="String">
+        delete from PHM_BACKUP_RESTORE_LOG where ID in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 13 - 13
PHM-admin/phm-manage/src/main/resources/mapper/manage/ModelInfoMapper.xml

@@ -9,8 +9,8 @@
         <result property="name" column="name"/>
         <result property="type" column="tye"/>
         <result property="url" column="url"/>
-        <result property="modelParms" column="model_parms"/>
-        <result property="dataParms" column="data_parms"/>
+        <result property="modelParams" column="model_params"/>
+        <result property="dataParams" column="data_params"/>
         <result property="isDelete" column="is_delete"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>
@@ -23,8 +23,8 @@
                name,
                type,
                url,
-               model_parms,
-               data_parms,
+               model_params,
+               data_params,
                is_delete,
                create_by,
                create_time,
@@ -39,9 +39,9 @@
             <if test="name != null  and name != ''">and name = #{name}</if>
             <if test="type != null  and type != ''">and type = #{type}</if>
             <if test="url != null  and url != ''">and url = #{url}</if>
-            <if test="modelParms != null  and modelParms != ''">and model_parms =
-                #{modelParms}</if>
-            <if test="dataParms != null  and dataParms != ''">and data_parms =
+            <if test="modelParams != null  and modelParams != ''">and model_parms =
+                #{modelParams}</if>
+            <if test="dataParams != null  and dataParams != ''">and data_parms =
                 #{parms}</if>
             <if test="isDelete != null ">and is_delete = #{isDelete}</if>
         </where>
@@ -59,8 +59,8 @@
             <if test="name != null">name,</if>
             <if test="type != null">type,</if>
             <if test="url != null">url,</if>
-            <if test="modelParms != null">model_parms,</if>
-            <if test="dataParms != null">data_parms,</if>
+            <if test="modelParams != null">model_params,</if>
+            <if test="dataParams != null">data_params,</if>
             <if test="isDelete != null">is_delete,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
@@ -72,8 +72,8 @@
             <if test="name != null">#{name},</if>
             <if test="type != null">#{type},</if>
             <if test="url != null">#{url},</if>
-            <if test="modelParms != null">#{modelParms},</if>
-            <if test="dataParms != null">#{dataParms},</if>
+            <if test="modelParams != null">#{modelParams},</if>
+            <if test="dataParams != null">#{dataParams},</if>
             <if test="isDelete != null">#{isDelete},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
@@ -88,8 +88,8 @@
             <if test="name != null">name = #{name},</if>
             <if test="type != null">type = #{type},</if>
             <if test="url != null">url = #{url},</if>
-            <if test="modelParms != null">model_parms = #{modelParms},</if>
-            <if test="dataParms != null">data_parms = #{dataParms},</if>
+            <if test="modelParams != null">model_params = #{modelParams},</if>
+            <if test="dataParams != null">data_params = #{dataParams},</if>
             <if test="isDelete != null">is_delete = #{isDelete},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>

+ 44 - 0
PHM-web/src/api/manage/model.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询模型参数信息列表
+export function listModel(query) {
+  return request({
+    url: '/manage/model/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询模型参数信息详细
+export function getModel(id) {
+  return request({
+    url: '/manage/model/' + id,
+    method: 'get'
+  })
+}
+
+// 新增模型参数信息
+export function addModel(data) {
+  return request({
+    url: '/manage/model',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改模型参数信息
+export function updateModel(data) {
+  return request({
+    url: '/manage/model',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除模型参数信息
+export function delModel(id) {
+  return request({
+    url: '/manage/model/' + id,
+    method: 'delete'
+  })
+}

+ 9 - 0
PHM-web/src/api/manage/orderConfig.js

@@ -50,3 +50,12 @@ export function delOrderConfig(ID) {
     method: 'delete'
   })
 }
+
+// 查询架次列表
+export function listSortie(query) {
+  return request({
+    url: '/manage/sortie/list/all',
+    method: 'get',
+    params: query
+  })
+}

+ 1 - 1
PHM-web/src/views/manage/falseAlarmRestrainModel/index.vue

@@ -86,7 +86,7 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" border :data="falseAlarmRestrainModelList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="falseAlarmRestrainModelList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="模型名称" align="center" prop="modelName" />
       <el-table-column label="模型Url" align="center" prop="modelUrl" />

+ 414 - 0
PHM-web/src/views/manage/model/index.vue

@@ -0,0 +1,414 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="模型连接" prop="url">
+        <el-input
+          v-model="queryParams.url"
+          placeholder="请输入模型连接"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:model:add']"
+          >新增</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['manage:model:edit']"
+          >修改</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:model:remove']"
+          >删除</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:model:export']"
+          >导出</el-button
+        >
+      </el-col>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
+
+    <el-table
+      v-loading="loading"
+      :data="modelList"
+      border
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="名称" align="center" prop="name" />
+      <el-table-column label="模型连接" align="center" prop="url" />
+      <el-table-column label="模型参数" align="center" prop="modelParams" />
+      <el-table-column label="数据参数" align="center" prop="dataParams" />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:model:edit']"
+            >修改</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:model:remove']"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改模型参数信息对话框 -->
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="800px"
+      :close-on-click-modal="false"
+      append-to-body
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row :gutter="80">
+          <el-col :span="10">
+            <el-form-item label="模型名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入模型名称" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item label="模型Url" prop="url">
+              <el-input v-model="form.url" placeholder="请输入模型Url" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="80">
+          <el-col :span="20">
+            <el-form-item label="数据参数" prop="dataParams">
+              <el-select
+                v-model="form.dataParamsArr"
+                placeholder="请选择数据参数"
+                multiple
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="dict in dict.type.basic_parameters_sorties"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">模型参数</el-divider>
+        <el-row :gutter="80">
+          <el-col :span="12">
+            <el-form-item>
+              <el-button @click="addModelForms" icon="el-icon-plus"></el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item
+          v-for="(item, index) in form.modelParamsArr"
+          :key="index"
+          label-width="100px"
+        >
+          <div class="dynamicAdd">
+            <el-input
+              v-model="item.key"
+              style="width: 200px"
+              placeholder="请输入模型参数属性名"
+            ></el-input>
+            <span> ----- </span>
+            <el-input
+              v-model="item.value"
+              style="width: 200px"
+              placeholder="请输入模型参数属性值"
+            ></el-input>
+            <el-button
+              @click.prevent="removeModelForm(item)"
+              icon="el-icon-minus"
+              style="margin-left: 20px; border: none"
+            ></el-button>
+          </div>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listModel,
+  getModel,
+  delModel,
+  addModel,
+  updateModel,
+} from "@/api/manage/model";
+
+export default {
+  name: "Model",
+  dicts: ["basic_parameters_sorties"],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 模型参数信息表格数据
+      modelList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        type: 1,
+        url: null,
+        modelParams: null,
+        dataParams: null,
+      },
+      // 表单参数
+      form: {
+        id: null,
+        name: null,
+        type: 1,
+        url: null,
+        modelParamsArr: [],
+        dataParamsArr: [],
+      },
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "模型名称不能为空", trigger: "blur" },
+        ],
+        url: [{ required: true, message: "模型url不能为空", trigger: "blur" }],
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询模型参数信息列表 */
+    getList() {
+      this.loading = true;
+      listModel(this.queryParams).then((response) => {
+        this.modelList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 新增模型表单
+    addModelForms() {
+      this.form.modelParamsArr.push({
+        key: "",
+        value: "",
+      });
+    },
+    removeModelForm(item) {
+      var index = this.form.modelParamsArr.indexOf(item);
+      if (index !== -1) {
+        this.form.modelParamsArr.splice(index, 1);
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        type: 1,
+        url: null,
+        modelParamsArr: [],
+        dataParamsArr: [],
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加模型参数信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids;
+      getModel(id).then((response) => {
+        this.setData(response.data)
+        this.open = true;
+        this.title = "修改模型参数信息";
+      });
+    },
+    setData(data){
+      this.form.id = data.id
+      this.form.name = data.name
+      this.form.type = data.type
+      this.form.url = data.url
+      this.form.modelParamsArr = JSON.parse(data.modelParams || [])
+      this.form.dataParamsArr = JSON.parse(data.dataParams || [])
+    },
+    toStr() {
+      this.form.modelParams = JSON.stringify(this.form.modelParamsArr)
+      this.form.dataParams = JSON.stringify(this.form.dataParamsArr)
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.toStr()
+          if (this.form.id != null) {
+            updateModel(this.form).then((response) => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addModel(this.form).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal
+        .confirm('是否确认删除模型参数信息编号为"' + ids + '"的数据项?')
+        .then(function () {
+          return delModel(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download(
+        "manage/model/export",
+        {
+          ...this.queryParams,
+        },
+        `model_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
+};
+</script>

+ 17 - 21
PHM-web/src/views/manage/orderConfig/index.vue

@@ -33,10 +33,6 @@
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
           v-hasPermi="['manage:orderConfig:export']">导出</el-button>
       </el-col>
-      <el-col :span="1.5">
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="analysisDialog=true"
-          v-hasPermi="['manage:orderConfig:export']">自定义分析</el-button>
-      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -52,12 +48,6 @@
       <el-table-column label="架次" align="center" prop="sortie" />
       <el-table-column label="步长" align="center" prop="step" />
       <el-table-column label="指令描述" align="center" prop="description" />
-      <!-- <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-        </template>
-      </el-table-column> -->
       <el-table-column label="更新人" align="center" prop="updateBy" />
       <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
         <template slot-scope="scope">
@@ -89,11 +79,12 @@
               :value="dict"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="指令类型" prop="type">
-          <el-input v-model="form.type" :disabled="true" />
-        </el-form-item>
         <el-form-item label="架次" prop="sortie">
-          <el-input v-model="form.sortie" placeholder="请输入架次" />
+          <el-select v-model="form.sortie" allow-create filterable placeholder="请选择架次" style="width:100%">
+            <el-option v-for="(item, index) in sortieArr" :key="index" :label="item.sortieNumber"
+              :value="item.sortieNumber"></el-option>
+          </el-select>
+          <!-- <el-input v-model="form.sortie" placeholder="请输入架次" /> -->
         </el-form-item>
         <el-form-item label="步长" prop="step">
           <el-input v-model="form.step" placeholder="请输入步长" />
@@ -111,10 +102,6 @@
     <el-dialog :title="title" :visible.sync="openXml" :close-on-click-modal="false" width="900px" append-to-body>
       <Editor :textContent='xmlText' :dataType='"XML"' v-if="openXml"/>
     </el-dialog>
-    <!-- 自定义分析的对话框 -->
-    <el-dialog title="分析页面" :visible.sync="analysisDialog" width="27%" :show-close='false'>
-      <faultAnalysis :flag="flag" :close='close'/>
-    </el-dialog>
   </div>
 </template>
 
@@ -126,14 +113,13 @@ import {
   addOrderConfig,
   updateOrderConfig,
   getOrderConfigXml,
+  listSortie,
 } from '@/api/manage/orderConfig'
 import Editor from '@/views/manage/instructionInfo/Editor'
-import faultAnalysis from '@/views/manage/faultAnalysis'
 export default {
   name: 'OrderConfig',
   components: {
-    Editor,
-    faultAnalysis
+    Editor
   },
   dicts: ['order_type'],
   data() {
@@ -185,6 +171,8 @@ export default {
       analysisDialog:false,
       //1是自定义的,0是列表信息进入的
       flag:1,
+      // 架次下拉框
+      sortieArr: []
     }
   },
   created() {
@@ -245,6 +233,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset()
+      this.findListSortie()
       this.open = true
       this.title = '添加指令配置'
     },
@@ -256,6 +245,13 @@ export default {
         this.form = response.data
         this.open = true
         this.title = '修改指令配置'
+        this.findListSortie()
+      })
+    },
+    findListSortie() {
+      listSortie({}).then(response => {
+        this.sortieArr = response.data
+        console.log(response);
       })
     },
     /** 查询 */

+ 2 - 2
PHM-web/src/views/manage/orderInfo/index.vue

@@ -16,10 +16,10 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
           v-hasPermi="['manage:orderInfo:add']">新增</el-button>
-      </el-col>
+      </el-col> -->
       <el-col :span="1.5">
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
           v-hasPermi="['manage:orderInfo:export']">导出</el-button>

+ 7 - 3
PHM-web/src/views/manage/product/index.vue

@@ -50,7 +50,7 @@
             </el-option>
           </el-select>user/profile
         </el-form-item> -->
-        <el-form-item label="归属" prop="parentId" v-if="form.parentId !== 0">
+        <el-form-item label="归属" prop="parentId" v-if="!isParentId">
           <treeselect v-model="form.parentId" :options="productOptions" :normalizer="normalizer" placeholder="请选择父ID" />
         </el-form-item>
         <el-form-item label="名称" prop="name">
@@ -128,7 +128,11 @@ export default {
   },
   created() {
     this.getList()
-    // this.getAircraftList()
+  },
+  computed: {
+		isParentId() {
+      return this.form.parentId == 0
+    },
   },
   methods: {
     /** 查询产品树信息列表 */
@@ -216,7 +220,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      console.log(row)
+      debugger
       if (row.parentId == 0) {
         this.form.aircraftId = row.aircraftId
         this.form.name = row.name

+ 1 - 0
PHM-web/src/views/system/dept/index.vue

@@ -51,6 +51,7 @@
     <el-table
       v-if="refreshTable"
       v-loading="loading"
+      border
       :data="deptList"
       row-key="deptId"
       :default-expand-all="isExpandAll"