ソースを参照

feat: 定检/定检子表/定检记录

wanggaokun 11 ヶ月 前
コミット
1bbd325765
30 ファイル変更3148 行追加0 行削除
  1. 144 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/SmTaskController.java
  2. 144 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/SmTaskRecordController.java
  3. 144 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/SmTaskSubController.java
  4. 119 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/SmTask.java
  5. 84 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/SmTaskRecord.java
  6. 109 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/SmTaskSub.java
  7. 117 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/SmTaskBo.java
  8. 78 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/SmTaskRecordBo.java
  9. 105 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/SmTaskSubBo.java
  10. 134 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/SmTaskImportVo.java
  11. 92 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/SmTaskRecordImportVo.java
  12. 114 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/SmTaskRecordVo.java
  13. 122 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/SmTaskSubImportVo.java
  14. 144 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/SmTaskSubVo.java
  15. 156 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/SmTaskVo.java
  16. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/SmTaskImportListener.java
  17. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/SmTaskRecordImportListener.java
  18. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/SmTaskSubImportListener.java
  19. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/SmTaskMapper.java
  20. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/SmTaskRecordMapper.java
  21. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/SmTaskSubMapper.java
  22. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/ISmTaskRecordService.java
  23. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/ISmTaskService.java
  24. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/ISmTaskSubService.java
  25. 194 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/SmTaskRecordServiceImpl.java
  26. 200 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/SmTaskServiceImpl.java
  27. 204 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/SmTaskSubServiceImpl.java
  28. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/SmTaskMapper.xml
  29. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/SmTaskRecordMapper.xml
  30. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/SmTaskSubMapper.xml

+ 144 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/SmTaskController.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.SmTaskBo;
+import org.eco.als.domain.vo.SmTaskImportVo;
+import org.eco.als.domain.vo.SmTaskVo;
+import org.eco.als.service.ISmTaskService;
+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-25
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/als/smTask")
+public class SmTaskController extends BaseController {
+    @Resource
+    private ISmTaskService smTaskService;
+
+    /**
+     * 查询定检任务列表
+     */
+    @SaCheckPermission("als:smTask:list")
+    @GetMapping("/list")
+    public CommonResult<PageResult<SmTaskVo>> list(SmTaskBo smTaskBo) {
+        return CommonResult.success(smTaskService.selectPage(smTaskBo));
+    }
+
+    /**
+     * 导出定检任务列表
+     */
+    @SaCheckPermission("als:smTask:export")
+    @Log(title = "定检任务", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public CommonResult<Void> export(SmTaskBo smTaskBo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<SmTaskVo> list = smTaskService.selectList(smTaskBo);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+        smTaskService.asyncExport(list, "定检任务", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("als:smTask:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "定检任务", SmTaskImportVo.class, response);
+    }
+
+    /**
+     * 导入定检任务列表
+     */
+    @Log(title = "定检任务", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:smTask:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        smTaskService.asyncImportData(file, updateSupport, loginUser);
+        return CommonResult.success();
+    }
+
+    /**
+     * 获取定检任务详细信息
+     */
+    @SaCheckPermission("als:smTask:query")
+    @GetMapping(value = "/{id}")
+    public CommonResult<SmTaskVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(smTaskService.selectById(id));
+    }
+
+    /**
+     * 新增定检任务
+     */
+    @SaCheckPermission("als:smTask:add")
+    @Log(title = "定检任务", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping
+    public CommonResult<Void> add(@Validated @RequestBody SmTaskBo smTaskBo) {
+        boolean inserted = smTaskService.insert(smTaskBo);
+        if (!inserted) {
+            return CommonResult.fail("新增定检任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 修改定检任务
+     */
+    @SaCheckPermission("als:smTask:edit")
+    @Log(title = "定检任务", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping
+    public CommonResult<Void> edit(@Validated @RequestBody SmTaskBo smTaskBo) {
+        boolean updated = smTaskService.update(smTaskBo);
+        if (!updated) {
+            return CommonResult.fail("修改定检任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 删除定检任务
+     */
+    @SaCheckPermission("als:smTask:remove")
+    @Log(title = "定检任务", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public CommonResult<Void> remove(@PathVariable Long[] ids) {
+        boolean deleted = smTaskService.deleteByIds(ids);
+        if (!deleted) {
+            return CommonResult.fail("删除定检任务记录失败!");
+        }
+        return CommonResult.success();
+    }
+}

+ 144 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/SmTaskRecordController.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.SmTaskRecordBo;
+import org.eco.als.domain.vo.SmTaskRecordImportVo;
+import org.eco.als.domain.vo.SmTaskRecordVo;
+import org.eco.als.service.ISmTaskRecordService;
+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-25
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/als/smTaskRecord")
+public class SmTaskRecordController extends BaseController {
+    @Resource
+    private ISmTaskRecordService smTaskRecordService;
+
+    /**
+     * 查询定检任务记录列表
+     */
+    @SaCheckPermission("als:smTaskRecord:list")
+    @GetMapping("/list")
+    public CommonResult<PageResult<SmTaskRecordVo>> list(SmTaskRecordBo smTaskRecordBo) {
+        return CommonResult.success(smTaskRecordService.selectPage(smTaskRecordBo));
+    }
+
+    /**
+     * 导出定检任务记录列表
+     */
+    @SaCheckPermission("als:smTaskRecord:export")
+    @Log(title = "定检任务记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public CommonResult<Void> export(SmTaskRecordBo smTaskRecordBo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<SmTaskRecordVo> list = smTaskRecordService.selectList(smTaskRecordBo);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+        smTaskRecordService.asyncExport(list, "定检任务记录", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("als:smTaskRecord:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "定检任务记录", SmTaskRecordImportVo.class, response);
+    }
+
+    /**
+     * 导入定检任务记录列表
+     */
+    @Log(title = "定检任务记录", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:smTaskRecord:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        smTaskRecordService.asyncImportData(file, updateSupport, loginUser);
+        return CommonResult.success();
+    }
+
+    /**
+     * 获取定检任务记录详细信息
+     */
+    @SaCheckPermission("als:smTaskRecord:query")
+    @GetMapping(value = "/{id}")
+    public CommonResult<SmTaskRecordVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(smTaskRecordService.selectById(id));
+    }
+
+    /**
+     * 新增定检任务记录
+     */
+    @SaCheckPermission("als:smTaskRecord:add")
+    @Log(title = "定检任务记录", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping
+    public CommonResult<Void> add(@Validated @RequestBody SmTaskRecordBo smTaskRecordBo) {
+        boolean inserted = smTaskRecordService.insert(smTaskRecordBo);
+        if (!inserted) {
+            return CommonResult.fail("新增定检任务记录记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 修改定检任务记录
+     */
+    @SaCheckPermission("als:smTaskRecord:edit")
+    @Log(title = "定检任务记录", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping
+    public CommonResult<Void> edit(@Validated @RequestBody SmTaskRecordBo smTaskRecordBo) {
+        boolean updated = smTaskRecordService.update(smTaskRecordBo);
+        if (!updated) {
+            return CommonResult.fail("修改定检任务记录记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 删除定检任务记录
+     */
+    @SaCheckPermission("als:smTaskRecord:remove")
+    @Log(title = "定检任务记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public CommonResult<Void> remove(@PathVariable Long[] ids) {
+        boolean deleted = smTaskRecordService.deleteByIds(ids);
+        if (!deleted) {
+            return CommonResult.fail("删除定检任务记录记录失败!");
+        }
+        return CommonResult.success();
+    }
+}

+ 144 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/SmTaskSubController.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.SmTaskSubBo;
+import org.eco.als.domain.vo.SmTaskSubImportVo;
+import org.eco.als.domain.vo.SmTaskSubVo;
+import org.eco.als.service.ISmTaskSubService;
+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-25
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/als/smTaskSub")
+public class SmTaskSubController extends BaseController {
+    @Resource
+    private ISmTaskSubService smTaskSubService;
+
+    /**
+     * 查询定检任务子列表
+     */
+    @SaCheckPermission("als:smTaskSub:list")
+    @GetMapping("/list")
+    public CommonResult<PageResult<SmTaskSubVo>> list(SmTaskSubBo smTaskSubBo) {
+        return CommonResult.success(smTaskSubService.selectPage(smTaskSubBo));
+    }
+
+    /**
+     * 导出定检任务子列表
+     */
+    @SaCheckPermission("als:smTaskSub:export")
+    @Log(title = "定检任务子", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public CommonResult<Void> export(SmTaskSubBo smTaskSubBo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<SmTaskSubVo> list = smTaskSubService.selectList(smTaskSubBo);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+        smTaskSubService.asyncExport(list, "定检任务子", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("als:smTaskSub:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "定检任务子", SmTaskSubImportVo.class, response);
+    }
+
+    /**
+     * 导入定检任务子列表
+     */
+    @Log(title = "定检任务子", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:smTaskSub:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        smTaskSubService.asyncImportData(file, updateSupport, loginUser);
+        return CommonResult.success();
+    }
+
+    /**
+     * 获取定检任务子详细信息
+     */
+    @SaCheckPermission("als:smTaskSub:query")
+    @GetMapping(value = "/{id}")
+    public CommonResult<SmTaskSubVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(smTaskSubService.selectById(id));
+    }
+
+    /**
+     * 新增定检任务子
+     */
+    @SaCheckPermission("als:smTaskSub:add")
+    @Log(title = "定检任务子", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping
+    public CommonResult<Void> add(@Validated @RequestBody SmTaskSubBo smTaskSubBo) {
+        boolean inserted = smTaskSubService.insert(smTaskSubBo);
+        if (!inserted) {
+            return CommonResult.fail("新增定检任务子记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 修改定检任务子
+     */
+    @SaCheckPermission("als:smTaskSub:edit")
+    @Log(title = "定检任务子", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping
+    public CommonResult<Void> edit(@Validated @RequestBody SmTaskSubBo smTaskSubBo) {
+        boolean updated = smTaskSubService.update(smTaskSubBo);
+        if (!updated) {
+            return CommonResult.fail("修改定检任务子记录失败!");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 删除定检任务子
+     */
+    @SaCheckPermission("als:smTaskSub:remove")
+    @Log(title = "定检任务子", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public CommonResult<Void> remove(@PathVariable Long[] ids) {
+        boolean deleted = smTaskSubService.deleteByIds(ids);
+        if (!deleted) {
+            return CommonResult.fail("删除定检任务子记录失败!");
+        }
+        return CommonResult.success();
+    }
+}

+ 119 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/SmTask.java

@@ -0,0 +1,119 @@
+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_sm_task_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_sm_task_t")
+public class SmTask extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 机号
+     */
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    private Date finishDate;
+
+    /**
+     * 负责人
+     */
+    private String headName;
+
+    /**
+     * 单位
+     */
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    private String contents;
+
+    /**
+     * 质检员
+     */
+    private String qcBy;
+
+    /**
+     * 填写人
+     */
+    private String fillBy;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 84 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/SmTaskRecord.java

@@ -0,0 +1,84 @@
+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_sm_task_record_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_sm_task_record_t")
+public class SmTaskRecord extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 机号
+     */
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    private String specialty;
+
+    /**
+     * 维修内容
+     */
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 109 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/SmTaskSub.java

@@ -0,0 +1,109 @@
+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_sm_task_sub_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_sm_task_sub_t")
+public class SmTaskSub extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 机号
+     */
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    private Date finishDate;
+
+    /**
+     * 工作人
+     */
+    private String staff;
+
+    /**
+     * 复查人
+     */
+    private String reviewBy;
+
+    /**
+     * 单位
+     */
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,117 @@
+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.SmTask;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 定检任务业务对象 als_sm_task_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SmTask.class, reverseConvertGenerate = false)
+public class SmTaskBo extends BaseEntity {
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 机号
+     */
+    @NotBlank(message = "机号不能为空")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @NotBlank(message = "机型不能为空")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @NotNull(message = "任务名称不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date finishDate;
+
+    /**
+     * 负责人
+     */
+    private String headName;
+
+    /**
+     * 单位
+     */
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    private String contents;
+
+    /**
+     * 质检员
+     */
+    private String qcBy;
+
+    /**
+     * 填写人
+     */
+    private String fillBy;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

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

@@ -0,0 +1,78 @@
+package org.eco.als.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.als.domain.SmTaskRecord;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 定检任务记录业务对象 als_sm_task_record_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SmTaskRecord.class, reverseConvertGenerate = false)
+public class SmTaskRecordBo extends BaseEntity {
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 机号
+     */
+    @NotBlank(message = "机号不能为空")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @NotBlank(message = "机型不能为空")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    private String specialty;
+
+    /**
+     * 维修内容
+     */
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+
+}

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

@@ -0,0 +1,105 @@
+package org.eco.als.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.als.domain.SmTaskSub;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 定检任务子业务对象 als_sm_task_sub_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SmTaskSub.class, reverseConvertGenerate = false)
+public class SmTaskSubBo extends BaseEntity {
+
+    /**
+     * 编号
+     */
+    private Long id;
+    /**
+     * 机号
+     */
+    @NotBlank(message = "机号不能为空")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @NotBlank(message = "机型不能为空")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date finishDate;
+
+    /**
+     * 工作人
+     */
+    private String staff;
+
+    /**
+     * 复查人
+     */
+    private String reviewBy;
+
+    /**
+     * 单位
+     */
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    private String status;
+
+
+}

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

@@ -0,0 +1,134 @@
+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 java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定检任务导入视图对象 als_sm_task_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class SmTaskImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @ExcelProperty(value = "任务名称")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    @ExcelProperty(value = "任务编码")
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @ExcelProperty(value = "维修时间")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    @ExcelProperty(value = "剩余时间")
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    @ExcelProperty(value = "专业")
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    @ExcelProperty(value = "下发日期")
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    @ExcelProperty(value = "完成日期")
+    private Date finishDate;
+
+    /**
+     * 负责人
+     */
+    @ExcelProperty(value = "负责人")
+    private String headName;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    @ExcelProperty(value = "维修内容")
+    private String contents;
+
+    /**
+     * 质检员
+     */
+    @ExcelProperty(value = "质检员")
+    private String qcBy;
+
+    /**
+     * 填写人
+     */
+    @ExcelProperty(value = "填写人")
+    private String fillBy;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    private String status;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,92 @@
+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 java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定检任务记录导入视图对象 als_sm_task_record_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class SmTaskRecordImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @ExcelProperty(value = "任务名称")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    @ExcelProperty(value = "任务编码")
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @ExcelProperty(value = "维修时间")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    @ExcelProperty(value = "剩余时间")
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    @ExcelProperty(value = "专业")
+    private String specialty;
+
+    /**
+     * 维修内容
+     */
+    @ExcelProperty(value = "维修内容")
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,114 @@
+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.SmTaskRecord;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定检任务记录视图对象 als_sm_task_record_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SmTaskRecord.class)
+public class SmTaskRecordVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @ExcelProperty(value = "任务名称")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    @ExcelProperty(value = "任务编码")
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @ExcelProperty(value = "维修时间")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    @ExcelProperty(value = "剩余时间")
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    @ExcelProperty(value = "专业")
+    private String specialty;
+
+    /**
+     * 维修内容
+     */
+    @ExcelProperty(value = "维修内容")
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    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;
+
+}

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

@@ -0,0 +1,122 @@
+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 java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定检任务子导入视图对象 als_sm_task_sub_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class SmTaskSubImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @ExcelProperty(value = "任务名称")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    @ExcelProperty(value = "任务编码")
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @ExcelProperty(value = "维修时间")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    @ExcelProperty(value = "剩余时间")
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    @ExcelProperty(value = "专业")
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    @ExcelProperty(value = "下发日期")
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    @ExcelProperty(value = "完成日期")
+    private Date finishDate;
+
+    /**
+     * 工作人
+     */
+    @ExcelProperty(value = "工作人")
+    private String staff;
+
+    /**
+     * 复查人
+     */
+    @ExcelProperty(value = "复查人")
+    private String reviewBy;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    @ExcelProperty(value = "维修内容")
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    private String status;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,144 @@
+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.SmTaskSub;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定检任务子视图对象 als_sm_task_sub_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SmTaskSub.class)
+public class SmTaskSubVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @ExcelProperty(value = "任务名称")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    @ExcelProperty(value = "任务编码")
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @ExcelProperty(value = "维修时间")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    @ExcelProperty(value = "剩余时间")
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    @ExcelProperty(value = "专业")
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    @ExcelProperty(value = "下发日期")
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    @ExcelProperty(value = "完成日期")
+    private Date finishDate;
+
+    /**
+     * 工作人
+     */
+    @ExcelProperty(value = "工作人")
+    private String staff;
+
+    /**
+     * 复查人
+     */
+    @ExcelProperty(value = "复查人")
+    private String reviewBy;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    @ExcelProperty(value = "维修内容")
+    private String contents;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    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;
+
+}

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

@@ -0,0 +1,156 @@
+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.SmTask;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定检任务视图对象 als_sm_task_t
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SmTask.class)
+public class SmTaskVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 机号
+     */
+    @ExcelProperty(value = "机号")
+    private String aircraftNo;
+
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "机型")
+    private String aircraftModel;
+
+    /**
+     * 任务名称
+     */
+    @ExcelProperty(value = "任务名称")
+    private Date name;
+
+    /**
+     * 任务编码
+     */
+    @ExcelProperty(value = "任务编码")
+    private String code;
+
+    /**
+     * 维修时间
+     */
+    @ExcelProperty(value = "维修时间")
+    private Date endTime;
+
+    /**
+     * 剩余时间
+     */
+    @ExcelProperty(value = "剩余时间")
+    private String remainTime;
+
+    /**
+     * 专业
+     */
+    @ExcelProperty(value = "专业")
+    private String specialty;
+
+    /**
+     * 下发日期
+     */
+    @ExcelProperty(value = "下发日期")
+    private Date issueDate;
+
+    /**
+     * 完成日期
+     */
+    @ExcelProperty(value = "完成日期")
+    private Date finishDate;
+
+    /**
+     * 负责人
+     */
+    @ExcelProperty(value = "负责人")
+    private String headName;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String unitName;
+
+    /**
+     * 维修内容
+     */
+    @ExcelProperty(value = "维修内容")
+    private String contents;
+
+    /**
+     * 质检员
+     */
+    @ExcelProperty(value = "质检员")
+    private String qcBy;
+
+    /**
+     * 填写人
+     */
+    @ExcelProperty(value = "填写人")
+    private String fillBy;
+
+    /**
+     * 状态(1正常)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    private String status;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 删除标识(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;
+
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/SmTaskImportListener.java

@@ -0,0 +1,128 @@
+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.SmTaskBo;
+import org.eco.als.domain.vo.SmTaskImportVo;
+import org.eco.als.domain.vo.SmTaskVo;
+import org.eco.als.service.ISmTaskService;
+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 SmTaskImportListener extends AnalysisEventListener<SmTaskImportVo> implements ExcelListener<SmTaskImportVo> {
+    private final ISmTaskService smTaskService;
+
+    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 SmTaskImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.smTaskService = SpringUtils.getBean(ISmTaskService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(SmTaskImportVo smTaskVo, AnalysisContext context) {
+        try {
+
+            SmTaskBo smTaskBo = BeanUtil.toBean(smTaskVo, SmTaskBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            SmTaskVo smTaskVo1 = null;
+
+            //smTaskVo1 = smTaskService.selectBySomefield(smTaskVo.getSomefield());
+            if (ObjectUtil.isNull(smTaskVo1)) {
+                //不存在就新增
+                setBo(smTaskBo);
+                ValidatorUtils.validate(smTaskBo);
+                boolean inserted = smTaskService.insert(smTaskBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、定检任务 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、定检任务 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                smTaskBo.setId(smTaskVo1.getId());//主键
+                smTaskBo.setVersion(smTaskVo1.getVersion());
+                boolean updated = smTaskService.update(smTaskBo);
+                if (updated) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、定检任务 记录更新成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、定检任务 记录更新失败");
+                }
+            }
+        } catch (Exception e) {
+            failureNum++;
+            String msg = "<br/>" + failureNum + "、定检任务 记录导入失败:";
+            failureMsg.append(msg).append(e.getMessage());
+            log.error(msg, e);
+        }
+    }
+
+    private void setBo(SmTaskBo smTaskBo) {
+        smTaskBo.setVersion(0);
+        smTaskBo.setCreateBy(loginUser.getUserId());
+        smTaskBo.setUpdateBy(loginUser.getUserId());
+        smTaskBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<SmTaskImportVo> 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<SmTaskImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/SmTaskRecordImportListener.java

@@ -0,0 +1,128 @@
+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.SmTaskRecordBo;
+import org.eco.als.domain.vo.SmTaskRecordImportVo;
+import org.eco.als.domain.vo.SmTaskRecordVo;
+import org.eco.als.service.ISmTaskRecordService;
+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 SmTaskRecordImportListener extends AnalysisEventListener<SmTaskRecordImportVo> implements ExcelListener<SmTaskRecordImportVo> {
+    private final ISmTaskRecordService smTaskRecordService;
+
+    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 SmTaskRecordImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.smTaskRecordService = SpringUtils.getBean(ISmTaskRecordService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(SmTaskRecordImportVo smTaskRecordVo, AnalysisContext context) {
+        try {
+
+            SmTaskRecordBo smTaskRecordBo = BeanUtil.toBean(smTaskRecordVo, SmTaskRecordBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            SmTaskRecordVo smTaskRecordVo1 = null;
+
+            //smTaskRecordVo1 = smTaskRecordService.selectBySomefield(smTaskRecordVo.getSomefield());
+            if (ObjectUtil.isNull(smTaskRecordVo1)) {
+                //不存在就新增
+                setBo(smTaskRecordBo);
+                ValidatorUtils.validate(smTaskRecordBo);
+                boolean inserted = smTaskRecordService.insert(smTaskRecordBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、定检任务记录 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、定检任务记录 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                smTaskRecordBo.setId(smTaskRecordVo1.getId());//主键
+                smTaskRecordBo.setVersion(smTaskRecordVo1.getVersion());
+                boolean updated = smTaskRecordService.update(smTaskRecordBo);
+                if (updated) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、定检任务记录 记录更新成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、定检任务记录 记录更新失败");
+                }
+            }
+        } catch (Exception e) {
+            failureNum++;
+            String msg = "<br/>" + failureNum + "、定检任务记录 记录导入失败:";
+            failureMsg.append(msg).append(e.getMessage());
+            log.error(msg, e);
+        }
+    }
+
+    private void setBo(SmTaskRecordBo smTaskRecordBo) {
+        smTaskRecordBo.setVersion(0);
+        smTaskRecordBo.setCreateBy(loginUser.getUserId());
+        smTaskRecordBo.setUpdateBy(loginUser.getUserId());
+        smTaskRecordBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<SmTaskRecordImportVo> 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<SmTaskRecordImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/SmTaskSubImportListener.java

@@ -0,0 +1,128 @@
+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.SmTaskSubBo;
+import org.eco.als.domain.vo.SmTaskSubImportVo;
+import org.eco.als.domain.vo.SmTaskSubVo;
+import org.eco.als.service.ISmTaskSubService;
+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 SmTaskSubImportListener extends AnalysisEventListener<SmTaskSubImportVo> implements ExcelListener<SmTaskSubImportVo> {
+    private final ISmTaskSubService smTaskSubService;
+
+    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 SmTaskSubImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.smTaskSubService = SpringUtils.getBean(ISmTaskSubService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(SmTaskSubImportVo smTaskSubVo, AnalysisContext context) {
+        try {
+
+            SmTaskSubBo smTaskSubBo = BeanUtil.toBean(smTaskSubVo, SmTaskSubBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            SmTaskSubVo smTaskSubVo1 = null;
+
+            //smTaskSubVo1 = smTaskSubService.selectBySomefield(smTaskSubVo.getSomefield());
+            if (ObjectUtil.isNull(smTaskSubVo1)) {
+                //不存在就新增
+                setBo(smTaskSubBo);
+                ValidatorUtils.validate(smTaskSubBo);
+                boolean inserted = smTaskSubService.insert(smTaskSubBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、定检任务子 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、定检任务子 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                smTaskSubBo.setId(smTaskSubVo1.getId());//主键
+                smTaskSubBo.setVersion(smTaskSubVo1.getVersion());
+                boolean updated = smTaskSubService.update(smTaskSubBo);
+                if (updated) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、定检任务子 记录更新成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、定检任务子 记录更新失败");
+                }
+            }
+        } catch (Exception e) {
+            failureNum++;
+            String msg = "<br/>" + failureNum + "、定检任务子 记录导入失败:";
+            failureMsg.append(msg).append(e.getMessage());
+            log.error(msg, e);
+        }
+    }
+
+    private void setBo(SmTaskSubBo smTaskSubBo) {
+        smTaskSubBo.setVersion(0);
+        smTaskSubBo.setCreateBy(loginUser.getUserId());
+        smTaskSubBo.setUpdateBy(loginUser.getUserId());
+        smTaskSubBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<SmTaskSubImportVo> 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<SmTaskSubImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/SmTaskMapper.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.SmTask;
+
+/**
+ * 定检任务Mapper接口
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Mapper
+public interface SmTaskMapper extends BaseMapper<SmTask> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/SmTaskRecordMapper.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.SmTaskRecord;
+
+/**
+ * 定检任务记录Mapper接口
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Mapper
+public interface SmTaskRecordMapper extends BaseMapper<SmTaskRecord> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/SmTaskSubMapper.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.SmTaskSub;
+
+/**
+ * 定检任务子Mapper接口
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Mapper
+public interface SmTaskSubMapper extends BaseMapper<SmTaskSub> {
+
+}

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

@@ -0,0 +1,97 @@
+package org.eco.als.service;
+
+import org.eco.als.domain.SmTaskRecord;
+import org.eco.als.domain.bo.SmTaskRecordBo;
+import org.eco.als.domain.vo.SmTaskRecordVo;
+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-25
+ */
+public interface ISmTaskRecordService extends IBaseService<SmTaskRecord> {
+    /**
+     * 查询定检任务记录
+     *
+     * @param id 定检任务记录主键
+     * @return 定检任务记录
+     */
+    SmTaskRecordVo selectById(Long id);
+
+    /**
+     * 查询定检任务记录列表
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 定检任务记录集合
+     */
+    List<SmTaskRecordVo> selectList(SmTaskRecordBo smTaskRecordBo);
+
+    /**
+     * 分页查询定检任务记录列表
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 分页定检任务记录集合
+     */
+    PageResult<SmTaskRecordVo> selectPage(SmTaskRecordBo smTaskRecordBo);
+
+    /**
+     * 新增定检任务记录
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(SmTaskRecordBo smTaskRecordBo);
+
+    /**
+     * 新增定检任务记录,前台提供主键值,一般用于导入的场合
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(SmTaskRecordBo smTaskRecordBo);
+
+    /**
+     * 修改定检任务记录
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(SmTaskRecordBo smTaskRecordBo);
+
+    /**
+     * 批量删除定检任务记录
+     *
+     * @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<SmTaskRecordVo> listVo, String sheetName, LoginUser user);
+
+}

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

@@ -0,0 +1,97 @@
+package org.eco.als.service;
+
+import org.eco.als.domain.SmTask;
+import org.eco.als.domain.bo.SmTaskBo;
+import org.eco.als.domain.vo.SmTaskVo;
+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-25
+ */
+public interface ISmTaskService extends IBaseService<SmTask> {
+    /**
+     * 查询定检任务
+     *
+     * @param id 定检任务主键
+     * @return 定检任务
+     */
+    SmTaskVo selectById(Long id);
+
+    /**
+     * 查询定检任务列表
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 定检任务集合
+     */
+    List<SmTaskVo> selectList(SmTaskBo smTaskBo);
+
+    /**
+     * 分页查询定检任务列表
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 分页定检任务集合
+     */
+    PageResult<SmTaskVo> selectPage(SmTaskBo smTaskBo);
+
+    /**
+     * 新增定检任务
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(SmTaskBo smTaskBo);
+
+    /**
+     * 新增定检任务,前台提供主键值,一般用于导入的场合
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(SmTaskBo smTaskBo);
+
+    /**
+     * 修改定检任务
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(SmTaskBo smTaskBo);
+
+    /**
+     * 批量删除定检任务
+     *
+     * @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<SmTaskVo> listVo, String sheetName, LoginUser user);
+
+}

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

@@ -0,0 +1,97 @@
+package org.eco.als.service;
+
+import org.eco.als.domain.SmTaskSub;
+import org.eco.als.domain.bo.SmTaskSubBo;
+import org.eco.als.domain.vo.SmTaskSubVo;
+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-25
+ */
+public interface ISmTaskSubService extends IBaseService<SmTaskSub> {
+    /**
+     * 查询定检任务子
+     *
+     * @param id 定检任务子主键
+     * @return 定检任务子
+     */
+    SmTaskSubVo selectById(Long id);
+
+    /**
+     * 查询定检任务子列表
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 定检任务子集合
+     */
+    List<SmTaskSubVo> selectList(SmTaskSubBo smTaskSubBo);
+
+    /**
+     * 分页查询定检任务子列表
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 分页定检任务子集合
+     */
+    PageResult<SmTaskSubVo> selectPage(SmTaskSubBo smTaskSubBo);
+
+    /**
+     * 新增定检任务子
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(SmTaskSubBo smTaskSubBo);
+
+    /**
+     * 新增定检任务子,前台提供主键值,一般用于导入的场合
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(SmTaskSubBo smTaskSubBo);
+
+    /**
+     * 修改定检任务子
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(SmTaskSubBo smTaskSubBo);
+
+    /**
+     * 批量删除定检任务子
+     *
+     * @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<SmTaskSubVo> listVo, String sheetName, LoginUser user);
+
+}

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

@@ -0,0 +1,194 @@
+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.SmTaskRecord;
+import org.eco.als.domain.bo.SmTaskRecordBo;
+import org.eco.als.domain.vo.SmTaskRecordImportVo;
+import org.eco.als.domain.vo.SmTaskRecordVo;
+import org.eco.als.listener.SmTaskRecordImportListener;
+import org.eco.als.mapper.SmTaskRecordMapper;
+import org.eco.als.service.ISmTaskRecordService;
+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.SmTaskRecordTableDef.SM_TASK_RECORD;
+
+/**
+ * 定检任务记录Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Service
+@Slf4j
+public class SmTaskRecordServiceImpl extends BaseServiceImpl<SmTaskRecordMapper, SmTaskRecord> implements ISmTaskRecordService {
+    @Resource
+    private SmTaskRecordMapper smTaskRecordMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(SM_TASK_RECORD);
+    }
+
+    private QueryWrapper buildQueryWrapper(SmTaskRecordBo smTaskRecordBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(SM_TASK_RECORD.AIRCRAFT_NO.eq
+            (smTaskRecordBo.getAircraftNo()));
+        queryWrapper.and(SM_TASK_RECORD.AIRCRAFT_MODEL.eq
+            (smTaskRecordBo.getAircraftModel()));
+        queryWrapper.and(SM_TASK_RECORD.NAME.like
+            (smTaskRecordBo.getName()));
+        queryWrapper.and(SM_TASK_RECORD.CODE.eq
+            (smTaskRecordBo.getCode()));
+        queryWrapper.and(SM_TASK_RECORD.END_TIME.eq
+            (smTaskRecordBo.getEndTime()));
+        queryWrapper.and(SM_TASK_RECORD.REMAIN_TIME.eq
+            (smTaskRecordBo.getRemainTime()));
+        queryWrapper.and(SM_TASK_RECORD.SPECIALTY.eq
+            (smTaskRecordBo.getSpecialty()));
+        queryWrapper.and(SM_TASK_RECORD.CONTENTS.eq
+            (smTaskRecordBo.getContents()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询定检任务记录
+     *
+     * @param id 定检任务记录主键
+     * @return 定检任务记录
+     */
+    @Override
+    public SmTaskRecordVo selectById(Long id) {
+        return this.getOneAs(query().where(SM_TASK_RECORD.ID.eq(id)), SmTaskRecordVo.class);
+
+    }
+
+
+    /**
+     * 查询定检任务记录列表
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 定检任务记录集合
+     */
+    @Override
+    public List<SmTaskRecordVo> selectList(SmTaskRecordBo smTaskRecordBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(smTaskRecordBo);
+        return this.listAs(queryWrapper, SmTaskRecordVo.class);
+    }
+
+    /**
+     * 分页查询定检任务记录列表
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 分页定检任务记录集合
+     */
+    @Override
+    public PageResult<SmTaskRecordVo> selectPage(SmTaskRecordBo smTaskRecordBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(smTaskRecordBo);
+        Page<SmTaskRecordVo> page = this.pageAs(PageQuery.build(), queryWrapper, SmTaskRecordVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增定检任务记录
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(SmTaskRecordBo smTaskRecordBo) {
+        SmTaskRecord smTaskRecord = MapstructUtils.convert(smTaskRecordBo, SmTaskRecord.class);
+
+        return this.save(smTaskRecord);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增定检任务记录,前台提供主键值,一般用于导入的场合
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(SmTaskRecordBo smTaskRecordBo) {
+        SmTaskRecord smTaskRecord = MapstructUtils.convert(smTaskRecordBo, SmTaskRecord.class);
+
+
+        return smTaskRecordMapper.insertWithPk(smTaskRecord) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改定检任务记录
+     *
+     * @param smTaskRecordBo 定检任务记录Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(SmTaskRecordBo smTaskRecordBo) {
+        SmTaskRecord smTaskRecord = MapstructUtils.convert(smTaskRecordBo, SmTaskRecord.class);
+        if (ObjectUtil.isNotNull(smTaskRecord) && ObjectUtil.isNotNull(smTaskRecord.getId())) {
+            return this.updateById(smTaskRecord);
+        }
+        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, SmTaskRecordImportVo.class, new SmTaskRecordImportListener(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<SmTaskRecordVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, SmTaskRecordVo.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));
+    }
+
+}

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

@@ -0,0 +1,200 @@
+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.SmTask;
+import org.eco.als.domain.bo.SmTaskBo;
+import org.eco.als.domain.vo.SmTaskImportVo;
+import org.eco.als.domain.vo.SmTaskVo;
+import org.eco.als.listener.SmTaskImportListener;
+import org.eco.als.mapper.SmTaskMapper;
+import org.eco.als.service.ISmTaskService;
+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.SmTaskTableDef.SM_TASK;
+
+/**
+ * 定检任务Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Service
+@Slf4j
+public class SmTaskServiceImpl extends BaseServiceImpl<SmTaskMapper, SmTask> implements ISmTaskService {
+    @Resource
+    private SmTaskMapper smTaskMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(SM_TASK);
+    }
+
+    private QueryWrapper buildQueryWrapper(SmTaskBo smTaskBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(SM_TASK.AIRCRAFT_NO.eq
+            (smTaskBo.getAircraftNo()));
+        queryWrapper.and(SM_TASK.AIRCRAFT_MODEL.eq
+            (smTaskBo.getAircraftModel()));
+        queryWrapper.and(SM_TASK.NAME.like
+            (smTaskBo.getName()));
+        queryWrapper.and(SM_TASK.CODE.eq
+            (smTaskBo.getCode()));
+        queryWrapper.and(SM_TASK.END_TIME.eq
+            (smTaskBo.getEndTime()));
+        queryWrapper.and(SM_TASK.REMAIN_TIME.eq
+            (smTaskBo.getRemainTime()));
+        queryWrapper.and(SM_TASK.SPECIALTY.eq
+            (smTaskBo.getSpecialty()));
+        queryWrapper.and(SM_TASK.ISSUE_DATE.eq
+            (smTaskBo.getIssueDate()));
+        queryWrapper.and(SM_TASK.FINISH_DATE.eq
+            (smTaskBo.getFinishDate()));
+        queryWrapper.and(SM_TASK.HEAD_NAME.like
+            (smTaskBo.getHeadName()));
+        queryWrapper.and(SM_TASK.UNIT_NAME.like
+            (smTaskBo.getUnitName()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询定检任务
+     *
+     * @param id 定检任务主键
+     * @return 定检任务
+     */
+    @Override
+    public SmTaskVo selectById(Long id) {
+        return this.getOneAs(query().where(SM_TASK.ID.eq(id)), SmTaskVo.class);
+
+    }
+
+
+    /**
+     * 查询定检任务列表
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 定检任务集合
+     */
+    @Override
+    public List<SmTaskVo> selectList(SmTaskBo smTaskBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(smTaskBo);
+        return this.listAs(queryWrapper, SmTaskVo.class);
+    }
+
+    /**
+     * 分页查询定检任务列表
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 分页定检任务集合
+     */
+    @Override
+    public PageResult<SmTaskVo> selectPage(SmTaskBo smTaskBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(smTaskBo);
+        Page<SmTaskVo> page = this.pageAs(PageQuery.build(), queryWrapper, SmTaskVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增定检任务
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(SmTaskBo smTaskBo) {
+        SmTask smTask = MapstructUtils.convert(smTaskBo, SmTask.class);
+
+        return this.save(smTask);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增定检任务,前台提供主键值,一般用于导入的场合
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(SmTaskBo smTaskBo) {
+        SmTask smTask = MapstructUtils.convert(smTaskBo, SmTask.class);
+
+
+        return smTaskMapper.insertWithPk(smTask) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改定检任务
+     *
+     * @param smTaskBo 定检任务Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(SmTaskBo smTaskBo) {
+        SmTask smTask = MapstructUtils.convert(smTaskBo, SmTask.class);
+        if (ObjectUtil.isNotNull(smTask) && ObjectUtil.isNotNull(smTask.getId())) {
+            return this.updateById(smTask);
+        }
+        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, SmTaskImportVo.class, new SmTaskImportListener(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<SmTaskVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, SmTaskVo.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));
+    }
+
+}

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

@@ -0,0 +1,204 @@
+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.SmTaskSub;
+import org.eco.als.domain.bo.SmTaskSubBo;
+import org.eco.als.domain.vo.SmTaskSubImportVo;
+import org.eco.als.domain.vo.SmTaskSubVo;
+import org.eco.als.listener.SmTaskSubImportListener;
+import org.eco.als.mapper.SmTaskSubMapper;
+import org.eco.als.service.ISmTaskSubService;
+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.SmTaskSubTableDef.SM_TASK_SUB;
+
+/**
+ * 定检任务子Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-07-25
+ */
+@Service
+@Slf4j
+public class SmTaskSubServiceImpl extends BaseServiceImpl<SmTaskSubMapper, SmTaskSub> implements ISmTaskSubService {
+    @Resource
+    private SmTaskSubMapper smTaskSubMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(SM_TASK_SUB);
+    }
+
+    private QueryWrapper buildQueryWrapper(SmTaskSubBo smTaskSubBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(SM_TASK_SUB.AIRCRAFT_NO.eq
+            (smTaskSubBo.getAircraftNo()));
+        queryWrapper.and(SM_TASK_SUB.AIRCRAFT_MODEL.eq
+            (smTaskSubBo.getAircraftModel()));
+        queryWrapper.and(SM_TASK_SUB.NAME.like
+            (smTaskSubBo.getName()));
+        queryWrapper.and(SM_TASK_SUB.CODE.eq
+            (smTaskSubBo.getCode()));
+        queryWrapper.and(SM_TASK_SUB.END_TIME.eq
+            (smTaskSubBo.getEndTime()));
+        queryWrapper.and(SM_TASK_SUB.REMAIN_TIME.eq
+            (smTaskSubBo.getRemainTime()));
+        queryWrapper.and(SM_TASK_SUB.SPECIALTY.eq
+            (smTaskSubBo.getSpecialty()));
+        queryWrapper.and(SM_TASK_SUB.ISSUE_DATE.eq
+            (smTaskSubBo.getIssueDate()));
+        queryWrapper.and(SM_TASK_SUB.FINISH_DATE.eq
+            (smTaskSubBo.getFinishDate()));
+        queryWrapper.and(SM_TASK_SUB.STAFF.eq
+            (smTaskSubBo.getStaff()));
+        queryWrapper.and(SM_TASK_SUB.REVIEW_BY.eq
+            (smTaskSubBo.getReviewBy()));
+        queryWrapper.and(SM_TASK_SUB.UNIT_NAME.like
+            (smTaskSubBo.getUnitName()));
+        queryWrapper.and(SM_TASK_SUB.CONTENTS.eq
+            (smTaskSubBo.getContents()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询定检任务子
+     *
+     * @param id 定检任务子主键
+     * @return 定检任务子
+     */
+    @Override
+    public SmTaskSubVo selectById(Long id) {
+        return this.getOneAs(query().where(SM_TASK_SUB.ID.eq(id)), SmTaskSubVo.class);
+
+    }
+
+
+    /**
+     * 查询定检任务子列表
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 定检任务子集合
+     */
+    @Override
+    public List<SmTaskSubVo> selectList(SmTaskSubBo smTaskSubBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(smTaskSubBo);
+        return this.listAs(queryWrapper, SmTaskSubVo.class);
+    }
+
+    /**
+     * 分页查询定检任务子列表
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 分页定检任务子集合
+     */
+    @Override
+    public PageResult<SmTaskSubVo> selectPage(SmTaskSubBo smTaskSubBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(smTaskSubBo);
+        Page<SmTaskSubVo> page = this.pageAs(PageQuery.build(), queryWrapper, SmTaskSubVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增定检任务子
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(SmTaskSubBo smTaskSubBo) {
+        SmTaskSub smTaskSub = MapstructUtils.convert(smTaskSubBo, SmTaskSub.class);
+
+        return this.save(smTaskSub);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增定检任务子,前台提供主键值,一般用于导入的场合
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(SmTaskSubBo smTaskSubBo) {
+        SmTaskSub smTaskSub = MapstructUtils.convert(smTaskSubBo, SmTaskSub.class);
+
+
+        return smTaskSubMapper.insertWithPk(smTaskSub) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改定检任务子
+     *
+     * @param smTaskSubBo 定检任务子Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(SmTaskSubBo smTaskSubBo) {
+        SmTaskSub smTaskSub = MapstructUtils.convert(smTaskSubBo, SmTaskSub.class);
+        if (ObjectUtil.isNotNull(smTaskSub) && ObjectUtil.isNotNull(smTaskSub.getId())) {
+            return this.updateById(smTaskSub);
+        }
+        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, SmTaskSubImportVo.class, new SmTaskSubImportListener(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<SmTaskSubVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, SmTaskSubVo.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/SmTaskMapper.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.SmTaskMapper">
+
+</mapper>

+ 7 - 0
als-modules/agile-assurance/src/main/resources/mapper/als/SmTaskRecordMapper.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.SmTaskRecordMapper">
+
+</mapper>

+ 7 - 0
als-modules/agile-assurance/src/main/resources/mapper/als/SmTaskSubMapper.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.SmTaskSubMapper">
+
+</mapper>