Browse Source

feat: 飞行任务/飞行任务分解

wanggaokun 11 tháng trước cách đây
mục cha
commit
aee0456ff7
36 tập tin đã thay đổi với 2004 bổ sung113 xóa
  1. 1 1
      als-modules/agile-assurance/pom.xml
  2. 26 26
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/AircraftController.java
  3. 144 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FlightSplitTaskController.java
  4. 144 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FlightTaskController.java
  5. 83 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FlightSplitTask.java
  6. 74 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FlightTask.java
  7. 30 12
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/Model.java
  8. 73 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FlightSplitTaskBo.java
  9. 73 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FlightTaskBo.java
  10. 2 2
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AircraftImportVo.java
  11. 10 5
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AircraftVo.java
  12. 88 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightSplitTaskImportVo.java
  13. 110 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightSplitTaskVo.java
  14. 77 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightTaskImportVo.java
  15. 99 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightTaskVo.java
  16. 45 28
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/ModelImportVo.java
  17. 1 1
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/ProductImportVo.java
  18. 14 14
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/AircraftImportListener.java
  19. 1 1
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/AlsFaultCaseImportListener.java
  20. 3 3
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/DataImportImportListener.java
  21. 132 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FlightSplitTaskImportListener.java
  22. 132 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FlightTaskImportListener.java
  23. 3 3
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/MaintenanceRecordImportListener.java
  24. 9 9
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/ModelImportListener.java
  25. 3 3
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/ProductImportListener.java
  26. 1 1
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/SortieImportListener.java
  27. 1 1
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/TechnicalDocImportListener.java
  28. 3 3
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/WarningImportListener.java
  29. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FlightSplitTaskMapper.java
  30. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FlightTaskMapper.java
  31. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFlightSplitTaskService.java
  32. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFlightTaskService.java
  33. 190 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FlightSplitTaskServiceImpl.java
  34. 192 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FlightTaskServiceImpl.java
  35. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/FlightSplitTaskMapper.xml
  36. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/FlightTaskMapper.xml

+ 1 - 1
als-modules/agile-assurance/pom.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>

+ 26 - 26
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AircraftController.java

@@ -39,7 +39,7 @@ import java.util.List;
 @Validated
 @RequiredArgsConstructor
 @RestController
-@RequestMapping("/als/aircraft" )
+@RequestMapping("/als/aircraft")
 public class AircraftController extends BaseController {
     @Resource
     private IAircraftService aircraftService;
@@ -47,8 +47,8 @@ public class AircraftController extends BaseController {
     /**
      * 查询机型机号列表
      */
-    @SaCheckPermission("als:aircraft:list" )
-    @GetMapping("/list" )
+    @SaCheckPermission("als:aircraft:list")
+    @GetMapping("/list")
     public CommonResult<List<AircraftVo>> list(AircraftBo aircraftBo) {
         List<AircraftVo> list = aircraftService.selectList(aircraftBo);
         return CommonResult.success(list);
@@ -57,28 +57,28 @@ public class AircraftController extends BaseController {
     /**
      * 导出机型机号列表
      */
-    @SaCheckPermission("als:aircraft:export" )
-    @Log(title = "机型机号" , businessType = BusinessType.EXPORT)
-    @PostMapping("/export" )
-    public CommonResult<Void> export(HttpServletResponse response, AircraftBo aircraftBo) {
+    @SaCheckPermission("als:aircraft:export")
+    @Log(title = "机型机号", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public CommonResult<Void> export(AircraftBo aircraftBo) {
         LoginUser loginUser = LoginHelper.getLoginUser();
         List<AircraftVo> list = aircraftService.selectList(aircraftBo);
-        aircraftService.asyncExport(list, "机型机号" , loginUser);
+        aircraftService.asyncExport(list, "机型机号", loginUser);
         return CommonResult.success();
     }
 
-    @SaCheckPermission("als:aircraft:import" )
-    @PostMapping("/importTemplate" )
+    @SaCheckPermission("als:aircraft:import")
+    @PostMapping("/importTemplate")
     public void importTemplate(HttpServletResponse response) {
-        ExcelUtil.exportExcel(new ArrayList<>(), "机型机号" , AircraftImportVo.class, response);
+        ExcelUtil.exportExcel(new ArrayList<>(), "机型机号", AircraftImportVo.class, response);
     }
 
     /**
      * 导入机型机号列表
      */
-    @Log(title = "机型机号" , businessType = BusinessType.IMPORT)
-    @SaCheckPermission("als:aircraft:import" )
-    @PostMapping("/importData" )
+    @Log(title = "机型机号", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:aircraft:import")
+    @PostMapping("/importData")
     public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
         LoginUser loginUser = LoginHelper.getLoginUser();
         aircraftService.asyncImportData(file, updateSupport, loginUser);
@@ -88,8 +88,8 @@ public class AircraftController extends BaseController {
     /**
      * 获取机型机号详细信息
      */
-    @SaCheckPermission("als:aircraft:query" )
-    @GetMapping(value = "/{id}" )
+    @SaCheckPermission("als:aircraft:query")
+    @GetMapping(value = "/{id}")
     public CommonResult<AircraftVo> getInfo(@PathVariable Long id) {
         return CommonResult.success(aircraftService.selectById(id));
     }
@@ -97,14 +97,14 @@ public class AircraftController extends BaseController {
     /**
      * 新增机型机号
      */
-    @SaCheckPermission("als:aircraft:add" )
-    @Log(title = "机型机号" , businessType = BusinessType.INSERT)
+    @SaCheckPermission("als:aircraft:add")
+    @Log(title = "机型机号", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping
     public CommonResult<Void> add(@Validated @RequestBody AircraftBo aircraftBo) {
         boolean inserted = aircraftService.insert(aircraftBo);
         if (!inserted) {
-            return CommonResult.fail("新增机型机号记录失败!" );
+            return CommonResult.fail("新增机型机号记录失败!");
         }
         return CommonResult.success();
     }
@@ -112,14 +112,14 @@ public class AircraftController extends BaseController {
     /**
      * 修改机型机号
      */
-    @SaCheckPermission("als:aircraft:edit" )
-    @Log(title = "机型机号" , businessType = BusinessType.UPDATE)
+    @SaCheckPermission("als:aircraft:edit")
+    @Log(title = "机型机号", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping
     public CommonResult<Void> edit(@Validated @RequestBody AircraftBo aircraftBo) {
         boolean updated = aircraftService.update(aircraftBo);
         if (!updated) {
-            return CommonResult.fail("修改机型机号记录失败!" );
+            return CommonResult.fail("修改机型机号记录失败!");
         }
         return CommonResult.success();
     }
@@ -127,13 +127,13 @@ public class AircraftController extends BaseController {
     /**
      * 删除机型机号
      */
-    @SaCheckPermission("als:aircraft:remove" )
-    @Log(title = "机型机号" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}" )
+    @SaCheckPermission("als:aircraft:remove")
+    @Log(title = "机型机号", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
     public CommonResult<Void> remove(@PathVariable Long[] ids) {
         boolean deleted = aircraftService.deleteByIds(ids);
         if (!deleted) {
-            return CommonResult.fail("删除机型机号记录失败!" );
+            return CommonResult.fail("删除机型机号记录失败!");
         }
         return CommonResult.success();
     }

+ 144 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FlightSplitTaskController.java

@@ -0,0 +1,144 @@
+package org.eco.als.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.collection.CollUtil;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.eco.als.domain.bo.FlightSplitTaskBo;
+import org.eco.als.domain.vo.FlightSplitTaskImportVo;
+import org.eco.als.domain.vo.FlightSplitTaskVo;
+import org.eco.als.service.IFlightSplitTaskService;
+import org.eco.common.core.core.domain.CommonResult;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.excel.utils.ExcelUtil;
+import org.eco.common.log.annotation.Log;
+import org.eco.common.log.enums.BusinessType;
+import org.eco.common.security.utils.LoginHelper;
+import org.eco.common.web.annotation.RepeatSubmit;
+import org.eco.common.web.core.BaseController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 飞行分解任务Controller
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/als/flightSplitTask")
+public class FlightSplitTaskController extends BaseController {
+    @Resource
+    private IFlightSplitTaskService flightSplitTaskService;
+
+    /**
+     * 查询飞行分解任务列表
+     */
+    @SaCheckPermission("als:flightSplitTask:list")
+    @GetMapping("/list")
+    public CommonResult<PageResult<FlightSplitTaskVo>> list(FlightSplitTaskBo flightSplitTaskBo) {
+        return CommonResult.success(flightSplitTaskService.selectPage(flightSplitTaskBo));
+    }
+
+    /**
+     * 导出飞行分解任务列表
+     */
+    @SaCheckPermission("als:flightSplitTask:export")
+    @Log(title = "飞行分解任务", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public CommonResult<Void> export(FlightSplitTaskBo flightSplitTaskBo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<FlightSplitTaskVo> list = flightSplitTaskService.selectList(flightSplitTaskBo);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+        flightSplitTaskService.asyncExport(list, "飞行分解任务", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("als:flightSplitTask:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "飞行分解任务", FlightSplitTaskImportVo.class, response);
+    }
+
+    /**
+     * 导入飞行分解任务列表
+     */
+    @Log(title = "飞行分解任务", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:flightSplitTask:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        flightSplitTaskService.asyncImportData(file, updateSupport, loginUser);
+        return CommonResult.success();
+    }
+
+    /**
+     * 获取飞行分解任务详细信息
+     */
+    @SaCheckPermission("als:flightSplitTask:query")
+    @GetMapping(value = "/{id}")
+    public CommonResult<FlightSplitTaskVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(flightSplitTaskService.selectById(id));
+    }
+
+    /**
+     * 新增飞行分解任务
+     */
+    @SaCheckPermission("als:flightSplitTask:add")
+    @Log(title = "飞行分解任务", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping
+    public CommonResult<Void> add(@Validated @RequestBody FlightSplitTaskBo flightSplitTaskBo) {
+        boolean inserted = flightSplitTaskService.insert(flightSplitTaskBo);
+        if (!inserted) {
+            return CommonResult.fail("新增飞行分解任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 修改飞行分解任务
+     */
+    @SaCheckPermission("als:flightSplitTask:edit")
+    @Log(title = "飞行分解任务", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping
+    public CommonResult<Void> edit(@Validated @RequestBody FlightSplitTaskBo flightSplitTaskBo) {
+        boolean updated = flightSplitTaskService.update(flightSplitTaskBo);
+        if (!updated) {
+            return CommonResult.fail("修改飞行分解任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 删除飞行分解任务
+     */
+    @SaCheckPermission("als:flightSplitTask:remove")
+    @Log(title = "飞行分解任务", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public CommonResult<Void> remove(@PathVariable Long[] ids) {
+        boolean deleted = flightSplitTaskService.deleteByIds(ids);
+        if (!deleted) {
+            return CommonResult.fail("删除飞行分解任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+}

+ 144 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FlightTaskController.java

@@ -0,0 +1,144 @@
+package org.eco.als.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.collection.CollUtil;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.eco.als.domain.bo.FlightTaskBo;
+import org.eco.als.domain.vo.FlightTaskImportVo;
+import org.eco.als.domain.vo.FlightTaskVo;
+import org.eco.als.service.IFlightTaskService;
+import org.eco.common.core.core.domain.CommonResult;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.excel.utils.ExcelUtil;
+import org.eco.common.log.annotation.Log;
+import org.eco.common.log.enums.BusinessType;
+import org.eco.common.security.utils.LoginHelper;
+import org.eco.common.web.annotation.RepeatSubmit;
+import org.eco.common.web.core.BaseController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 飞行任务Controller
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/als/flightTask")
+public class FlightTaskController extends BaseController {
+    @Resource
+    private IFlightTaskService flightTaskService;
+
+    /**
+     * 查询飞行任务列表
+     */
+    @SaCheckPermission("als:flightTask:list")
+    @GetMapping("/list")
+    public CommonResult<PageResult<FlightTaskVo>> list(FlightTaskBo flightTaskBo) {
+        return CommonResult.success(flightTaskService.selectPage(flightTaskBo));
+    }
+
+    /**
+     * 导出飞行任务列表
+     */
+    @SaCheckPermission("als:flightTask:export")
+    @Log(title = "飞行任务", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public CommonResult<Void> export(FlightTaskBo flightTaskBo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<FlightTaskVo> list = flightTaskService.selectList(flightTaskBo);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+        flightTaskService.asyncExport(list, "飞行任务", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("als:flightTask:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "飞行任务", FlightTaskImportVo.class, response);
+    }
+
+    /**
+     * 导入飞行任务列表
+     */
+    @Log(title = "飞行任务", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:flightTask:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        flightTaskService.asyncImportData(file, updateSupport, loginUser);
+        return CommonResult.success();
+    }
+
+    /**
+     * 获取飞行任务详细信息
+     */
+    @SaCheckPermission("als:flightTask:query")
+    @GetMapping(value = "/{id}")
+    public CommonResult<FlightTaskVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(flightTaskService.selectById(id));
+    }
+
+    /**
+     * 新增飞行任务
+     */
+    @SaCheckPermission("als:flightTask:add")
+    @Log(title = "飞行任务", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping
+    public CommonResult<Void> add(@Validated @RequestBody FlightTaskBo flightTaskBo) {
+        boolean inserted = flightTaskService.insert(flightTaskBo);
+        if (!inserted) {
+            return CommonResult.fail("新增飞行任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 修改飞行任务
+     */
+    @SaCheckPermission("als:flightTask:edit")
+    @Log(title = "飞行任务", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping
+    public CommonResult<Void> edit(@Validated @RequestBody FlightTaskBo flightTaskBo) {
+        boolean updated = flightTaskService.update(flightTaskBo);
+        if (!updated) {
+            return CommonResult.fail("修改飞行任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 删除飞行任务
+     */
+    @SaCheckPermission("als:flightTask:remove")
+    @Log(title = "飞行任务", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public CommonResult<Void> remove(@PathVariable Long[] ids) {
+        boolean deleted = flightTaskService.deleteByIds(ids);
+        if (!deleted) {
+            return CommonResult.fail("删除飞行任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+}

+ 83 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FlightSplitTask.java

@@ -0,0 +1,83 @@
+package org.eco.als.domain;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+
+/**
+ * 飞行分解任务对象 als_flight_split_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_flight_split_task_t")
+public class FlightSplitTask extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 飞行编号
+     */
+    private Long flightId;
+
+    /**
+     * 机型
+     */
+    private String aircraftModel;
+
+    /**
+     * 机组
+     */
+    private String aircraftGroup;
+
+    /**
+     * 时长
+     */
+    private String duration;
+
+    /**
+     * 设备
+     */
+    private String device;
+
+    /**
+     * 数量
+     */
+    private Integer deviceCount;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 74 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FlightTask.java

@@ -0,0 +1,74 @@
+package org.eco.als.domain;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.util.Date;
+
+/**
+ * 飞行任务对象 als_flight_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_flight_task_t")
+public class FlightTask extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 架次号
+     */
+    private Long sortieNo;
+
+    /**
+     * 机型
+     */
+    private String aircraftModel;
+
+    /**
+     * 机号
+     */
+    private String aircraftNo;
+
+    /**
+     * 起飞时间
+     */
+    private Date startTime;
+
+    /**
+     * 降落时间
+     */
+    private String endTime;
+
+    /**
+     * 飞行课目
+     */
+    private String trainExercise;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 30 - 12
als-modules/agile-assurance/src/main/java/org/eco/als/domain/Model.java

@@ -5,9 +5,9 @@ import com.mybatisflex.annotation.Id;
 import com.mybatisflex.annotation.Table;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.eco.common.orm.core.domain.BaseEntity;
 
 import java.io.Serial;
-import org.eco.common.orm.core.domain.BaseEntity;
 
 /**
  * 模型信息对象 als_model_t
@@ -19,35 +19,53 @@ import org.eco.common.orm.core.domain.BaseEntity;
 @EqualsAndHashCode(callSuper = true)
 @Table(value = "als_model_t")
 public class Model extends BaseEntity {
-@Serial
-private static final long serialVersionUID = 1L;
+    @Serial
+    private static final long serialVersionUID = 1L;
 
-    /** 编号 */
+    /**
+     * 编号
+     */
     @Id
     private Long id;
 
-    /** 模型名称 */
+    /**
+     * 模型名称
+     */
     private String name;
 
-    /** 模型类型 */
+    /**
+     * 模型类型
+     */
     private String type;
 
-    /** 模型链接 */
+    /**
+     * 模型链接
+     */
     private String url;
 
-    /** 参数 */
+    /**
+     * 参数
+     */
     private String param;
 
-    /** 数据列 */
+    /**
+     * 数据列
+     */
     private String columnData;
 
-    /** 状态 */
+    /**
+     * 状态
+     */
     private String status;
 
-    /** 备注 */
+    /**
+     * 备注
+     */
     private String remark;
 
-    /** 删除标识(1删除 0未删除) */
+    /**
+     * 删除标识(1删除 0未删除)
+     */
     @Column(isLogicDelete = true)
     private Integer delFlag;
 

+ 73 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FlightSplitTaskBo.java

@@ -0,0 +1,73 @@
+package org.eco.als.domain.bo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.als.domain.FlightSplitTask;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 飞行分解任务业务对象 als_flight_split_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FlightSplitTask.class, reverseConvertGenerate = false)
+public class FlightSplitTaskBo extends BaseEntity {
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 飞行编号
+     */
+    private Long flightId;
+
+    /**
+     * 机型
+     */
+    @NotBlank(message = "机型不能为空")
+    private String aircraftModel;
+
+    /**
+     * 机组
+     */
+    @NotBlank(message = "机组不能为空")
+    private String aircraftGroup;
+
+    /**
+     * 时长
+     */
+    @NotBlank(message = "时长不能为空")
+    private String duration;
+
+    /**
+     * 设备
+     */
+    @NotBlank(message = "设备不能为空")
+    private String device;
+
+    /**
+     * 数量
+     */
+    @NotNull(message = "数量不能为空")
+    private Integer deviceCount;
+
+    /**
+     * 单位
+     */
+    @NotBlank(message = "单位不能为空")
+    private String unit;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 73 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FlightTaskBo.java

@@ -0,0 +1,73 @@
+package org.eco.als.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.als.domain.FlightTask;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 飞行任务业务对象 als_flight_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FlightTask.class, reverseConvertGenerate = false)
+public class FlightTaskBo extends BaseEntity {
+    /**
+     * 编号
+     */
+    @NotNull(message = "编号不能为空")
+    private Long id;
+
+    /**
+     * 架次号
+     */
+    @NotNull(message = "架次号不能为空")
+    private Long sortieNo;
+
+    /**
+     * 机型
+     */
+    @NotBlank(message = "机型不能为空")
+    private String aircraftModel;
+
+    /**
+     * 机号
+     */
+    @NotBlank(message = "机号不能为空")
+    private String aircraftNo;
+
+    /**
+     * 起飞时间
+     */
+    @NotNull(message = "起飞时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    /**
+     * 降落时间
+     */
+    @NotBlank(message = "降落时间不能为空")
+    private String endTime;
+
+    /**
+     * 飞行课目
+     */
+    @NotBlank(message = "飞行课目不能为空")
+    private String trainExercise;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+
+}

+ 2 - 2
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AircraftImportVo.java

@@ -33,13 +33,13 @@ public class AircraftImportVo implements Serializable {
     /**
      * 机型
      */
-    @ExcelProperty(value = "上级名称" )
+    @ExcelProperty(value = "上级名称")
     private String parentName;
 
     /**
      * 机型/机号
      */
-    @ExcelProperty(value = "机型/机号" )
+    @ExcelProperty(value = "机型/机号")
     private String name;
 
     /**

+ 10 - 5
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AircraftVo.java

@@ -1,16 +1,17 @@
 package org.eco.als.domain.vo;
 
-import com.eco.common.mapper.annotation.FieldMapper;
-import org.eco.als.domain.Aircraft;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.eco.common.mapper.annotation.FieldMapper;
 import com.eco.common.mapper.constant.MapperConstant;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.eco.als.domain.Aircraft;
+import org.eco.common.orm.core.domain.TreeEntity;
+
 import java.io.Serial;
 import java.io.Serializable;
-import org.eco.common.orm.core.domain.TreeEntity;
 
 /**
  * 机型机号视图对象 als_aircraft_t
@@ -27,10 +28,14 @@ public class AircraftVo extends TreeEntity implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    /** 编号 */
+    /**
+     * 编号
+     */
     private Long id;
 
-    /** 机型/机号 */
+    /**
+     * 机型/机号
+     */
     @ExcelProperty(value = "机型/机号")
     private String name;
 

+ 88 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightSplitTaskImportVo.java

@@ -0,0 +1,88 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 飞行分解任务导入视图对象 als_flight_split_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FlightSplitTaskImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 飞行编号
+     */
+    @ExcelProperty(value = "飞行编号")
+    private Long flightId;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 机组
+     */
+    @ExcelProperty(value = "机组")
+    private String aircraftGroup;
+
+    /**
+     * 时长
+     */
+    @ExcelProperty(value = "时长")
+    private String duration;
+
+    /**
+     * 设备
+     */
+    @ExcelProperty(value = "设备")
+    private String device;
+
+    /**
+     * 数量
+     */
+    @ExcelProperty(value = "数量")
+    private Integer deviceCount;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unit;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态(1正常)")
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+}

+ 110 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightSplitTaskVo.java

@@ -0,0 +1,110 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.eco.common.mapper.annotation.FieldMapper;
+import com.eco.common.mapper.constant.MapperConstant;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.als.domain.FlightSplitTask;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 飞行分解任务视图对象 als_flight_split_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FlightSplitTask.class)
+public class FlightSplitTaskVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 飞行编号
+     */
+    @ExcelProperty(value = "飞行编号")
+    private Long flightId;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 机组
+     */
+    @ExcelProperty(value = "机组")
+    private String aircraftGroup;
+
+    /**
+     * 时长
+     */
+    @ExcelProperty(value = "时长")
+    private String duration;
+
+    /**
+     * 设备
+     */
+    @ExcelProperty(value = "设备")
+    private String device;
+
+    /**
+     * 数量
+     */
+    @ExcelProperty(value = "数量")
+    private Integer deviceCount;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unit;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态(1正常)")
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "createBy")
+    private String createByName;
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "updateBy")
+    private String updateByName;
+
+}

+ 77 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightTaskImportVo.java

@@ -0,0 +1,77 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 飞行任务导入视图对象 als_flight_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FlightTaskImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 架次号
+     */
+    @ExcelProperty(value = "架次号")
+    private Long sortieNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 起飞时间
+     */
+    @ExcelProperty(value = "起飞时间")
+    private Date startTime;
+
+    /**
+     * 降落时间
+     */
+    @ExcelProperty(value = "降落时间")
+    private String endTime;
+
+    /**
+     * 飞行课目
+     */
+    @ExcelProperty(value = "飞行课目")
+    private String trainExercise;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+}

+ 99 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FlightTaskVo.java

@@ -0,0 +1,99 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.eco.common.mapper.annotation.FieldMapper;
+import com.eco.common.mapper.constant.MapperConstant;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.als.domain.FlightTask;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 飞行任务视图对象 als_flight_task_t
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FlightTask.class)
+public class FlightTaskVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 架次号
+     */
+    @ExcelProperty(value = "架次号")
+    private Long sortieNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 起飞时间
+     */
+    @ExcelProperty(value = "起飞时间")
+    private Date startTime;
+
+    /**
+     * 降落时间
+     */
+    @ExcelProperty(value = "降落时间")
+    private String endTime;
+
+    /**
+     * 飞行课目
+     */
+    @ExcelProperty(value = "飞行课目")
+    private String trainExercise;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "createBy")
+    private String createByName;
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "updateBy")
+    private String updateByName;
+
+}

+ 45 - 28
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/ModelImportVo.java

@@ -2,12 +2,13 @@ package org.eco.als.domain.vo;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import org.eco.common.excel.annotation.ExcelDictFormat;
 import org.eco.common.excel.convert.ExcelDictConvert;
-import lombok.Data;
+
 import java.io.Serial;
 import java.io.Serializable;
-import lombok.NoArgsConstructor;
 
 /**
  * 模型信息导入视图对象 als_model_t
@@ -25,39 +26,55 @@ public class ModelImportVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
 
-                /** 模型名称 */
-                    @ExcelProperty(value = "模型名称")
-                private String name;
+    /**
+     * 模型名称
+     */
+    @ExcelProperty(value = "模型名称")
+    private String name;
 
-                /** 模型类型 */
-                    @ExcelProperty(value = "模型类型", converter = ExcelDictConvert.class)
-                    @ExcelDictFormat(dictType = "sys_app_type")
-                private String type;
+    /**
+     * 模型类型
+     */
+    @ExcelProperty(value = "模型类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_app_type")
+    private String type;
 
-                /** 模型链接 */
-                    @ExcelProperty(value = "模型链接")
-                private String url;
+    /**
+     * 模型链接
+     */
+    @ExcelProperty(value = "模型链接")
+    private String url;
 
-                /** 参数 */
-                    @ExcelProperty(value = "参数")
-                private String param;
+    /**
+     * 参数
+     */
+    @ExcelProperty(value = "参数")
+    private String param;
 
-                /** 数据列 */
-                    @ExcelProperty(value = "数据列")
-                private String columnData;
+    /**
+     * 数据列
+     */
+    @ExcelProperty(value = "数据列")
+    private String columnData;
 
-                /** 状态 */
-                    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
-                    @ExcelDictFormat(dictType = "sys_common_status")
-                private String status;
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "sys_common_status")
+    private String status;
 
-                /** 备注 */
-                    @ExcelProperty(value = "备注")
-                    private String remark;
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
 
-                /** 删除标识(1删除 0未删除) */
-                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
-                    private Integer delFlag;
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
 
 
 }

+ 1 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/ProductImportVo.java

@@ -36,7 +36,7 @@ public class ProductImportVo implements Serializable {
     /**
      * 机型
      */
-    @ExcelProperty(value = "上级名称" )
+    @ExcelProperty(value = "上级名称")
     private String parentName;
 
     /**

+ 14 - 14
als-modules/agile-assurance/src/main/java/org/eco/als/listener/AircraftImportListener.java

@@ -46,8 +46,8 @@ public class AircraftImportListener extends AnalysisEventListener<AircraftImport
         try {
             AircraftBo aircraftBo = BeanUtil.toBean(aircraftVo, AircraftBo.class);
             QueryWrapper queryWrapper = QueryWrapper.create();
-            queryWrapper.where("name = ?" , aircraftBo.getName());
-            queryWrapper.and("parent_name = ?" , aircraftBo.getParentName());
+            queryWrapper.where("name = ?", aircraftBo.getName());
+            queryWrapper.and("parent_name = ?", aircraftBo.getParentName());
             queryWrapper.or("(name = ?", aircraftBo.getName()).and("parent_id = ?)", 0);
             AircraftVo aircraftVo1 = aircraftService.getOneAs(queryWrapper, AircraftVo.class);
             AircraftVo pAircraftVo = aircraftService.selectByName(aircraftBo.getParentName());
@@ -60,10 +60,10 @@ public class AircraftImportListener extends AnalysisEventListener<AircraftImport
                 boolean inserted = aircraftService.insert(aircraftBo);//树表需要前台传来主键值
                 if (inserted) {
                     successNum++;
-                    successMsg.append("<br/>" ).append(successNum).append("、机型机号 记录导入成功" );
+                    successMsg.append("<br/>").append(successNum).append("、机型机号 记录导入成功");
                 } else {
                     failureNum++;
-                    failureMsg.append("<br/>" ).append(failureNum).append("、机型机号 记录导入失败" );
+                    failureMsg.append("<br/>").append(failureNum).append("、机型机号 记录导入失败");
                 }
             } else if (isUpdateSupport) {
                 //存在就更新
@@ -72,15 +72,15 @@ public class AircraftImportListener extends AnalysisEventListener<AircraftImport
                 boolean updated = aircraftService.update(aircraftBo);
                 if (updated) {
                     successNum++;
-                    successMsg.append("<br/>" ).append(successNum).append("、机型机号 记录更新成功" );
+                    successMsg.append("<br/>").append(successNum).append("、机型机号 记录更新成功");
                 } else {
                     failureNum++;
-                    failureMsg.append("<br/>" ).append(failureNum).append("、机型机号 记录更新失败" );
+                    failureMsg.append("<br/>").append(failureNum).append("、机型机号 记录更新失败");
                 }
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、机型机号 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、机型机号 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }
@@ -95,7 +95,7 @@ public class AircraftImportListener extends AnalysisEventListener<AircraftImport
 
     @Override
     public void doAfterAllAnalysed(AnalysisContext context) {
-        log.info("解析完成" );
+        log.info("解析完成");
     }
 
     @Override
@@ -105,14 +105,14 @@ public class AircraftImportListener extends AnalysisEventListener<AircraftImport
             @Override
             public ExcelResultRes getAnalysis() {
                 if (failureNum > 0 && successNum == 0) {
-                    failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:" );
-                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("0" ).build();
+                    failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("0").build();
                 } else if (failureNum > 0 && successNum > 0) {
-                    failureMsg.insert(0, "很抱歉,部分导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:" );
-                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("2" ).build();
+                    failureMsg.insert(0, "很抱歉,部分导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("2").build();
                 } else {
-                    successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:" );
-                    return ExcelResultRes.builder().logInfo(successMsg.toString()).status("1" ).build();
+                    successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+                    return ExcelResultRes.builder().logInfo(successMsg.toString()).status("1").build();
                 }
             }
 

+ 1 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/listener/AlsFaultCaseImportListener.java

@@ -82,7 +82,7 @@ public class AlsFaultCaseImportListener extends AnalysisEventListener<AlsFaultCa
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、故障案例 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、故障案例 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 3 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/listener/DataImportImportListener.java

@@ -29,10 +29,10 @@ public class DataImportImportListener extends AnalysisEventListener<DataImportIm
 
     private final Boolean isUpdateSupport;
     private final LoginUser loginUser;
-    private int successNum = 0;
-    private int failureNum = 0;
     private final StringBuilder successMsg = new StringBuilder();
     private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
 
     public DataImportImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
         this.dataImportService = SpringUtils.getBean(IDataImportService.class);
@@ -76,7 +76,7 @@ public class DataImportImportListener extends AnalysisEventListener<DataImportIm
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、数据导入信息 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、数据导入信息 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 132 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FlightSplitTaskImportListener.java

@@ -0,0 +1,132 @@
+package org.eco.als.listener;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.als.domain.bo.FlightSplitTaskBo;
+import org.eco.als.domain.vo.FlightSplitTaskImportVo;
+import org.eco.als.domain.vo.FlightSplitTaskVo;
+import org.eco.als.service.IFlightSplitTaskService;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.utils.SpringUtils;
+import org.eco.common.core.utils.ValidatorUtils;
+import org.eco.common.excel.core.ExcelListener;
+import org.eco.common.excel.core.ExcelResult;
+import org.eco.common.excel.entity.ExcelResultRes;
+
+import java.util.List;
+
+/**
+ * 飞行分解任务自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FlightSplitTaskImportListener extends AnalysisEventListener<FlightSplitTaskImportVo> implements ExcelListener<FlightSplitTaskImportVo> {
+    private final IFlightSplitTaskService flightSplitTaskService;
+
+    private final Boolean isUpdateSupport;
+    private final LoginUser loginUser;
+    private final StringBuilder successMsg = new StringBuilder();
+    private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
+
+    public FlightSplitTaskImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.flightSplitTaskService = SpringUtils.getBean(IFlightSplitTaskService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FlightSplitTaskImportVo flightSplitTaskVo, AnalysisContext context) {
+        try {
+
+            FlightSplitTaskBo flightSplitTaskBo = BeanUtil.toBean(flightSplitTaskVo, FlightSplitTaskBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FlightSplitTaskVo flightSplitTaskVo1 = null;
+
+            //flightSplitTaskVo1 = flightSplitTaskService.selectBySomefield(flightSplitTaskVo.getSomefield());
+            if (ObjectUtil.isNull(flightSplitTaskVo1)) {
+                //不存在就新增
+                setBo(flightSplitTaskBo);
+                ValidatorUtils.validate(flightSplitTaskBo);
+                boolean inserted = flightSplitTaskService.insert(flightSplitTaskBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、飞行分解任务 记录导入成功");
+                    return;
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、飞行分解任务 记录导入失败");
+                    return;
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                flightSplitTaskBo.setId(flightSplitTaskVo1.getId());//主键
+                flightSplitTaskBo.setVersion(flightSplitTaskVo1.getVersion());
+                boolean updated = flightSplitTaskService.update(flightSplitTaskBo);
+                if (updated) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、飞行分解任务 记录更新成功");
+                    return;
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、飞行分解任务 记录更新失败");
+                    return;
+                }
+            }
+        } catch (Exception e) {
+            failureNum++;
+            String msg = "<br/>" + failureNum + "、飞行分解任务 记录导入失败:";
+            failureMsg.append(msg).append(e.getMessage());
+            log.error(msg, e);
+        }
+    }
+
+    private void setBo(FlightSplitTaskBo flightSplitTaskBo) {
+        flightSplitTaskBo.setVersion(0);
+        flightSplitTaskBo.setCreateBy(loginUser.getUserId());
+        flightSplitTaskBo.setUpdateBy(loginUser.getUserId());
+        flightSplitTaskBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FlightSplitTaskImportVo> getExcelResult() {
+        return new ExcelResult<>() {
+
+            @Override
+            public ExcelResultRes getAnalysis() {
+                if (failureNum > 0 && successNum == 0) {
+                    failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("0").build();
+                } else if (failureNum > 0 && successNum > 0) {
+                    failureMsg.insert(0, "很抱歉,部分导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("2").build();
+                } else {
+                    successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+                    return ExcelResultRes.builder().logInfo(successMsg.toString()).status("1").build();
+                }
+            }
+
+            @Override
+            public List<FlightSplitTaskImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 132 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FlightTaskImportListener.java

@@ -0,0 +1,132 @@
+package org.eco.als.listener;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.als.domain.bo.FlightTaskBo;
+import org.eco.als.domain.vo.FlightTaskImportVo;
+import org.eco.als.domain.vo.FlightTaskVo;
+import org.eco.als.service.IFlightTaskService;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.utils.SpringUtils;
+import org.eco.common.core.utils.ValidatorUtils;
+import org.eco.common.excel.core.ExcelListener;
+import org.eco.common.excel.core.ExcelResult;
+import org.eco.common.excel.entity.ExcelResultRes;
+
+import java.util.List;
+
+/**
+ * 飞行任务自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FlightTaskImportListener extends AnalysisEventListener<FlightTaskImportVo> implements ExcelListener<FlightTaskImportVo> {
+    private final IFlightTaskService flightTaskService;
+
+    private final Boolean isUpdateSupport;
+    private final LoginUser loginUser;
+    private final StringBuilder successMsg = new StringBuilder();
+    private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
+
+    public FlightTaskImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.flightTaskService = SpringUtils.getBean(IFlightTaskService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FlightTaskImportVo flightTaskVo, AnalysisContext context) {
+        try {
+
+            FlightTaskBo flightTaskBo = BeanUtil.toBean(flightTaskVo, FlightTaskBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FlightTaskVo flightTaskVo1 = null;
+
+            //flightTaskVo1 = flightTaskService.selectBySomefield(flightTaskVo.getSomefield());
+            if (ObjectUtil.isNull(flightTaskVo1)) {
+                //不存在就新增
+                setBo(flightTaskBo);
+                ValidatorUtils.validate(flightTaskBo);
+                boolean inserted = flightTaskService.insert(flightTaskBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、飞行任务 记录导入成功");
+                    return;
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、飞行任务 记录导入失败");
+                    return;
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                flightTaskBo.setId(flightTaskVo1.getId());//主键
+                flightTaskBo.setVersion(flightTaskVo1.getVersion());
+                boolean updated = flightTaskService.update(flightTaskBo);
+                if (updated) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、飞行任务 记录更新成功");
+                    return;
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、飞行任务 记录更新失败");
+                    return;
+                }
+            }
+        } catch (Exception e) {
+            failureNum++;
+            String msg = "<br/>" + failureNum + "、飞行任务 记录导入失败:";
+            failureMsg.append(msg).append(e.getMessage());
+            log.error(msg, e);
+        }
+    }
+
+    private void setBo(FlightTaskBo flightTaskBo) {
+        flightTaskBo.setVersion(0);
+        flightTaskBo.setCreateBy(loginUser.getUserId());
+        flightTaskBo.setUpdateBy(loginUser.getUserId());
+        flightTaskBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FlightTaskImportVo> getExcelResult() {
+        return new ExcelResult<>() {
+
+            @Override
+            public ExcelResultRes getAnalysis() {
+                if (failureNum > 0 && successNum == 0) {
+                    failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("0").build();
+                } else if (failureNum > 0 && successNum > 0) {
+                    failureMsg.insert(0, "很抱歉,部分导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("2").build();
+                } else {
+                    successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+                    return ExcelResultRes.builder().logInfo(successMsg.toString()).status("1").build();
+                }
+            }
+
+            @Override
+            public List<FlightTaskImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 3 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/listener/MaintenanceRecordImportListener.java

@@ -29,10 +29,10 @@ public class MaintenanceRecordImportListener extends AnalysisEventListener<Maint
 
     private final Boolean isUpdateSupport;
     private final LoginUser loginUser;
-    private int successNum = 0;
-    private int failureNum = 0;
     private final StringBuilder successMsg = new StringBuilder();
     private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
 
     public MaintenanceRecordImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
         this.maintenanceRecordService = SpringUtils.getBean(IMaintenanceRecordService.class);
@@ -81,7 +81,7 @@ public class MaintenanceRecordImportListener extends AnalysisEventListener<Maint
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、维修记录 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、维修记录 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 9 - 9
als-modules/agile-assurance/src/main/java/org/eco/als/listener/ModelImportListener.java

@@ -4,18 +4,17 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
-import org.eco.common.core.exception.BusinessException;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.als.domain.bo.ModelBo;
+import org.eco.als.domain.vo.ModelImportVo;
+import org.eco.als.domain.vo.ModelVo;
+import org.eco.als.service.IModelService;
+import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.common.core.utils.SpringUtils;
 import org.eco.common.core.utils.ValidatorUtils;
 import org.eco.common.excel.core.ExcelListener;
 import org.eco.common.excel.core.ExcelResult;
 import org.eco.common.excel.entity.ExcelResultRes;
-import org.eco.common.core.core.domain.model.LoginUser;
-import org.eco.als.domain.bo.ModelBo;
-import org.eco.als.domain.vo.ModelImportVo;
-import org.eco.als.domain.vo.ModelVo;
-import org.eco.als.service.IModelService;
-import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
 
@@ -30,10 +29,10 @@ public class ModelImportListener extends AnalysisEventListener<ModelImportVo> im
 
     private final Boolean isUpdateSupport;
     private final LoginUser loginUser;
-    private int successNum = 0;
-    private int failureNum = 0;
     private final StringBuilder successMsg = new StringBuilder();
     private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
 
     public ModelImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
         this.modelService = SpringUtils.getBean(IModelService.class);
@@ -88,6 +87,7 @@ public class ModelImportListener extends AnalysisEventListener<ModelImportVo> im
             log.error(msg, e);
         }
     }
+
     private void setBo(ModelBo modelBo) {
         modelBo.setVersion(0);
         modelBo.setCreateBy(loginUser.getUserId());

+ 3 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/listener/ProductImportListener.java

@@ -30,10 +30,10 @@ public class ProductImportListener extends AnalysisEventListener<ProductImportVo
 
     private final Boolean isUpdateSupport;
     private final LoginUser loginUser;
-    private int successNum = 0;
-    private int failureNum = 0;
     private final StringBuilder successMsg = new StringBuilder();
     private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
 
     public ProductImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
         this.productService = SpringUtils.getBean(IProductService.class);
@@ -80,7 +80,7 @@ public class ProductImportListener extends AnalysisEventListener<ProductImportVo
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、产品树 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、产品树 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 1 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/listener/SortieImportListener.java

@@ -82,7 +82,7 @@ public class SortieImportListener extends AnalysisEventListener<SortieImportVo>
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、架次 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、架次 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 1 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/listener/TechnicalDocImportListener.java

@@ -82,7 +82,7 @@ public class TechnicalDocImportListener extends AnalysisEventListener<TechnicalD
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、技术资料 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、技术资料 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 3 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/listener/WarningImportListener.java

@@ -29,10 +29,10 @@ public class WarningImportListener extends AnalysisEventListener<WarningImportVo
 
     private final Boolean isUpdateSupport;
     private final LoginUser loginUser;
-    private int successNum = 0;
-    private int failureNum = 0;
     private final StringBuilder successMsg = new StringBuilder();
     private final StringBuilder failureMsg = new StringBuilder();
+    private int successNum = 0;
+    private int failureNum = 0;
 
     public WarningImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
         this.warningService = SpringUtils.getBean(IWarningService.class);
@@ -76,7 +76,7 @@ public class WarningImportListener extends AnalysisEventListener<WarningImportVo
             }
         } catch (Exception e) {
             failureNum++;
-            String msg = "<br/>" + failureNum + "、警告信息 记录导入失败:" ;
+            String msg = "<br/>" + failureNum + "、警告信息 记录导入失败:";
             failureMsg.append(msg).append(e.getMessage());
             log.error(msg, e);
         }

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FlightSplitTaskMapper.java

@@ -0,0 +1,16 @@
+package org.eco.als.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.eco.als.domain.FlightSplitTask;
+
+/**
+ * 飞行分解任务Mapper接口
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Mapper
+public interface FlightSplitTaskMapper extends BaseMapper<FlightSplitTask> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FlightTaskMapper.java

@@ -0,0 +1,16 @@
+package org.eco.als.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.eco.als.domain.FlightTask;
+
+/**
+ * 飞行任务Mapper接口
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Mapper
+public interface FlightTaskMapper extends BaseMapper<FlightTask> {
+
+}

+ 97 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFlightSplitTaskService.java

@@ -0,0 +1,97 @@
+package org.eco.als.service;
+
+import org.eco.als.domain.FlightSplitTask;
+import org.eco.als.domain.bo.FlightSplitTaskBo;
+import org.eco.als.domain.vo.FlightSplitTaskVo;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 飞行分解任务Service接口
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+public interface IFlightSplitTaskService extends IBaseService<FlightSplitTask> {
+    /**
+     * 查询飞行分解任务
+     *
+     * @param id 飞行分解任务主键
+     * @return 飞行分解任务
+     */
+    FlightSplitTaskVo selectById(Long id);
+
+    /**
+     * 查询飞行分解任务列表
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 飞行分解任务集合
+     */
+    List<FlightSplitTaskVo> selectList(FlightSplitTaskBo flightSplitTaskBo);
+
+    /**
+     * 分页查询飞行分解任务列表
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 分页飞行分解任务集合
+     */
+    PageResult<FlightSplitTaskVo> selectPage(FlightSplitTaskBo flightSplitTaskBo);
+
+    /**
+     * 新增飞行分解任务
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FlightSplitTaskBo flightSplitTaskBo);
+
+    /**
+     * 新增飞行分解任务,前台提供主键值,一般用于导入的场合
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FlightSplitTaskBo flightSplitTaskBo);
+
+    /**
+     * 修改飞行分解任务
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FlightSplitTaskBo flightSplitTaskBo);
+
+    /**
+     * 批量删除飞行分解任务
+     *
+     * @param ids 需要删除的飞行分解任务主键集合
+     * @return 结果:true 删除成功,false 删除失败
+     */
+    boolean deleteByIds(Long[] ids);
+
+    /**
+     * 异步导入
+     *
+     * @param file          导入的文件
+     * @param updateSupport 是否覆盖
+     * @param user          用户上下文信息
+     */
+    @Async
+    void asyncImportData(MultipartFile file, boolean updateSupport, LoginUser user);
+
+    /**
+     * asyncExport 异步导出
+     *
+     * @param listVo    数据列表
+     * @param sheetName 文件名称
+     * @param user      上下文
+     */
+    @Async
+    void asyncExport(List<FlightSplitTaskVo> listVo, String sheetName, LoginUser user);
+
+}

+ 97 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFlightTaskService.java

@@ -0,0 +1,97 @@
+package org.eco.als.service;
+
+import org.eco.als.domain.FlightTask;
+import org.eco.als.domain.bo.FlightTaskBo;
+import org.eco.als.domain.vo.FlightTaskVo;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 飞行任务Service接口
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+public interface IFlightTaskService extends IBaseService<FlightTask> {
+    /**
+     * 查询飞行任务
+     *
+     * @param id 飞行任务主键
+     * @return 飞行任务
+     */
+    FlightTaskVo selectById(Long id);
+
+    /**
+     * 查询飞行任务列表
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 飞行任务集合
+     */
+    List<FlightTaskVo> selectList(FlightTaskBo flightTaskBo);
+
+    /**
+     * 分页查询飞行任务列表
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 分页飞行任务集合
+     */
+    PageResult<FlightTaskVo> selectPage(FlightTaskBo flightTaskBo);
+
+    /**
+     * 新增飞行任务
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FlightTaskBo flightTaskBo);
+
+    /**
+     * 新增飞行任务,前台提供主键值,一般用于导入的场合
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FlightTaskBo flightTaskBo);
+
+    /**
+     * 修改飞行任务
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FlightTaskBo flightTaskBo);
+
+    /**
+     * 批量删除飞行任务
+     *
+     * @param ids 需要删除的飞行任务主键集合
+     * @return 结果:true 删除成功,false 删除失败
+     */
+    boolean deleteByIds(Long[] ids);
+
+    /**
+     * 异步导入
+     *
+     * @param file          导入的文件
+     * @param updateSupport 是否覆盖
+     * @param user          用户上下文信息
+     */
+    @Async
+    void asyncImportData(MultipartFile file, boolean updateSupport, LoginUser user);
+
+    /**
+     * asyncExport 异步导出
+     *
+     * @param listVo    数据列表
+     * @param sheetName 文件名称
+     * @param user      上下文
+     */
+    @Async
+    void asyncExport(List<FlightTaskVo> listVo, String sheetName, LoginUser user);
+
+}

+ 190 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FlightSplitTaskServiceImpl.java

@@ -0,0 +1,190 @@
+package org.eco.als.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.als.domain.FlightSplitTask;
+import org.eco.als.domain.bo.FlightSplitTaskBo;
+import org.eco.als.domain.vo.FlightSplitTaskImportVo;
+import org.eco.als.domain.vo.FlightSplitTaskVo;
+import org.eco.als.listener.FlightSplitTaskImportListener;
+import org.eco.als.mapper.FlightSplitTaskMapper;
+import org.eco.als.service.IFlightSplitTaskService;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import org.eco.system.service.IImportExportService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.eco.als.domain.table.FlightSplitTaskTableDef.FLIGHT_SPLIT_TASK;
+
+/**
+ * 飞行分解任务Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Service
+@Slf4j
+public class FlightSplitTaskServiceImpl extends BaseServiceImpl<FlightSplitTaskMapper, FlightSplitTask> implements IFlightSplitTaskService {
+    @Resource
+    private FlightSplitTaskMapper flightSplitTaskMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FLIGHT_SPLIT_TASK);
+    }
+
+    private QueryWrapper buildQueryWrapper(FlightSplitTaskBo flightSplitTaskBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FLIGHT_SPLIT_TASK.AIRCRAFT_MODEL.eq
+            (flightSplitTaskBo.getAircraftModel()));
+        queryWrapper.and(FLIGHT_SPLIT_TASK.AIRCRAFT_GROUP.eq
+            (flightSplitTaskBo.getAircraftGroup()));
+        queryWrapper.and(FLIGHT_SPLIT_TASK.DURATION.eq
+            (flightSplitTaskBo.getDuration()));
+        queryWrapper.and(FLIGHT_SPLIT_TASK.DEVICE.eq
+            (flightSplitTaskBo.getDevice()));
+        queryWrapper.and(FLIGHT_SPLIT_TASK.DEVICE_COUNT.eq
+            (flightSplitTaskBo.getDeviceCount()));
+        queryWrapper.and(FLIGHT_SPLIT_TASK.UNIT.eq
+            (flightSplitTaskBo.getUnit()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询飞行分解任务
+     *
+     * @param id 飞行分解任务主键
+     * @return 飞行分解任务
+     */
+    @Override
+    public FlightSplitTaskVo selectById(Long id) {
+        return this.getOneAs(query().where(FLIGHT_SPLIT_TASK.ID.eq(id)), FlightSplitTaskVo.class);
+
+    }
+
+
+    /**
+     * 查询飞行分解任务列表
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 飞行分解任务集合
+     */
+    @Override
+    public List<FlightSplitTaskVo> selectList(FlightSplitTaskBo flightSplitTaskBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(flightSplitTaskBo);
+        return this.listAs(queryWrapper, FlightSplitTaskVo.class);
+    }
+
+    /**
+     * 分页查询飞行分解任务列表
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 分页飞行分解任务集合
+     */
+    @Override
+    public PageResult<FlightSplitTaskVo> selectPage(FlightSplitTaskBo flightSplitTaskBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(flightSplitTaskBo);
+        Page<FlightSplitTaskVo> page = this.pageAs(PageQuery.build(), queryWrapper, FlightSplitTaskVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增飞行分解任务
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FlightSplitTaskBo flightSplitTaskBo) {
+        FlightSplitTask flightSplitTask = MapstructUtils.convert(flightSplitTaskBo, FlightSplitTask.class);
+
+        return this.save(flightSplitTask);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增飞行分解任务,前台提供主键值,一般用于导入的场合
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FlightSplitTaskBo flightSplitTaskBo) {
+        FlightSplitTask flightSplitTask = MapstructUtils.convert(flightSplitTaskBo, FlightSplitTask.class);
+
+
+        return flightSplitTaskMapper.insertWithPk(flightSplitTask) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改飞行分解任务
+     *
+     * @param flightSplitTaskBo 飞行分解任务Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FlightSplitTaskBo flightSplitTaskBo) {
+        FlightSplitTask flightSplitTask = MapstructUtils.convert(flightSplitTaskBo, FlightSplitTask.class);
+        if (ObjectUtil.isNotNull(flightSplitTask) && ObjectUtil.isNotNull(flightSplitTask.getId())) {
+            return this.updateById(flightSplitTask);
+        }
+        return false;
+    }
+
+    @Override
+    public void asyncImportData(MultipartFile file, boolean updateSupport, LoginUser loginUser) {
+        ExcelResultRes result;
+        try {
+            String name = file.getOriginalFilename();
+            result = excelService.importExcel(file.getInputStream(), name, FlightSplitTaskImportVo.class, new FlightSplitTaskImportListener(updateSupport, loginUser));
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        boolean flag = importExportService.saveInfo(result, loginUser, "0");
+        if (flag) {
+            log.info("异步导入日志写入成功");
+        }
+    }
+
+    @Override
+    public void asyncExport(List<FlightSplitTaskVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FlightSplitTaskVo.class);
+        boolean flag = importExportService.saveInfo(result, loginUser, "1");
+        if (flag) {
+            log.info("异步导出日志写入成功");
+        }
+    }
+
+    /**
+     * 批量删除飞行分解任务
+     *
+     * @param ids 需要删除的飞行分解任务主键集合
+     * @return 结果:true 删除成功,false 删除失败
+     */
+    @Transactional
+    @Override
+    public boolean deleteByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+    }
+
+}

+ 192 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FlightTaskServiceImpl.java

@@ -0,0 +1,192 @@
+package org.eco.als.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.als.domain.FlightTask;
+import org.eco.als.domain.bo.FlightTaskBo;
+import org.eco.als.domain.vo.FlightTaskImportVo;
+import org.eco.als.domain.vo.FlightTaskVo;
+import org.eco.als.listener.FlightTaskImportListener;
+import org.eco.als.mapper.FlightTaskMapper;
+import org.eco.als.service.IFlightTaskService;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import org.eco.system.service.IImportExportService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.eco.als.domain.table.FlightTaskTableDef.FLIGHT_TASK;
+
+/**
+ * 飞行任务Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-07-24
+ */
+@Service
+@Slf4j
+public class FlightTaskServiceImpl extends BaseServiceImpl<FlightTaskMapper, FlightTask> implements IFlightTaskService {
+    @Resource
+    private FlightTaskMapper flightTaskMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FLIGHT_TASK);
+    }
+
+    private QueryWrapper buildQueryWrapper(FlightTaskBo flightTaskBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FLIGHT_TASK.SORTIE_NO.eq
+            (flightTaskBo.getSortieNo()));
+        queryWrapper.and(FLIGHT_TASK.AIRCRAFT_MODEL.eq
+            (flightTaskBo.getAircraftModel()));
+        queryWrapper.and(FLIGHT_TASK.AIRCRAFT_NO.eq
+            (flightTaskBo.getAircraftNo()));
+        queryWrapper.and(FLIGHT_TASK.START_TIME.eq
+            (flightTaskBo.getStartTime()));
+        queryWrapper.and(FLIGHT_TASK.END_TIME.eq
+            (flightTaskBo.getEndTime()));
+        queryWrapper.and(FLIGHT_TASK.TRAIN_EXERCISE.eq
+            (flightTaskBo.getTrainExercise()));
+        queryWrapper.and(FLIGHT_TASK.STATUS.eq
+            (flightTaskBo.getStatus()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询飞行任务
+     *
+     * @param id 飞行任务主键
+     * @return 飞行任务
+     */
+    @Override
+    public FlightTaskVo selectById(Long id) {
+        return this.getOneAs(query().where(FLIGHT_TASK.ID.eq(id)), FlightTaskVo.class);
+
+    }
+
+
+    /**
+     * 查询飞行任务列表
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 飞行任务集合
+     */
+    @Override
+    public List<FlightTaskVo> selectList(FlightTaskBo flightTaskBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(flightTaskBo);
+        return this.listAs(queryWrapper, FlightTaskVo.class);
+    }
+
+    /**
+     * 分页查询飞行任务列表
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 分页飞行任务集合
+     */
+    @Override
+    public PageResult<FlightTaskVo> selectPage(FlightTaskBo flightTaskBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(flightTaskBo);
+        Page<FlightTaskVo> page = this.pageAs(PageQuery.build(), queryWrapper, FlightTaskVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增飞行任务
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FlightTaskBo flightTaskBo) {
+        FlightTask flightTask = MapstructUtils.convert(flightTaskBo, FlightTask.class);
+
+        return this.save(flightTask);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增飞行任务,前台提供主键值,一般用于导入的场合
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FlightTaskBo flightTaskBo) {
+        FlightTask flightTask = MapstructUtils.convert(flightTaskBo, FlightTask.class);
+
+
+        return flightTaskMapper.insertWithPk(flightTask) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改飞行任务
+     *
+     * @param flightTaskBo 飞行任务Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FlightTaskBo flightTaskBo) {
+        FlightTask flightTask = MapstructUtils.convert(flightTaskBo, FlightTask.class);
+        if (ObjectUtil.isNotNull(flightTask) && ObjectUtil.isNotNull(flightTask.getId())) {
+            return this.updateById(flightTask);
+        }
+        return false;
+    }
+
+    @Override
+    public void asyncImportData(MultipartFile file, boolean updateSupport, LoginUser loginUser) {
+        ExcelResultRes result;
+        try {
+            String name = file.getOriginalFilename();
+            result = excelService.importExcel(file.getInputStream(), name, FlightTaskImportVo.class, new FlightTaskImportListener(updateSupport, loginUser));
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        boolean flag = importExportService.saveInfo(result, loginUser, "0");
+        if (flag) {
+            log.info("异步导入日志写入成功");
+        }
+    }
+
+    @Override
+    public void asyncExport(List<FlightTaskVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FlightTaskVo.class);
+        boolean flag = importExportService.saveInfo(result, loginUser, "1");
+        if (flag) {
+            log.info("异步导出日志写入成功");
+        }
+    }
+
+    /**
+     * 批量删除飞行任务
+     *
+     * @param ids 需要删除的飞行任务主键集合
+     * @return 结果:true 删除成功,false 删除失败
+     */
+    @Transactional
+    @Override
+    public boolean deleteByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+    }
+
+}

+ 7 - 0
als-modules/agile-assurance/src/main/resources/mapper/als/FlightSplitTaskMapper.xml

@@ -0,0 +1,7 @@
+<?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="org.eco.als.mapper.FlightSplitTaskMapper">
+
+</mapper>

+ 7 - 0
als-modules/agile-assurance/src/main/resources/mapper/als/FlightTaskMapper.xml

@@ -0,0 +1,7 @@
+<?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="org.eco.als.mapper.FlightTaskMapper">
+
+</mapper>