allen 2 năm trước cách đây
mục cha
commit
f2428eb6c0

+ 104 - 0
kgraph-admin/src/main/java/com/kgraph/web/controller/OfflineDataAnalysisController.java

@@ -0,0 +1,104 @@
+package com.kgraph.web.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.kgraph.common.annotation.Log;;
+import com.kgraph.common.core.controller.BaseController;;
+import com.kgraph.common.core.domain.AjaxResult;;
+import com.kgraph.common.enums.BusinessType;;
+import com.kgraph.web.domain.OfflineDataAnalysis;
+import com.kgraph.web.service.IOfflineDataAnalysisService;
+import com.kgraph.common.utils.poi.ExcelUtil;;
+import com.kgraph.common.core.page.TableDataInfo;;
+
+/**
+ * 离线数据分析Controller
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+@RestController
+@RequestMapping("/showInfo/analysis")
+public class OfflineDataAnalysisController extends BaseController
+{
+    @Autowired
+    private IOfflineDataAnalysisService offlineDataAnalysisService;
+
+    /**
+     * 查询离线数据分析列表
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:analysis:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(OfflineDataAnalysis offlineDataAnalysis)
+    {
+        startPage();
+        List<OfflineDataAnalysis> list = offlineDataAnalysisService.selectOfflineDataAnalysisList(offlineDataAnalysis);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出离线数据分析列表
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:analysis:export')")
+    @Log(title = "离线数据分析", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, OfflineDataAnalysis offlineDataAnalysis)
+    {
+        List<OfflineDataAnalysis> list = offlineDataAnalysisService.selectOfflineDataAnalysisList(offlineDataAnalysis);
+        ExcelUtil<OfflineDataAnalysis> util = new ExcelUtil<OfflineDataAnalysis>(OfflineDataAnalysis.class);
+        util.exportExcel(response, list, "离线数据分析数据");
+    }
+
+    /**
+     * 获取离线数据分析详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:analysis:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(offlineDataAnalysisService.selectOfflineDataAnalysisById(id));
+    }
+
+    /**
+     * 新增离线数据分析
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:analysis:add')")
+    @Log(title = "离线数据分析", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody OfflineDataAnalysis offlineDataAnalysis)
+    {
+        return toAjax(offlineDataAnalysisService.insertOfflineDataAnalysis(offlineDataAnalysis));
+    }
+
+    /**
+     * 修改离线数据分析
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:analysis:edit')")
+    @Log(title = "离线数据分析", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody OfflineDataAnalysis offlineDataAnalysis)
+    {
+        return toAjax(offlineDataAnalysisService.updateOfflineDataAnalysis(offlineDataAnalysis));
+    }
+
+    /**
+     * 删除离线数据分析
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:analysis:remove')")
+    @Log(title = "离线数据分析", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(offlineDataAnalysisService.deleteOfflineDataAnalysisByIds(ids));
+    }
+}

+ 109 - 0
kgraph-admin/src/main/java/com/kgraph/web/controller/OfflineDataManagementController.java

@@ -0,0 +1,109 @@
+package com.kgraph.web.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.kgraph.common.annotation.Log;;
+import com.kgraph.common.core.controller.BaseController;;
+import com.kgraph.common.core.domain.AjaxResult;;
+import com.kgraph.common.enums.BusinessType;;
+import com.kgraph.web.domain.OfflineDataManagement;
+import com.kgraph.web.service.IOfflineDataManagementService;
+import com.kgraph.common.utils.poi.ExcelUtil;;
+import com.kgraph.common.core.page.TableDataInfo;;
+
+/**
+ * 离线数据管理Controller
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+@RestController
+@RequestMapping("/showInfo/management")
+public class OfflineDataManagementController extends BaseController
+{
+    @Autowired
+    private IOfflineDataManagementService offlineDataManagementService;
+
+    /**
+     * 查询离线数据管理列表
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:management:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(OfflineDataManagement offlineDataManagement)
+    {
+        startPage();
+        List<OfflineDataManagement> list = offlineDataManagementService.selectOfflineDataManagementList(offlineDataManagement);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出离线数据管理列表
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:management:export')")
+    @Log(title = "离线数据管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, OfflineDataManagement offlineDataManagement)
+    {
+        List<OfflineDataManagement> list = offlineDataManagementService.selectOfflineDataManagementList(offlineDataManagement);
+        ExcelUtil<OfflineDataManagement> util = new ExcelUtil<OfflineDataManagement>(OfflineDataManagement.class);
+        util.exportExcel(response, list, "离线数据管理数据");
+    }
+
+    /**
+     * 获取离线数据管理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:management:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(offlineDataManagementService.selectOfflineDataManagementById(id));
+    }
+
+    /**
+     * 新增离线数据管理
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:management:add')")
+    @Log(title = "离线数据管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody OfflineDataManagement offlineDataManagement)
+    {
+        return toAjax(offlineDataManagementService.insertOfflineDataManagement(offlineDataManagement));
+    }
+
+    /**
+     * 修改离线数据管理
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:management:edit')")
+    @Log(title = "离线数据管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody OfflineDataManagement offlineDataManagement)
+    {
+        return toAjax(offlineDataManagementService.updateOfflineDataManagement(offlineDataManagement));
+    }
+
+    /**
+     * 删除离线数据管理
+     */
+    @PreAuthorize("@ss.hasPermi('showInfo:management:remove')")
+    @Log(title = "离线数据管理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(offlineDataManagementService.deleteOfflineDataManagementByIds(ids));
+    }
+
+    @GetMapping("/getOption")
+    public AjaxResult getOption() {
+        return success(offlineDataManagementService.getOption());
+    }
+}

+ 112 - 0
kgraph-admin/src/main/java/com/kgraph/web/domain/OfflineDataAnalysis.java

@@ -0,0 +1,112 @@
+package com.kgraph.web.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.kgraph.common.annotation.Excel;
+import com.kgraph.common.core.domain.BaseEntity;;
+
+/**
+ * 离线数据分析对象 t_offline_data_analysis
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+public class OfflineDataAnalysis extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 数据管理 */
+    @Excel(name = "数据管理")
+    private Long dataId;
+
+    /** 机号 */
+    @Excel(name = "机号")
+    private String airNumber;
+
+    /** 飞行时长 */
+    @Excel(name = "飞行时长")
+    private String flightDuration;
+
+    /** 分析类型 */
+    @Excel(name = "分析类型")
+    private String type;
+
+    /** 分析结果 */
+    @Excel(name = "分析结果")
+    private String resultPath;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDataId(Long dataId) 
+    {
+        this.dataId = dataId;
+    }
+
+    public Long getDataId() 
+    {
+        return dataId;
+    }
+    public void setAirNumber(String airNumber) 
+    {
+        this.airNumber = airNumber;
+    }
+
+    public String getAirNumber() 
+    {
+        return airNumber;
+    }
+    public void setFlightDuration(String flightDuration) 
+    {
+        this.flightDuration = flightDuration;
+    }
+
+    public String getFlightDuration() 
+    {
+        return flightDuration;
+    }
+    public void setType(String type) 
+    {
+        this.type = type;
+    }
+
+    public String getType() 
+    {
+        return type;
+    }
+    public void setResultPath(String resultPath) 
+    {
+        this.resultPath = resultPath;
+    }
+
+    public String getResultPath() 
+    {
+        return resultPath;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("dataId", getDataId())
+            .append("airNumber", getAirNumber())
+            .append("flightDuration", getFlightDuration())
+            .append("type", getType())
+            .append("resultPath", getResultPath())
+            .append("remark", getRemark())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 98 - 0
kgraph-admin/src/main/java/com/kgraph/web/domain/OfflineDataManagement.java

@@ -0,0 +1,98 @@
+package com.kgraph.web.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.kgraph.common.annotation.Excel;
+import com.kgraph.common.core.domain.BaseEntity;;
+
+/**
+ * 离线数据管理对象 t_offline_data_management
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+public class OfflineDataManagement extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 数据名称 */
+    @Excel(name = "数据名称")
+    private String name;
+
+    /** 机号 */
+    @Excel(name = "机号")
+    private String airNumber;
+
+    /** 飞行时长 */
+    @Excel(name = "飞行时长")
+    private String flightDuration;
+
+    /** 飞行数据 */
+    @Excel(name = "飞行数据")
+    private String dataPath;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setAirNumber(String airNumber) 
+    {
+        this.airNumber = airNumber;
+    }
+
+    public String getAirNumber() 
+    {
+        return airNumber;
+    }
+    public void setFlightDuration(String flightDuration) 
+    {
+        this.flightDuration = flightDuration;
+    }
+
+    public String getFlightDuration() 
+    {
+        return flightDuration;
+    }
+    public void setDataPath(String dataPath) 
+    {
+        this.dataPath = dataPath;
+    }
+
+    public String getDataPath() 
+    {
+        return dataPath;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("airNumber", getAirNumber())
+            .append("flightDuration", getFlightDuration())
+            .append("dataPath", getDataPath())
+            .append("remark", getRemark())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 61 - 0
kgraph-admin/src/main/java/com/kgraph/web/mapper/OfflineDataAnalysisMapper.java

@@ -0,0 +1,61 @@
+package com.kgraph.web.mapper;
+
+import java.util.List;
+import com.kgraph.web.domain.OfflineDataAnalysis;
+
+/**
+ * 离线数据分析Mapper接口
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+public interface OfflineDataAnalysisMapper 
+{
+    /**
+     * 查询离线数据分析
+     * 
+     * @param id 离线数据分析主键
+     * @return 离线数据分析
+     */
+    public OfflineDataAnalysis selectOfflineDataAnalysisById(Long id);
+
+    /**
+     * 查询离线数据分析列表
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 离线数据分析集合
+     */
+    public List<OfflineDataAnalysis> selectOfflineDataAnalysisList(OfflineDataAnalysis offlineDataAnalysis);
+
+    /**
+     * 新增离线数据分析
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 结果
+     */
+    public int insertOfflineDataAnalysis(OfflineDataAnalysis offlineDataAnalysis);
+
+    /**
+     * 修改离线数据分析
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 结果
+     */
+    public int updateOfflineDataAnalysis(OfflineDataAnalysis offlineDataAnalysis);
+
+    /**
+     * 删除离线数据分析
+     * 
+     * @param id 离线数据分析主键
+     * @return 结果
+     */
+    public int deleteOfflineDataAnalysisById(Long id);
+
+    /**
+     * 批量删除离线数据分析
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteOfflineDataAnalysisByIds(Long[] ids);
+}

+ 63 - 0
kgraph-admin/src/main/java/com/kgraph/web/mapper/OfflineDataManagementMapper.java

@@ -0,0 +1,63 @@
+package com.kgraph.web.mapper;
+
+import java.util.List;
+import com.kgraph.web.domain.OfflineDataManagement;
+
+/**
+ * 离线数据管理Mapper接口
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+public interface OfflineDataManagementMapper 
+{
+    /**
+     * 查询离线数据管理
+     * 
+     * @param id 离线数据管理主键
+     * @return 离线数据管理
+     */
+    public OfflineDataManagement selectOfflineDataManagementById(Long id);
+
+    /**
+     * 查询离线数据管理列表
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 离线数据管理集合
+     */
+    public List<OfflineDataManagement> selectOfflineDataManagementList(OfflineDataManagement offlineDataManagement);
+
+    /**
+     * 新增离线数据管理
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 结果
+     */
+    public int insertOfflineDataManagement(OfflineDataManagement offlineDataManagement);
+
+    /**
+     * 修改离线数据管理
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 结果
+     */
+    public int updateOfflineDataManagement(OfflineDataManagement offlineDataManagement);
+
+    /**
+     * 删除离线数据管理
+     * 
+     * @param id 离线数据管理主键
+     * @return 结果
+     */
+    public int deleteOfflineDataManagementById(Long id);
+
+    /**
+     * 批量删除离线数据管理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteOfflineDataManagementByIds(Long[] ids);
+
+    List getOption();
+}

+ 61 - 0
kgraph-admin/src/main/java/com/kgraph/web/service/IOfflineDataAnalysisService.java

@@ -0,0 +1,61 @@
+package com.kgraph.web.service;
+
+import java.util.List;
+import com.kgraph.web.domain.OfflineDataAnalysis;
+
+/**
+ * 离线数据分析Service接口
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+public interface IOfflineDataAnalysisService 
+{
+    /**
+     * 查询离线数据分析
+     * 
+     * @param id 离线数据分析主键
+     * @return 离线数据分析
+     */
+    public OfflineDataAnalysis selectOfflineDataAnalysisById(Long id);
+
+    /**
+     * 查询离线数据分析列表
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 离线数据分析集合
+     */
+    public List<OfflineDataAnalysis> selectOfflineDataAnalysisList(OfflineDataAnalysis offlineDataAnalysis);
+
+    /**
+     * 新增离线数据分析
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 结果
+     */
+    public int insertOfflineDataAnalysis(OfflineDataAnalysis offlineDataAnalysis);
+
+    /**
+     * 修改离线数据分析
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 结果
+     */
+    public int updateOfflineDataAnalysis(OfflineDataAnalysis offlineDataAnalysis);
+
+    /**
+     * 批量删除离线数据分析
+     * 
+     * @param ids 需要删除的离线数据分析主键集合
+     * @return 结果
+     */
+    public int deleteOfflineDataAnalysisByIds(Long[] ids);
+
+    /**
+     * 删除离线数据分析信息
+     * 
+     * @param id 离线数据分析主键
+     * @return 结果
+     */
+    public int deleteOfflineDataAnalysisById(Long id);
+}

+ 63 - 0
kgraph-admin/src/main/java/com/kgraph/web/service/IOfflineDataManagementService.java

@@ -0,0 +1,63 @@
+package com.kgraph.web.service;
+
+import java.util.List;
+import com.kgraph.web.domain.OfflineDataManagement;
+
+/**
+ * 离线数据管理Service接口
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+public interface IOfflineDataManagementService 
+{
+    /**
+     * 查询离线数据管理
+     * 
+     * @param id 离线数据管理主键
+     * @return 离线数据管理
+     */
+    public OfflineDataManagement selectOfflineDataManagementById(Long id);
+
+    /**
+     * 查询离线数据管理列表
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 离线数据管理集合
+     */
+    public List<OfflineDataManagement> selectOfflineDataManagementList(OfflineDataManagement offlineDataManagement);
+
+    /**
+     * 新增离线数据管理
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 结果
+     */
+    public int insertOfflineDataManagement(OfflineDataManagement offlineDataManagement);
+
+    /**
+     * 修改离线数据管理
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 结果
+     */
+    public int updateOfflineDataManagement(OfflineDataManagement offlineDataManagement);
+
+    /**
+     * 批量删除离线数据管理
+     * 
+     * @param ids 需要删除的离线数据管理主键集合
+     * @return 结果
+     */
+    public int deleteOfflineDataManagementByIds(Long[] ids);
+
+    /**
+     * 删除离线数据管理信息
+     * 
+     * @param id 离线数据管理主键
+     * @return 结果
+     */
+    public int deleteOfflineDataManagementById(Long id);
+
+    List getOption();
+}

+ 96 - 0
kgraph-admin/src/main/java/com/kgraph/web/service/impl/OfflineDataAnalysisServiceImpl.java

@@ -0,0 +1,96 @@
+package com.kgraph.web.service.impl;
+
+import java.util.List;
+import com.kgraph.common.utils.DateUtils;;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.kgraph.web.mapper.OfflineDataAnalysisMapper;
+import com.kgraph.web.domain.OfflineDataAnalysis;
+import com.kgraph.web.service.IOfflineDataAnalysisService;
+
+/**
+ * 离线数据分析Service业务层处理
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+@Service
+public class OfflineDataAnalysisServiceImpl implements IOfflineDataAnalysisService 
+{
+    @Autowired
+    private OfflineDataAnalysisMapper offlineDataAnalysisMapper;
+
+    /**
+     * 查询离线数据分析
+     * 
+     * @param id 离线数据分析主键
+     * @return 离线数据分析
+     */
+    @Override
+    public OfflineDataAnalysis selectOfflineDataAnalysisById(Long id)
+    {
+        return offlineDataAnalysisMapper.selectOfflineDataAnalysisById(id);
+    }
+
+    /**
+     * 查询离线数据分析列表
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 离线数据分析
+     */
+    @Override
+    public List<OfflineDataAnalysis> selectOfflineDataAnalysisList(OfflineDataAnalysis offlineDataAnalysis)
+    {
+        return offlineDataAnalysisMapper.selectOfflineDataAnalysisList(offlineDataAnalysis);
+    }
+
+    /**
+     * 新增离线数据分析
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 结果
+     */
+    @Override
+    public int insertOfflineDataAnalysis(OfflineDataAnalysis offlineDataAnalysis)
+    {
+        offlineDataAnalysis.setCreateTime(DateUtils.getNowDate());
+        return offlineDataAnalysisMapper.insertOfflineDataAnalysis(offlineDataAnalysis);
+    }
+
+    /**
+     * 修改离线数据分析
+     * 
+     * @param offlineDataAnalysis 离线数据分析
+     * @return 结果
+     */
+    @Override
+    public int updateOfflineDataAnalysis(OfflineDataAnalysis offlineDataAnalysis)
+    {
+        offlineDataAnalysis.setUpdateTime(DateUtils.getNowDate());
+        return offlineDataAnalysisMapper.updateOfflineDataAnalysis(offlineDataAnalysis);
+    }
+
+    /**
+     * 批量删除离线数据分析
+     * 
+     * @param ids 需要删除的离线数据分析主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOfflineDataAnalysisByIds(Long[] ids)
+    {
+        return offlineDataAnalysisMapper.deleteOfflineDataAnalysisByIds(ids);
+    }
+
+    /**
+     * 删除离线数据分析信息
+     * 
+     * @param id 离线数据分析主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOfflineDataAnalysisById(Long id)
+    {
+        return offlineDataAnalysisMapper.deleteOfflineDataAnalysisById(id);
+    }
+}

+ 101 - 0
kgraph-admin/src/main/java/com/kgraph/web/service/impl/OfflineDataManagementServiceImpl.java

@@ -0,0 +1,101 @@
+package com.kgraph.web.service.impl;
+
+import java.util.List;
+import com.kgraph.common.utils.DateUtils;;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.kgraph.web.mapper.OfflineDataManagementMapper;
+import com.kgraph.web.domain.OfflineDataManagement;
+import com.kgraph.web.service.IOfflineDataManagementService;
+
+/**
+ * 离线数据管理Service业务层处理
+ * 
+ * @author Allen
+ * @date 2023-05-06
+ */
+@Service
+public class OfflineDataManagementServiceImpl implements IOfflineDataManagementService 
+{
+    @Autowired
+    private OfflineDataManagementMapper offlineDataManagementMapper;
+
+    /**
+     * 查询离线数据管理
+     * 
+     * @param id 离线数据管理主键
+     * @return 离线数据管理
+     */
+    @Override
+    public OfflineDataManagement selectOfflineDataManagementById(Long id)
+    {
+        return offlineDataManagementMapper.selectOfflineDataManagementById(id);
+    }
+
+    /**
+     * 查询离线数据管理列表
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 离线数据管理
+     */
+    @Override
+    public List<OfflineDataManagement> selectOfflineDataManagementList(OfflineDataManagement offlineDataManagement)
+    {
+        return offlineDataManagementMapper.selectOfflineDataManagementList(offlineDataManagement);
+    }
+
+    /**
+     * 新增离线数据管理
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 结果
+     */
+    @Override
+    public int insertOfflineDataManagement(OfflineDataManagement offlineDataManagement)
+    {
+        offlineDataManagement.setCreateTime(DateUtils.getNowDate());
+        return offlineDataManagementMapper.insertOfflineDataManagement(offlineDataManagement);
+    }
+
+    /**
+     * 修改离线数据管理
+     * 
+     * @param offlineDataManagement 离线数据管理
+     * @return 结果
+     */
+    @Override
+    public int updateOfflineDataManagement(OfflineDataManagement offlineDataManagement)
+    {
+        offlineDataManagement.setUpdateTime(DateUtils.getNowDate());
+        return offlineDataManagementMapper.updateOfflineDataManagement(offlineDataManagement);
+    }
+
+    /**
+     * 批量删除离线数据管理
+     * 
+     * @param ids 需要删除的离线数据管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOfflineDataManagementByIds(Long[] ids)
+    {
+        return offlineDataManagementMapper.deleteOfflineDataManagementByIds(ids);
+    }
+
+    /**
+     * 删除离线数据管理信息
+     * 
+     * @param id 离线数据管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOfflineDataManagementById(Long id)
+    {
+        return offlineDataManagementMapper.deleteOfflineDataManagementById(id);
+    }
+
+    @Override
+    public List getOption() {
+        return offlineDataManagementMapper.getOption();
+    }
+}

+ 110 - 0
kgraph-admin/src/main/resources/mapper/showInfo/OfflineDataAnalysisMapper.xml

@@ -0,0 +1,110 @@
+<?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.kgraph.web.mapper.OfflineDataAnalysisMapper">
+    
+    <resultMap type="OfflineDataAnalysis" id="OfflineDataAnalysisResult">
+        <result property="id"    column="id"    />
+        <result property="dataId"    column="data_id"    />
+        <result property="airNumber"    column="air_number"    />
+        <result property="flightDuration"    column="flight_duration"    />
+        <result property="type"    column="type"    />
+        <result property="resultPath"    column="result_path"    />
+        <result property="remark"    column="remark"    />
+        <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="selectOfflineDataAnalysisVo">
+        SELECT
+            oda.id,
+            oda.data_id,
+            odm.air_number,
+            odm.flight_duration,
+            oda.type,
+            oda.result_path,
+            oda.remark,
+            oda.create_by,
+            oda.create_time,
+            oda.update_by,
+            oda.update_time
+        FROM
+            t_offline_data_analysis oda
+            LEFT JOIN t_offline_data_management odm ON oda.data_id = odm.id
+    </sql>
+
+    <select id="selectOfflineDataAnalysisList" parameterType="OfflineDataAnalysis" resultMap="OfflineDataAnalysisResult">
+        <include refid="selectOfflineDataAnalysisVo"/>
+        <where>  
+            <if test="dataId != null "> and data_id = #{dataId}</if>
+            <if test="airNumber != null  and airNumber != ''"> and air_number = #{airNumber}</if>
+            <if test="flightDuration != null  and flightDuration != ''"> and flight_duration = #{flightDuration}</if>
+            <if test="type != null  and type != ''"> and type = #{type}</if>
+            <if test="resultPath != null  and resultPath != ''"> and result_path = #{resultPath}</if>
+        </where>
+    </select>
+    
+    <select id="selectOfflineDataAnalysisById" parameterType="Long" resultMap="OfflineDataAnalysisResult">
+        <include refid="selectOfflineDataAnalysisVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertOfflineDataAnalysis" parameterType="OfflineDataAnalysis" useGeneratedKeys="true" keyProperty="id">
+        insert into t_offline_data_analysis
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dataId != null">data_id,</if>
+            <if test="airNumber != null">air_number,</if>
+            <if test="flightDuration != null">flight_duration,</if>
+            <if test="type != null">type,</if>
+            <if test="resultPath != null">result_path,</if>
+            <if test="remark != null">remark,</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="dataId != null">#{dataId},</if>
+            <if test="airNumber != null">#{airNumber},</if>
+            <if test="flightDuration != null">#{flightDuration},</if>
+            <if test="type != null">#{type},</if>
+            <if test="resultPath != null">#{resultPath},</if>
+            <if test="remark != null">#{remark},</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="updateOfflineDataAnalysis" parameterType="OfflineDataAnalysis">
+        update t_offline_data_analysis
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="dataId != null">data_id = #{dataId},</if>
+            <if test="airNumber != null">air_number = #{airNumber},</if>
+            <if test="flightDuration != null">flight_duration = #{flightDuration},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="resultPath != null">result_path = #{resultPath},</if>
+            <if test="remark != null">remark = #{remark},</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="deleteOfflineDataAnalysisById" parameterType="Long">
+        delete from t_offline_data_analysis where id = #{id}
+    </delete>
+
+    <delete id="deleteOfflineDataAnalysisByIds" parameterType="String">
+        delete from t_offline_data_analysis where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 94 - 0
kgraph-admin/src/main/resources/mapper/showInfo/OfflineDataManagementMapper.xml

@@ -0,0 +1,94 @@
+<?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.kgraph.web.mapper.OfflineDataManagementMapper">
+    
+    <resultMap type="OfflineDataManagement" id="OfflineDataManagementResult">
+        <result property="id"    column="id"    />
+        <result property="name"    column="name"    />
+        <result property="airNumber"    column="air_number"    />
+        <result property="flightDuration"    column="flight_duration"    />
+        <result property="dataPath"    column="data_path"    />
+        <result property="remark"    column="remark"    />
+        <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="selectOfflineDataManagementVo">
+        select id, name, air_number, flight_duration, data_path, remark, create_by, create_time, update_by, update_time from t_offline_data_management
+    </sql>
+
+    <select id="selectOfflineDataManagementList" parameterType="OfflineDataManagement" resultMap="OfflineDataManagementResult">
+        <include refid="selectOfflineDataManagementVo"/>
+        <where>  
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="airNumber != null  and airNumber != ''"> and air_number = #{airNumber}</if>
+            <if test="flightDuration != null  and flightDuration != ''"> and flight_duration = #{flightDuration}</if>
+            <if test="dataPath != null  and dataPath != ''"> and data_path = #{dataPath}</if>
+        </where>
+    </select>
+    
+    <select id="selectOfflineDataManagementById" parameterType="Long" resultMap="OfflineDataManagementResult">
+        <include refid="selectOfflineDataManagementVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertOfflineDataManagement" parameterType="OfflineDataManagement" useGeneratedKeys="true" keyProperty="id">
+        insert into t_offline_data_management
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="name != null">name,</if>
+            <if test="airNumber != null">air_number,</if>
+            <if test="flightDuration != null">flight_duration,</if>
+            <if test="dataPath != null">data_path,</if>
+            <if test="remark != null">remark,</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="name != null">#{name},</if>
+            <if test="airNumber != null">#{airNumber},</if>
+            <if test="flightDuration != null">#{flightDuration},</if>
+            <if test="dataPath != null">#{dataPath},</if>
+            <if test="remark != null">#{remark},</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="updateOfflineDataManagement" parameterType="OfflineDataManagement">
+        update t_offline_data_management
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="airNumber != null">air_number = #{airNumber},</if>
+            <if test="flightDuration != null">flight_duration = #{flightDuration},</if>
+            <if test="dataPath != null">data_path = #{dataPath},</if>
+            <if test="remark != null">remark = #{remark},</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="deleteOfflineDataManagementById" parameterType="Long">
+        delete from t_offline_data_management where id = #{id}
+    </delete>
+
+    <delete id="deleteOfflineDataManagementByIds" parameterType="String">
+        delete from t_offline_data_management where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <select id="getOption" resultType="Map">
+        select id, name from t_offline_data_management
+    </select>
+</mapper>

+ 84 - 1
sql/system.sql

@@ -1961,4 +1961,87 @@ ADD COLUMN `name` varchar(64) NULL COMMENT '系统名称' AFTER `id`;
 ALTER TABLE `kgraph2`.`t_air_subsystem_info`
 ADD COLUMN `name` varchar(64) NULL COMMENT '分系统名称' AFTER `id`;
 ALTER TABLE `kgraph2`.`t_air_part_info`
-ADD COLUMN `name` varchar(64) NULL COMMENT '分系统名称' AFTER `id`;
+ADD COLUMN `name` varchar(64) NULL COMMENT '分系统名称' AFTER `id`;
+
+-- 离线数据管理
+DROP TABLE
+IF
+	EXISTS t_offline_data_management;
+CREATE TABLE t_offline_data_management (
+	id BIGINT ( 20 ) NOT NULL auto_increment COMMENT '序号',
+	name VARCHAR ( 64 )  COMMENT '数据名称',
+	air_number VARCHAR ( 64 )  COMMENT '机号',
+	flight_duration VARCHAR ( 64 )  COMMENT '飞行时长',
+	data_path VARCHAR ( 256 ) COMMENT '飞行数据',
+	remark VARCHAR ( 256 ) COMMENT '备注',
+	create_by VARCHAR ( 64 ) DEFAULT '' COMMENT '创建者',
+	create_time datetime COMMENT '创建时间',
+	update_by VARCHAR ( 64 ) DEFAULT '' COMMENT '更新者',
+	update_time datetime COMMENT '更新时间',
+PRIMARY KEY ( id )
+) ENGINE = INNODB auto_increment = 1 COMMENT = '离线数据管理';
+
+-- 离线数据分析
+DROP TABLE
+IF
+	EXISTS t_offline_data_analysis;
+CREATE TABLE t_offline_data_analysis (
+	id BIGINT ( 20 ) NOT NULL auto_increment COMMENT '序号',
+	data_id BIGINT ( 20 ) COMMENT '数据管理',
+	air_number VARCHAR ( 0 )  COMMENT '机号',
+	flight_duration VARCHAR ( 0 )  COMMENT '飞行时长',
+	type VARCHAR ( 64 )  COMMENT '分析类型',
+	result_path VARCHAR ( 256 ) COMMENT '分析结果',
+	remark VARCHAR ( 256 ) COMMENT '备注',
+	create_by VARCHAR ( 64 ) DEFAULT '' COMMENT '创建者',
+	create_time datetime COMMENT '创建时间',
+	update_by VARCHAR ( 64 ) DEFAULT '' COMMENT '更新者',
+	update_time datetime COMMENT '更新时间',
+PRIMARY KEY ( id )
+) ENGINE = INNODB auto_increment = 1 COMMENT = '离线数据分析';
+
+-- 菜单 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('离线数据管理', '2056', '3', 'management', 'showInfo/management/index', 1, 0, 'C', '0', '0', 'showInfo:management:list', 'table', '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', 'showInfo:management: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', 'showInfo:management: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', 'showInfo:management: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', 'showInfo:management: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', 'showInfo:management:export',       '#', 'admin', sysdate(), '', null, '');
+
+-- 菜单 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('离线数据分析', '2056', '4', 'analysis', 'showInfo/analysis/index', 1, 0, 'C', '0', '0', 'showInfo:analysis:list', 'tool', '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', 'showInfo:analysis: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', 'showInfo:analysis: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', 'showInfo:analysis: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', 'showInfo:analysis: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', 'showInfo:analysis:export',       '#', 'admin', sysdate(), '', null, '');

+ 82 - 0
sql/update20230506.sql

@@ -0,0 +1,82 @@
+-- 离线数据管理
+DROP TABLE
+IF
+	EXISTS t_offline_data_management;
+CREATE TABLE t_offline_data_management (
+	id BIGINT ( 20 ) NOT NULL auto_increment COMMENT '序号',
+	name VARCHAR ( 64 )  COMMENT '数据名称',
+	air_number VARCHAR ( 64 )  COMMENT '机号',
+	flight_duration VARCHAR ( 64 )  COMMENT '飞行时长',
+	data_path VARCHAR ( 256 ) COMMENT '飞行数据',
+	remark VARCHAR ( 256 ) COMMENT '备注',
+	create_by VARCHAR ( 64 ) DEFAULT '' COMMENT '创建者',
+	create_time datetime COMMENT '创建时间',
+	update_by VARCHAR ( 64 ) DEFAULT '' COMMENT '更新者',
+	update_time datetime COMMENT '更新时间',
+PRIMARY KEY ( id )
+) ENGINE = INNODB auto_increment = 1 COMMENT = '离线数据管理';
+
+-- 离线数据分析
+DROP TABLE
+IF
+	EXISTS t_offline_data_analysis;
+CREATE TABLE t_offline_data_analysis (
+	id BIGINT ( 20 ) NOT NULL auto_increment COMMENT '序号',
+	data_id BIGINT ( 20 ) COMMENT '数据管理',
+	air_number VARCHAR ( 0 )  COMMENT '机号',
+	flight_duration VARCHAR ( 0 )  COMMENT '飞行时长',
+	type VARCHAR ( 64 )  COMMENT '分析类型',
+	result_path VARCHAR ( 256 ) COMMENT '分析结果',
+	remark VARCHAR ( 256 ) COMMENT '备注',
+	create_by VARCHAR ( 64 ) DEFAULT '' COMMENT '创建者',
+	create_time datetime COMMENT '创建时间',
+	update_by VARCHAR ( 64 ) DEFAULT '' COMMENT '更新者',
+	update_time datetime COMMENT '更新时间',
+PRIMARY KEY ( id )
+) ENGINE = INNODB auto_increment = 1 COMMENT = '离线数据分析';
+
+-- 菜单 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('离线数据管理', '2056', '3', 'management', 'showInfo/management/index', 1, 0, 'C', '0', '0', 'showInfo:management:list', 'table', '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', 'showInfo:management: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', 'showInfo:management: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', 'showInfo:management: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', 'showInfo:management: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', 'showInfo:management:export',       '#', 'admin', sysdate(), '', null, '');
+
+-- 菜单 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('离线数据分析', '2056', '4', 'analysis', 'showInfo/analysis/index', 1, 0, 'C', '0', '0', 'showInfo:analysis:list', 'tool', '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', 'showInfo:analysis: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', 'showInfo:analysis: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', 'showInfo:analysis: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', 'showInfo:analysis: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', 'showInfo:analysis:export',       '#', 'admin', sysdate(), '', null, '');