Эх сурвалжийг харах

feat: 添加故障案例、构型管理、装机管理

wanggaokun 8 сар өмнө
parent
commit
17ec348b3b
100 өөрчлөгдсөн 8243 нэмэгдсэн , 785 устгасан
  1. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/AirConfigurationController.java
  2. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/AirInstallController.java
  3. 44 38
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultCaseController.java
  4. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultConsumableController.java
  5. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultEquipmentController.java
  6. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultNotesController.java
  7. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultPersonnelController.java
  8. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultSetpsController.java
  9. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultSparePartsController.java
  10. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/MaintenanceController.java
  11. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/PartReplacementController.java
  12. 69 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/AirConfiguration.java
  13. 81 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/AirInstall.java
  14. 0 114
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/AlsFaultCase.java
  15. 58 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultCase.java
  16. 46 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultConsumable.java
  17. 52 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultEquipment.java
  18. 43 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultNotes.java
  19. 49 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultPersonnel.java
  20. 46 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultSetps.java
  21. 52 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultSpareParts.java
  22. 93 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/Maintenance.java
  23. 61 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/PartReplacement.java
  24. 63 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/AirConfigurationBo.java
  25. 83 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/AirInstallBo.java
  26. 0 106
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/AlsFaultCaseBo.java
  27. 66 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultCaseBo.java
  28. 46 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultConsumableBo.java
  29. 56 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultEquipmentBo.java
  30. 41 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultNotesBo.java
  31. 51 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultPersonnelBo.java
  32. 46 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultSetpsBo.java
  33. 56 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultSparePartsBo.java
  34. 125 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/MaintenanceBo.java
  35. 70 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/PartReplacementBo.java
  36. 79 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AirConfigurationImportVo.java
  37. 99 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AirConfigurationVo.java
  38. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AirInstallImportVo.java
  39. 115 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AirInstallVo.java
  40. 0 129
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AlsFaultCaseImportVo.java
  41. 0 145
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/AlsFaultCaseVo.java
  42. 65 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultCaseImportVo.java
  43. 85 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultCaseVo.java
  44. 49 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultConsumableImportVo.java
  45. 69 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultConsumableVo.java
  46. 57 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultEquipmentImportVo.java
  47. 77 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultEquipmentVo.java
  48. 45 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultNotesImportVo.java
  49. 65 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultNotesVo.java
  50. 53 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultPersonnelImportVo.java
  51. 73 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultPersonnelVo.java
  52. 49 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultSetpsImportVo.java
  53. 69 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultSetpsVo.java
  54. 57 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultSparePartsImportVo.java
  55. 77 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultSparePartsVo.java
  56. 109 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/MaintenanceImportVo.java
  57. 129 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/MaintenanceVo.java
  58. 67 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/PartReplacementImportVo.java
  59. 87 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/PartReplacementVo.java
  60. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/AirConfigurationImportListener.java
  61. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/AirInstallImportListener.java
  62. 32 29
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultCaseImportListener.java
  63. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultConsumableImportListener.java
  64. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultEquipmentImportListener.java
  65. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultNotesImportListener.java
  66. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultPersonnelImportListener.java
  67. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultSetpsImportListener.java
  68. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultSparePartsImportListener.java
  69. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/MaintenanceImportListener.java
  70. 128 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/PartReplacementImportListener.java
  71. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/AirConfigurationMapper.java
  72. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/AirInstallMapper.java
  73. 3 3
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultCaseMapper.java
  74. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultConsumableMapper.java
  75. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultEquipmentMapper.java
  76. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultNotesMapper.java
  77. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultPersonnelMapper.java
  78. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultSetpsMapper.java
  79. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultSparePartsMapper.java
  80. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/MaintenanceMapper.java
  81. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/PartReplacementMapper.java
  82. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IAirConfigurationService.java
  83. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IAirInstallService.java
  84. 19 21
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultCaseService.java
  85. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultConsumableService.java
  86. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultEquipmentService.java
  87. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultNotesService.java
  88. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultPersonnelService.java
  89. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultSetpsService.java
  90. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultSparePartsService.java
  91. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IMaintenanceService.java
  92. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IPartReplacementService.java
  93. 196 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/AirConfigurationServiceImpl.java
  94. 204 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/AirInstallServiceImpl.java
  95. 0 200
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/AlsFaultCaseServiceImpl.java
  96. 198 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FaultCaseServiceImpl.java
  97. 190 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FaultConsumableServiceImpl.java
  98. 194 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FaultEquipmentServiceImpl.java
  99. 188 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FaultNotesServiceImpl.java
  100. 192 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FaultPersonnelServiceImpl.java

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AirConfigurationController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AirInstallController.java

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

+ 44 - 38
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AlsFaultCaseController.java → als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultCaseController.java

@@ -1,54 +1,51 @@
 package org.eco.als.controller;
 
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import jakarta.annotation.Resource;
-import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
-import org.eco.als.domain.bo.AlsFaultCaseBo;
-import org.eco.als.domain.vo.AlsFaultCaseVo;
-import org.eco.als.service.IAlsFaultCaseService;
+import jakarta.servlet.http.HttpServletResponse;
+import cn.hutool.core.collection.CollUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
 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.log.annotation.Log;
 import org.eco.common.log.enums.BusinessType;
 import org.eco.common.security.utils.LoginHelper;
+import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.common.web.annotation.RepeatSubmit;
+import org.eco.common.excel.utils.ExcelUtil;
 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 jakarta.annotation.Resource;
+import org.eco.als.domain.vo.FaultCaseImportVo;
+import org.eco.als.domain.vo.FaultCaseVo;
+import org.eco.als.domain.bo.FaultCaseBo;
+import org.eco.als.service.IFaultCaseService;
 import org.springframework.web.multipart.MultipartFile;
+    import org.eco.common.core.core.page.PageResult;
 
 import java.util.List;
+import java.util.ArrayList;
 
 /**
  * 故障案例Controller
  *
  * @author wgk
- * @date 2024-07-18
+ * @date 2024-10-25
  */
 @Validated
 @RequiredArgsConstructor
 @RestController
 @RequestMapping("/als/faultCase")
-public class AlsFaultCaseController extends BaseController {
+public class FaultCaseController extends BaseController {
     @Resource
-    private IAlsFaultCaseService alsFaultCaseService;
+    private IFaultCaseService faultCaseService;
 
-    /**
-     * 查询故障案例列表
-     */
-    @SaCheckPermission("als:faultCase:list")
-    @GetMapping("/list")
-    public CommonResult<PageResult<AlsFaultCaseVo>> list(AlsFaultCaseBo alsFaultCaseBo) {
-        return CommonResult.success(alsFaultCaseService.selectPage(alsFaultCaseBo));
+/**
+ * 查询故障案例列表
+ */
+@SaCheckPermission("als:faultCase:list")
+@GetMapping("/list")
+    public CommonResult<PageResult<FaultCaseVo>> list(FaultCaseBo faultCaseBo) {
+        return CommonResult.success(faultCaseService.selectPage(faultCaseBo));
     }
 
     /**
@@ -57,13 +54,22 @@ public class AlsFaultCaseController extends BaseController {
     @SaCheckPermission("als:faultCase:export")
     @Log(title = "故障案例", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public CommonResult<Void> export(HttpServletResponse response, AlsFaultCaseBo alsFaultCaseBo) {
+    public CommonResult<Void> export(FaultCaseBo faultCaseBo) {
         LoginUser loginUser = LoginHelper.getLoginUser();
-        List<AlsFaultCaseVo> list = alsFaultCaseService.selectList(alsFaultCaseBo);
-        alsFaultCaseService.asyncExport(list, "故障案例", loginUser);
+        List<FaultCaseVo> list = faultCaseService.selectList(faultCaseBo);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+            faultCaseService.asyncExport(list, "故障案例", loginUser);
         return CommonResult.success();
     }
 
+    @SaCheckPermission("als:faultCase:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "故障案例", FaultCaseImportVo.class, response);
+    }
+
     /**
      * 导入故障案例列表
      */
@@ -72,7 +78,7 @@ public class AlsFaultCaseController extends BaseController {
     @PostMapping("/importData")
     public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
         LoginUser loginUser = LoginHelper.getLoginUser();
-        alsFaultCaseService.asyncImportData(file, updateSupport, loginUser);
+            faultCaseService.asyncImportData(file, updateSupport, loginUser);
         return CommonResult.success();
     }
 
@@ -81,8 +87,8 @@ public class AlsFaultCaseController extends BaseController {
      */
     @SaCheckPermission("als:faultCase:query")
     @GetMapping(value = "/{id}")
-    public CommonResult<AlsFaultCaseVo> getInfo(@PathVariable Long id) {
-        return CommonResult.success(alsFaultCaseService.selectById(id));
+    public CommonResult<FaultCaseVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(faultCaseService.selectById(id));
     }
 
     /**
@@ -92,8 +98,8 @@ public class AlsFaultCaseController extends BaseController {
     @Log(title = "故障案例", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping
-    public CommonResult<Void> add(@Validated @RequestBody AlsFaultCaseBo alsFaultCaseBo) {
-        boolean inserted = alsFaultCaseService.insert(alsFaultCaseBo);
+    public CommonResult<Void> add(@Validated @RequestBody FaultCaseBo faultCaseBo) {
+        boolean inserted = faultCaseService.insert(faultCaseBo);
         if (!inserted) {
             return CommonResult.fail("新增故障案例记录失败!");
         }
@@ -107,8 +113,8 @@ public class AlsFaultCaseController extends BaseController {
     @Log(title = "故障案例", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping
-    public CommonResult<Void> edit(@Validated @RequestBody AlsFaultCaseBo alsFaultCaseBo) {
-        boolean updated = alsFaultCaseService.update(alsFaultCaseBo);
+    public CommonResult<Void> edit(@Validated @RequestBody FaultCaseBo faultCaseBo) {
+        boolean updated = faultCaseService.update(faultCaseBo);
         if (!updated) {
             return CommonResult.fail("修改故障案例记录失败!");
         }
@@ -122,7 +128,7 @@ public class AlsFaultCaseController extends BaseController {
     @Log(title = "故障案例", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public CommonResult<Void> remove(@PathVariable Long[] ids) {
-        boolean deleted = alsFaultCaseService.deleteByIds(ids);
+        boolean deleted = faultCaseService.deleteByIds(ids);
         if (!deleted) {
             return CommonResult.fail("删除故障案例记录失败!");
         }

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultConsumableController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultEquipmentController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultNotesController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultPersonnelController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultSetpsController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultSparePartsController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/MaintenanceController.java

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

+ 137 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/PartReplacementController.java

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

+ 69 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/AirConfiguration.java

@@ -0,0 +1,69 @@
+package org.eco.als.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 飞机构型对象 als_air_configuration_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_air_configuration_t")
+public class AirConfiguration extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 唯一ID */
+    @Id
+    private Long id;
+
+    /** 机型 */
+    private String aircraftType;
+
+    /** 构型编码 */
+    private String conCode;
+
+    /** 产品名称 */
+    private String name;
+
+    /** 规格型号 */
+    private String specsModel;
+
+    /** 图号 */
+    private String drawingNumber;
+
+    /** 供应商 */
+    private String supplier;
+
+    /** 描述 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+    /** 创建人 */
+    private String createdBy;
+
+    /** 创建时间 */
+    private Date createdTime;
+
+    /** 更新人 */
+    private String updatedBy;
+
+    /** 更新时间 */
+    private Date updatedTime;
+
+
+}

+ 81 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/AirInstall.java

@@ -0,0 +1,81 @@
+package org.eco.als.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 装机信息对象 als_air_install_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_air_install_t")
+public class AirInstall extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 唯一ID */
+    @Id
+    private Long id;
+
+    /** 航材编码 */
+    private String materialCode;
+
+    /** 航材名称 */
+    private String materialName;
+
+    /** 规格型号 */
+    private String specsModel;
+
+    /** 图号 */
+    private String drawingNumber;
+
+    /** 所属分类 */
+    private String category;
+
+    /** 装机数量 */
+    private String quantity;
+
+    /** 装机时间 */
+    private String installTime;
+
+    /** 是否可修 */
+    private String repairable;
+
+    /** 是否成套 */
+    private String completeSet;
+
+    /** 是否有寿 */
+    private String serviceLife;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+    /** 创建人 */
+    private String createdBy;
+
+    /** 创建时间 */
+    private Date createdTime;
+
+    /** 更新人 */
+    private String updatedBy;
+
+    /** 更新时间 */
+    private Date updatedTime;
+
+
+}

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

@@ -1,114 +0,0 @@
-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_fault_case_t
- *
- * @author wgk
- * @date 2024-07-18
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(value = "als_fault_case_t")
-public class AlsFaultCase extends BaseEntity {
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 编号
-     */
-    @Id
-    private Long id;
-
-    /**
-     * 机型
-     */
-    private String aircraftType;
-
-    /**
-     * 单位
-     */
-    private String unitName;
-
-    /**
-     * 故障件名称
-     */
-    private String itemName;
-
-    /**
-     * 专业
-     */
-    private String specialty;
-
-    /**
-     * 故障现象
-     */
-    private String faultPhenomenon;
-
-    /**
-     * 发动机型别
-     */
-    private String engineType;
-
-    /**
-     * 故障发生地点
-     */
-    private String locationFault;
-
-    /**
-     * 故障件型别
-     */
-    private String itemType;
-
-    /**
-     * 发生日期
-     */
-    private Date occurDate;
-
-    /**
-     * 系统
-     */
-    private String systemName;
-
-    /**
-     * 故障原因
-     */
-    private String causeFault;
-
-    /**
-     * 故障性质
-     */
-    private String natureFault;
-
-    /**
-     * 判明方法
-     */
-    private String methodDetermination;
-
-    /**
-     * 排除方法
-     */
-    private String methodRectification;
-
-    /**
-     * 备注
-     */
-    private String remarks;
-
-    /**
-     * 删除标识(1删除 0未删除)
-     */
-    @Column(isLogicDelete = true)
-    private Integer delFlag;
-
-
-}

+ 58 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultCase.java

@@ -0,0 +1,58 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障案例对象 als_fault_case_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_case_t")
+public class FaultCase extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 机型 */
+    private String aircraftType;
+
+    /** 故障代码 */
+    private String faultCode;
+
+    /** 故障名称 */
+    private String faultName;
+
+    /** 故障位置 */
+    private String location;
+
+    /** 故障等级 */
+    private String level;
+
+    /** 故障现象 */
+    private String symptoms;
+
+    /** 故障原因 */
+    private String faultCause;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 46 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultConsumable.java

@@ -0,0 +1,46 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需耗材对象 als_fault_consumable_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_consumable_t")
+public class FaultConsumable extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 耗材名称 */
+    private String consumableName;
+
+    /** 数量 */
+    private Integer quantity;
+
+    /** 用途 */
+    private String purpose;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 52 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultEquipment.java

@@ -0,0 +1,52 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需设备对象 als_fault_equipment_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_equipment_t")
+public class FaultEquipment extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 设备编号 */
+    private String equipmentCode;
+
+    /** 设备名称 */
+    private String equipmentName;
+
+    /** 规格型号 */
+    private String modelNumber;
+
+    /** 数量 */
+    private Integer quantity;
+
+    /** 用途 */
+    private String purpose;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 43 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultNotes.java

@@ -0,0 +1,43 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障注意事项对象 als_fault_notes_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_notes_t")
+public class FaultNotes extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 注意内容 */
+    private String noteContent;
+
+    /** 图片 */
+    private String image;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 49 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultPersonnel.java

@@ -0,0 +1,49 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障操作人员对象 als_fault_personnel_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_personnel_t")
+public class FaultPersonnel extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 人员 */
+    private String personnel;
+
+    /** 岗位 */
+    private String position;
+
+    /** 数量 */
+    private Integer quantity;
+
+    /** 职责 */
+    private String duties;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 46 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultSetps.java

@@ -0,0 +1,46 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障操作步骤对象 als_fault_setps_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_setps_t")
+public class FaultSetps extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 操作步骤 */
+    private Integer setps;
+
+    /** 操作方法 */
+    private String method;
+
+    /** 图片 */
+    private String image;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 52 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultSpareParts.java

@@ -0,0 +1,52 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需备件对象 als_fault_spare_parts_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_fault_spare_parts_t")
+public class FaultSpareParts extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 备件编号 */
+    private String sparePartsCode;
+
+    /** 备件名称 */
+    private String sparePartsName;
+
+    /** 规格型号 */
+    private String modelNumber;
+
+    /** 数量 */
+    private Integer quantity;
+
+    /** 用途 */
+    private String purpose;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 93 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/Maintenance.java

@@ -0,0 +1,93 @@
+package org.eco.als.domain;
+
+import java.util.Date;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 维修信息对象 als_maintenance_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_maintenance_t")
+public class Maintenance extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 飞机编码 */
+    private String aircraftCode;
+
+    /** 故障代码 */
+    private String faultCode;
+
+    /** 故障名称 */
+    private String faultName;
+
+    /** 故障位置 */
+    private String location;
+
+    /** 故障等级 */
+    private String level;
+
+    /** 故障发生时间 */
+    private Date faultDate;
+
+    /** 故障现象 */
+    private String symptoms;
+
+    /** 故障原因 */
+    private String faultCause;
+
+    /** 维修结果 */
+    private String status;
+
+    /** 维修负责人 */
+    private String supervisor;
+
+    /** 维修时间 */
+    private Date maintenanceTime;
+
+    /** 换件前器材编码 */
+    private String beforeEquipmentCode;
+
+    /** 换件前器材名称 */
+    private String beforeEquipmentName;
+
+    /** 换件前规格型号 */
+    private String beforeModelNumber;
+
+    /** 换件后器材编码 */
+    private String afterEquipmentCode;
+
+    /** 换件后器材名称 */
+    private String afterEquipmentName;
+
+    /** 换件后规格型号 */
+    private String afterModelNumber;
+
+    /** 更换数量 */
+    private String quantity;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 61 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/PartReplacement.java

@@ -0,0 +1,61 @@
+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 java.io.Serial;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 换件记录对象 als_part_replacement_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_part_replacement_t")
+public class PartReplacement extends BaseEntity {
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @Id
+    private Long id;
+
+    /** 飞机编码 */
+    private String aircraftCode;
+
+    /** 换件前器材编码 */
+    private String beforeEquipmentCode;
+
+    /** 换件前器材名称 */
+    private String beforeEquipmentName;
+
+    /** 换件前规格型号 */
+    private String beforeModelNumber;
+
+    /** 换件后器材编码 */
+    private String afterEquipmentCode;
+
+    /** 换件后器材名称 */
+    private String afterEquipmentName;
+
+    /** 换件后规格型号 */
+    private String afterModelNumber;
+
+    /** 更换数量 */
+    private String quantity;
+
+    /** 备注 */
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,63 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.AirConfiguration;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 飞机构型业务对象 als_air_configuration_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = AirConfiguration.class, reverseConvertGenerate = false)
+public class AirConfigurationBo extends BaseEntity{
+    /**
+     * 唯一ID
+     */
+    private Long id;
+
+    /**
+     * 机型
+     */
+    private String aircraftType;
+
+    /**
+     * 构型编码
+     */
+    private String conCode;
+
+    /**
+     * 产品名称
+     */
+    private String name;
+
+    /**
+     * 规格型号
+     */
+    private String specsModel;
+
+    /**
+     * 图号
+     */
+    private String drawingNumber;
+
+    /**
+     * 供应商
+     */
+    private String supplier;
+
+    /**
+     * 描述
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,83 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.AirInstall;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 装机信息业务对象 als_air_install_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = AirInstall.class, reverseConvertGenerate = false)
+public class AirInstallBo extends BaseEntity{
+    /**
+     * 唯一ID
+     */
+    private Long id;
+
+    /**
+     * 航材编码
+     */
+    private String materialCode;
+
+    /**
+     * 航材名称
+     */
+    private String materialName;
+
+    /**
+     * 规格型号
+     */
+    private String specsModel;
+
+    /**
+     * 图号
+     */
+    private String drawingNumber;
+
+    /**
+     * 所属分类
+     */
+    private String category;
+
+    /**
+     * 装机数量
+     */
+    private String quantity;
+
+    /**
+     * 装机时间
+     */
+    private String installTime;
+
+    /**
+     * 是否可修
+     */
+    private String repairable;
+
+    /**
+     * 是否成套
+     */
+    private String completeSet;
+
+    /**
+     * 是否有寿
+     */
+    private String serviceLife;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -1,106 +0,0 @@
-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.AlsFaultCase;
-import org.eco.common.orm.core.domain.BaseEntity;
-
-import java.util.Date;
-
-/**
- * 故障案例业务对象 als_fault_case_t
- *
- * @author wgk
- * @date 2024-07-18
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = AlsFaultCase.class, reverseConvertGenerate = false)
-public class AlsFaultCaseBo extends BaseEntity {
-    /**
-     * 编号
-     */
-    private Long id;
-
-    /**
-     * 机型
-     */
-    @NotBlank(message = "机型不能为空")
-    private String aircraftType;
-
-    /**
-     * 单位
-     */
-    private String unitName;
-
-    /**
-     * 故障件名称
-     */
-    private String itemName;
-
-    /**
-     * 专业
-     */
-    private String specialty;
-
-    /**
-     * 故障现象
-     */
-    private String faultPhenomenon;
-
-    /**
-     * 发动机型别
-     */
-    private String engineType;
-
-    /**
-     * 故障发生地点
-     */
-    private String locationFault;
-
-    /**
-     * 故障件型别
-     */
-    private String itemType;
-
-    /**
-     * 发生日期
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date occurDate;
-
-    /**
-     * 系统
-     */
-    private String systemName;
-
-    /**
-     * 故障原因
-     */
-    private String causeFault;
-
-    /**
-     * 故障性质
-     */
-    private String natureFault;
-
-    /**
-     * 判明方法
-     */
-    private String methodDetermination;
-
-    /**
-     * 排除方法
-     */
-    private String methodRectification;
-
-    /**
-     * 备注
-     */
-    private String remarks;
-
-
-}

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

@@ -0,0 +1,66 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultCase;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障案例业务对象 als_fault_case_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultCase.class, reverseConvertGenerate = false)
+public class FaultCaseBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 机型
+     */
+    private String aircraftType;
+
+    /**
+     * 故障代码
+     */
+    private String faultCode;
+
+    /**
+     * 故障名称
+     */
+    private String faultName;
+
+    /**
+     * 故障位置
+     */
+    private String location;
+
+    /**
+     * 故障等级
+     */
+    private String level;
+
+    /**
+     * 故障现象
+     */
+    private String symptoms;
+
+    /**
+     * 故障原因
+     */
+    private String faultCause;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,46 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultConsumable;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需耗材业务对象 als_fault_consumable_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultConsumable.class, reverseConvertGenerate = false)
+public class FaultConsumableBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 耗材名称
+     */
+    private String consumableName;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 用途
+     */
+    private String purpose;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,56 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultEquipment;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需设备业务对象 als_fault_equipment_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultEquipment.class, reverseConvertGenerate = false)
+public class FaultEquipmentBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 设备编号
+     */
+    private String equipmentCode;
+
+    /**
+     * 设备名称
+     */
+    private String equipmentName;
+
+    /**
+     * 规格型号
+     */
+    private String modelNumber;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 用途
+     */
+    private String purpose;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,41 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultNotes;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障注意事项业务对象 als_fault_notes_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultNotes.class, reverseConvertGenerate = false)
+public class FaultNotesBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 注意内容
+     */
+    private String noteContent;
+
+    /**
+     * 图片
+     */
+    private String image;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,51 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultPersonnel;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障操作人员业务对象 als_fault_personnel_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultPersonnel.class, reverseConvertGenerate = false)
+public class FaultPersonnelBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 人员
+     */
+    private String personnel;
+
+    /**
+     * 岗位
+     */
+    private String position;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 职责
+     */
+    private String duties;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,46 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultSetps;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障操作步骤业务对象 als_fault_setps_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultSetps.class, reverseConvertGenerate = false)
+public class FaultSetpsBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 操作步骤
+     */
+    private Integer setps;
+
+    /**
+     * 操作方法
+     */
+    private String method;
+
+    /**
+     * 图片
+     */
+    private String image;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,56 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.FaultSpareParts;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需备件业务对象 als_fault_spare_parts_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultSpareParts.class, reverseConvertGenerate = false)
+public class FaultSparePartsBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 备件编号
+     */
+    private String sparePartsCode;
+
+    /**
+     * 备件名称
+     */
+    private String sparePartsName;
+
+    /**
+     * 规格型号
+     */
+    private String modelNumber;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 用途
+     */
+    private String purpose;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,125 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.Maintenance;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 维修信息业务对象 als_maintenance_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = Maintenance.class, reverseConvertGenerate = false)
+public class MaintenanceBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 飞机编码
+     */
+    private String aircraftCode;
+
+    /**
+     * 故障代码
+     */
+    private String faultCode;
+
+    /**
+     * 故障名称
+     */
+    private String faultName;
+
+    /**
+     * 故障位置
+     */
+    private String location;
+
+    /**
+     * 故障等级
+     */
+    private String level;
+
+    /**
+     * 故障发生时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date faultDate;
+
+    /**
+     * 故障现象
+     */
+    private String symptoms;
+
+    /**
+     * 故障原因
+     */
+    private String faultCause;
+
+    /**
+     * 维修结果
+     */
+    private String status;
+
+    /**
+     * 维修负责人
+     */
+    private String supervisor;
+
+    /**
+     * 维修时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date maintenanceTime;
+
+    /**
+     * 换件前器材编码
+     */
+    private String beforeEquipmentCode;
+
+    /**
+     * 换件前器材名称
+     */
+    private String beforeEquipmentName;
+
+    /**
+     * 换件前规格型号
+     */
+    private String beforeModelNumber;
+
+    /**
+     * 换件后器材编码
+     */
+    private String afterEquipmentCode;
+
+    /**
+     * 换件后器材名称
+     */
+    private String afterEquipmentName;
+
+    /**
+     * 换件后规格型号
+     */
+    private String afterModelNumber;
+
+    /**
+     * 更换数量
+     */
+    private String quantity;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,70 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.PartReplacement;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 换件记录业务对象 als_part_replacement_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = PartReplacement.class, reverseConvertGenerate = false)
+public class PartReplacementBo extends BaseEntity{
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 飞机编码
+     */
+    private String aircraftCode;
+
+    /**
+     * 换件前器材编码
+     */
+    private String beforeEquipmentCode;
+
+    /**
+     * 换件前器材名称
+     */
+    private String beforeEquipmentName;
+
+    /**
+     * 换件前规格型号
+     */
+    private String beforeModelNumber;
+
+    /**
+     * 换件后器材编码
+     */
+    private String afterEquipmentCode;
+
+    /**
+     * 换件后器材名称
+     */
+    private String afterEquipmentName;
+
+    /**
+     * 换件后规格型号
+     */
+    private String afterModelNumber;
+
+    /**
+     * 更换数量
+     */
+    private String quantity;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,79 @@
+package org.eco.als.domain.vo;
+
+    import java.util.Date;
+    import com.fasterxml.jackson.annotation.JsonFormat;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_air_configuration_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class AirConfigurationImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 机型 */
+                    @ExcelProperty(value = "机型")
+                private String aircraftType;
+
+                /** 构型编码 */
+                    @ExcelProperty(value = "构型编码")
+                private String conCode;
+
+                /** 产品名称 */
+                    @ExcelProperty(value = "产品名称")
+                private String name;
+
+                /** 规格型号 */
+                    @ExcelProperty(value = "规格型号")
+                private String specsModel;
+
+                /** 图号 */
+                    @ExcelProperty(value = "图号")
+                private String drawingNumber;
+
+                /** 供应商 */
+                    @ExcelProperty(value = "供应商")
+                private String supplier;
+
+                /** 描述 */
+                    @ExcelProperty(value = "描述")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+                /** 创建人 */
+                    @ExcelProperty(value = "创建人")
+                    private String createdBy;
+
+                /** 创建时间 */
+                    @ExcelProperty(value = "创建时间")
+                    private Date createdTime;
+
+                /** 更新人 */
+                    @ExcelProperty(value = "更新人")
+                    private String updatedBy;
+
+                /** 更新时间 */
+                    @ExcelProperty(value = "更新时间")
+                    private Date updatedTime;
+
+
+}

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

@@ -0,0 +1,99 @@
+package org.eco.als.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.als.domain.AirConfiguration;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 飞机构型视图对象 als_air_configuration_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = AirConfiguration.class)
+public class AirConfigurationVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 唯一ID */
+    @ExcelProperty(value = "唯一ID")
+    private Long id;
+
+    /** 机型 */
+    @ExcelProperty(value = "机型")
+    private String aircraftType;
+
+    /** 构型编码 */
+    @ExcelProperty(value = "构型编码")
+    private String conCode;
+
+    /** 产品名称 */
+    @ExcelProperty(value = "产品名称")
+    private String name;
+
+    /** 规格型号 */
+    @ExcelProperty(value = "规格型号")
+    private String specsModel;
+
+    /** 图号 */
+    @ExcelProperty(value = "图号")
+    private String drawingNumber;
+
+    /** 供应商 */
+    @ExcelProperty(value = "供应商")
+    private String supplier;
+
+    /** 描述 */
+    @ExcelProperty(value = "描述")
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+    /** 创建人 */
+    @ExcelProperty(value = "创建人")
+    private String createdBy;
+
+    /** 创建时间 */
+    @ExcelProperty(value = "创建时间")
+    private Date createdTime;
+
+    /** 更新人 */
+    @ExcelProperty(value = "更新人")
+    private String updatedBy;
+
+    /** 更新时间 */
+    @ExcelProperty(value = "更新时间")
+    private Date updatedTime;
+
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "createBy")
+    private String createByName;
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "updateBy")
+    private String updateByName;
+
+}

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

@@ -0,0 +1,95 @@
+package org.eco.als.domain.vo;
+
+    import java.util.Date;
+    import com.fasterxml.jackson.annotation.JsonFormat;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_air_install_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class AirInstallImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 航材编码 */
+                    @ExcelProperty(value = "航材编码")
+                private String materialCode;
+
+                /** 航材名称 */
+                    @ExcelProperty(value = "航材名称")
+                private String materialName;
+
+                /** 规格型号 */
+                    @ExcelProperty(value = "规格型号")
+                private String specsModel;
+
+                /** 图号 */
+                    @ExcelProperty(value = "图号")
+                private String drawingNumber;
+
+                /** 所属分类 */
+                    @ExcelProperty(value = "所属分类")
+                private String category;
+
+                /** 装机数量 */
+                    @ExcelProperty(value = "装机数量")
+                private String quantity;
+
+                /** 装机时间 */
+                    @ExcelProperty(value = "装机时间")
+                private String installTime;
+
+                /** 是否可修 */
+                    @ExcelProperty(value = "是否可修")
+                private String repairable;
+
+                /** 是否成套 */
+                    @ExcelProperty(value = "是否成套")
+                private String completeSet;
+
+                /** 是否有寿 */
+                    @ExcelProperty(value = "是否有寿")
+                private String serviceLife;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+                /** 创建人 */
+                    @ExcelProperty(value = "创建人")
+                    private String createdBy;
+
+                /** 创建时间 */
+                    @ExcelProperty(value = "创建时间")
+                    private Date createdTime;
+
+                /** 更新人 */
+                    @ExcelProperty(value = "更新人")
+                    private String updatedBy;
+
+                /** 更新时间 */
+                    @ExcelProperty(value = "更新时间")
+                    private Date updatedTime;
+
+
+}

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

@@ -0,0 +1,115 @@
+package org.eco.als.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.als.domain.AirInstall;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 装机信息视图对象 als_air_install_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = AirInstall.class)
+public class AirInstallVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 唯一ID */
+    @ExcelProperty(value = "唯一ID")
+    private Long id;
+
+    /** 航材编码 */
+    @ExcelProperty(value = "航材编码")
+    private String materialCode;
+
+    /** 航材名称 */
+    @ExcelProperty(value = "航材名称")
+    private String materialName;
+
+    /** 规格型号 */
+    @ExcelProperty(value = "规格型号")
+    private String specsModel;
+
+    /** 图号 */
+    @ExcelProperty(value = "图号")
+    private String drawingNumber;
+
+    /** 所属分类 */
+    @ExcelProperty(value = "所属分类")
+    private String category;
+
+    /** 装机数量 */
+    @ExcelProperty(value = "装机数量")
+    private String quantity;
+
+    /** 装机时间 */
+    @ExcelProperty(value = "装机时间")
+    private String installTime;
+
+    /** 是否可修 */
+    @ExcelProperty(value = "是否可修")
+    private String repairable;
+
+    /** 是否成套 */
+    @ExcelProperty(value = "是否成套")
+    private String completeSet;
+
+    /** 是否有寿 */
+    @ExcelProperty(value = "是否有寿")
+    private String serviceLife;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(1删除 0未删除) */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+    /** 创建人 */
+    @ExcelProperty(value = "创建人")
+    private String createdBy;
+
+    /** 创建时间 */
+    @ExcelProperty(value = "创建时间")
+    private Date createdTime;
+
+    /** 更新人 */
+    @ExcelProperty(value = "更新人")
+    private String updatedBy;
+
+    /** 更新时间 */
+    @ExcelProperty(value = "更新时间")
+    private Date updatedTime;
+
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "createBy")
+    private String createByName;
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "updateBy")
+    private String updateByName;
+
+}

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

@@ -1,129 +0,0 @@
-package org.eco.als.domain.vo;
-
-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_fault_case_t
- *
- * @author wgk
- * @date 2024-07-18
- */
-
-@Data
-@NoArgsConstructor
-public class AlsFaultCaseImportVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-
-    /**
-     * 编号
-     */
-    @ExcelProperty(value = "编号")
-    private Long id;
-
-    /**
-     * 机型
-     */
-    @ExcelProperty(value = "机型")
-    private String aircraftType;
-
-    /**
-     * 单位
-     */
-    @ExcelProperty(value = "单位")
-    private String unitName;
-
-    /**
-     * 故障件名称
-     */
-    @ExcelProperty(value = "故障件名称")
-    private String itemName;
-
-    /**
-     * 专业
-     */
-    @ExcelProperty(value = "专业")
-    private String specialty;
-
-    /**
-     * 故障现象
-     */
-    @ExcelProperty(value = "故障现象")
-    private String faultPhenomenon;
-
-    /**
-     * 发动机型别
-     */
-    @ExcelProperty(value = "发动机型别")
-    private String engineType;
-
-    /**
-     * 故障发生地点
-     */
-    @ExcelProperty(value = "故障发生地点")
-    private String locationFault;
-
-    /**
-     * 故障件型别
-     */
-    @ExcelProperty(value = "故障件型别")
-    private String itemType;
-
-    /**
-     * 发生日期
-     */
-    @ExcelProperty(value = "发生日期")
-    private Date occurDate;
-
-    /**
-     * 系统
-     */
-    @ExcelProperty(value = "系统")
-    private String systemName;
-
-    /**
-     * 故障原因
-     */
-    @ExcelProperty(value = "故障原因")
-    private String causeFault;
-
-    /**
-     * 故障性质
-     */
-    @ExcelProperty(value = "故障性质")
-    private String natureFault;
-
-    /**
-     * 判明方法
-     */
-    @ExcelProperty(value = "判明方法")
-    private String methodDetermination;
-
-    /**
-     * 排除方法
-     */
-    @ExcelProperty(value = "排除方法")
-    private String methodRectification;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remarks;
-
-    /**
-     * 删除标识(1删除 0未删除)
-     */
-    @ExcelProperty(value = "删除标识(1删除 0未删除)")
-    private Integer delFlag;
-
-
-}

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

@@ -1,145 +0,0 @@
-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.AlsFaultCase;
-import org.eco.common.orm.core.domain.BaseEntity;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 故障案例视图对象 als_fault_case_t
- *
- * @author wgk
- * @date 2024-07-18
- */
-@Data
-@ExcelIgnoreUnannotated
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = AlsFaultCase.class)
-public class AlsFaultCaseVo extends BaseEntity implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 编号
-     */
-    @ExcelProperty(value = "编号")
-    private Long id;
-
-    /**
-     * 机型
-     */
-    @ExcelProperty(value = "机型")
-    private String aircraftType;
-
-    /**
-     * 单位
-     */
-    @ExcelProperty(value = "单位")
-    private String unitName;
-
-    /**
-     * 故障件名称
-     */
-    @ExcelProperty(value = "故障件名称")
-    private String itemName;
-
-    /**
-     * 专业
-     */
-    @ExcelProperty(value = "专业")
-    private String specialty;
-
-    /**
-     * 故障现象
-     */
-    @ExcelProperty(value = "故障现象")
-    private String faultPhenomenon;
-
-    /**
-     * 发动机型别
-     */
-    @ExcelProperty(value = "发动机型别")
-    private String engineType;
-
-    /**
-     * 故障发生地点
-     */
-    @ExcelProperty(value = "故障发生地点")
-    private String locationFault;
-
-    /**
-     * 故障件型别
-     */
-    @ExcelProperty(value = "故障件型别")
-    private String itemType;
-
-    /**
-     * 发生日期
-     */
-    @ExcelProperty(value = "发生日期")
-    private Date occurDate;
-
-    /**
-     * 系统
-     */
-    @ExcelProperty(value = "系统")
-    private String systemName;
-
-    /**
-     * 故障原因
-     */
-    @ExcelProperty(value = "故障原因")
-    private String causeFault;
-
-    /**
-     * 故障性质
-     */
-    @ExcelProperty(value = "故障性质")
-    private String natureFault;
-
-    /**
-     * 判明方法
-     */
-    @ExcelProperty(value = "判明方法")
-    private String methodDetermination;
-
-    /**
-     * 排除方法
-     */
-    @ExcelProperty(value = "排除方法")
-    private String methodRectification;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remarks;
-
-    /**
-     * 删除标识(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;
-}

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

@@ -0,0 +1,65 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_case_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultCaseImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 机型 */
+                    @ExcelProperty(value = "机型")
+                private String aircraftType;
+
+                /** 故障代码 */
+                    @ExcelProperty(value = "故障代码")
+                private String faultCode;
+
+                /** 故障名称 */
+                    @ExcelProperty(value = "故障名称")
+                private String faultName;
+
+                /** 故障位置 */
+                    @ExcelProperty(value = "故障位置")
+                private String location;
+
+                /** 故障等级 */
+                    @ExcelProperty(value = "故障等级")
+                private String level;
+
+                /** 故障现象 */
+                    @ExcelProperty(value = "故障现象")
+                private String symptoms;
+
+                /** 故障原因 */
+                    @ExcelProperty(value = "故障原因")
+                private String faultCause;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,85 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultCase;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障案例视图对象 als_fault_case_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultCase.class)
+public class FaultCaseVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 机型 */
+    @ExcelProperty(value = "机型")
+    private String aircraftType;
+
+    /** 故障代码 */
+    @ExcelProperty(value = "故障代码")
+    private String faultCode;
+
+    /** 故障名称 */
+    @ExcelProperty(value = "故障名称")
+    private String faultName;
+
+    /** 故障位置 */
+    @ExcelProperty(value = "故障位置")
+    private String location;
+
+    /** 故障等级 */
+    @ExcelProperty(value = "故障等级")
+    private String level;
+
+    /** 故障现象 */
+    @ExcelProperty(value = "故障现象")
+    private String symptoms;
+
+    /** 故障原因 */
+    @ExcelProperty(value = "故障原因")
+    private String faultCause;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,49 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_consumable_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultConsumableImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 耗材名称 */
+                    @ExcelProperty(value = "耗材名称")
+                private String consumableName;
+
+                /** 数量 */
+                    @ExcelProperty(value = "数量")
+                private Integer quantity;
+
+                /** 用途 */
+                    @ExcelProperty(value = "用途")
+                private String purpose;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,69 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultConsumable;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需耗材视图对象 als_fault_consumable_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultConsumable.class)
+public class FaultConsumableVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 耗材名称 */
+    @ExcelProperty(value = "耗材名称")
+    private String consumableName;
+
+    /** 数量 */
+    @ExcelProperty(value = "数量")
+    private Integer quantity;
+
+    /** 用途 */
+    @ExcelProperty(value = "用途")
+    private String purpose;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,57 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_equipment_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultEquipmentImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 设备编号 */
+                    @ExcelProperty(value = "设备编号")
+                private String equipmentCode;
+
+                /** 设备名称 */
+                    @ExcelProperty(value = "设备名称")
+                private String equipmentName;
+
+                /** 规格型号 */
+                    @ExcelProperty(value = "规格型号")
+                private String modelNumber;
+
+                /** 数量 */
+                    @ExcelProperty(value = "数量")
+                private Integer quantity;
+
+                /** 用途 */
+                    @ExcelProperty(value = "用途")
+                private String purpose;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,77 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultEquipment;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需设备视图对象 als_fault_equipment_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultEquipment.class)
+public class FaultEquipmentVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 设备编号 */
+    @ExcelProperty(value = "设备编号")
+    private String equipmentCode;
+
+    /** 设备名称 */
+    @ExcelProperty(value = "设备名称")
+    private String equipmentName;
+
+    /** 规格型号 */
+    @ExcelProperty(value = "规格型号")
+    private String modelNumber;
+
+    /** 数量 */
+    @ExcelProperty(value = "数量")
+    private Integer quantity;
+
+    /** 用途 */
+    @ExcelProperty(value = "用途")
+    private String purpose;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultNotesImportVo.java

@@ -0,0 +1,45 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_notes_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultNotesImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 注意内容 */
+                    @ExcelProperty(value = "注意内容")
+                private String noteContent;
+
+                /** 图片 */
+                    @ExcelProperty(value = "图片")
+                private String image;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,65 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultNotes;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障注意事项视图对象 als_fault_notes_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultNotes.class)
+public class FaultNotesVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 注意内容 */
+    @ExcelProperty(value = "注意内容")
+    private String noteContent;
+
+    /** 图片 */
+    @ExcelProperty(value = "图片")
+    private String image;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,53 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_personnel_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultPersonnelImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 人员 */
+                    @ExcelProperty(value = "人员")
+                private String personnel;
+
+                /** 岗位 */
+                    @ExcelProperty(value = "岗位")
+                private String position;
+
+                /** 数量 */
+                    @ExcelProperty(value = "数量")
+                private Integer quantity;
+
+                /** 职责 */
+                    @ExcelProperty(value = "职责")
+                private String duties;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,73 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultPersonnel;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障操作人员视图对象 als_fault_personnel_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultPersonnel.class)
+public class FaultPersonnelVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 人员 */
+    @ExcelProperty(value = "人员")
+    private String personnel;
+
+    /** 岗位 */
+    @ExcelProperty(value = "岗位")
+    private String position;
+
+    /** 数量 */
+    @ExcelProperty(value = "数量")
+    private Integer quantity;
+
+    /** 职责 */
+    @ExcelProperty(value = "职责")
+    private String duties;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,49 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_setps_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultSetpsImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 操作步骤 */
+                    @ExcelProperty(value = "操作步骤")
+                private Integer setps;
+
+                /** 操作方法 */
+                    @ExcelProperty(value = "操作方法")
+                private String method;
+
+                /** 图片 */
+                    @ExcelProperty(value = "图片")
+                private String image;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,69 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultSetps;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障操作步骤视图对象 als_fault_setps_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultSetps.class)
+public class FaultSetpsVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 操作步骤 */
+    @ExcelProperty(value = "操作步骤")
+    private Integer setps;
+
+    /** 操作方法 */
+    @ExcelProperty(value = "操作方法")
+    private String method;
+
+    /** 图片 */
+    @ExcelProperty(value = "图片")
+    private String image;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,57 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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_fault_spare_parts_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class FaultSparePartsImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 备件编号 */
+                    @ExcelProperty(value = "备件编号")
+                private String sparePartsCode;
+
+                /** 备件名称 */
+                    @ExcelProperty(value = "备件名称")
+                private String sparePartsName;
+
+                /** 规格型号 */
+                    @ExcelProperty(value = "规格型号")
+                private String modelNumber;
+
+                /** 数量 */
+                    @ExcelProperty(value = "数量")
+                private Integer quantity;
+
+                /** 用途 */
+                    @ExcelProperty(value = "用途")
+                private String purpose;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,77 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.FaultSpareParts;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 故障所需备件视图对象 als_fault_spare_parts_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = FaultSpareParts.class)
+public class FaultSparePartsVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 备件编号 */
+    @ExcelProperty(value = "备件编号")
+    private String sparePartsCode;
+
+    /** 备件名称 */
+    @ExcelProperty(value = "备件名称")
+    private String sparePartsName;
+
+    /** 规格型号 */
+    @ExcelProperty(value = "规格型号")
+    private String modelNumber;
+
+    /** 数量 */
+    @ExcelProperty(value = "数量")
+    private Integer quantity;
+
+    /** 用途 */
+    @ExcelProperty(value = "用途")
+    private String purpose;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,109 @@
+package org.eco.als.domain.vo;
+
+    import java.util.Date;
+
+    import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+    import lombok.Data;
+import java.io.Serial;
+import java.io.Serializable;
+import lombok.NoArgsConstructor;
+
+/**
+ * 维修信息导入视图对象 als_maintenance_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class MaintenanceImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 飞机编码 */
+                    @ExcelProperty(value = "飞机编码")
+                private String aircraftCode;
+
+                /** 故障代码 */
+                    @ExcelProperty(value = "故障代码")
+                private String faultCode;
+
+                /** 故障名称 */
+                    @ExcelProperty(value = "故障名称")
+                private String faultName;
+
+                /** 故障位置 */
+                    @ExcelProperty(value = "故障位置")
+                private String location;
+
+                /** 故障等级 */
+                    @ExcelProperty(value = "故障等级")
+                private String level;
+
+                /** 故障发生时间 */
+                    @ExcelProperty(value = "故障发生时间")
+                private Date faultDate;
+
+                /** 故障现象 */
+                    @ExcelProperty(value = "故障现象")
+                private String symptoms;
+
+                /** 故障原因 */
+                    @ExcelProperty(value = "故障原因")
+                private String faultCause;
+
+                /** 维修结果 */
+                    @ExcelProperty(value = "维修结果")
+                private String status;
+
+                /** 维修负责人 */
+                    @ExcelProperty(value = "维修负责人")
+                private String supervisor;
+
+                /** 维修时间 */
+                    @ExcelProperty(value = "维修时间")
+                private Date maintenanceTime;
+
+                /** 换件前器材编码 */
+                    @ExcelProperty(value = "换件前器材编码")
+                private String beforeEquipmentCode;
+
+                /** 换件前器材名称 */
+                    @ExcelProperty(value = "换件前器材名称")
+                private String beforeEquipmentName;
+
+                /** 换件前规格型号 */
+                    @ExcelProperty(value = "换件前规格型号")
+                private String beforeModelNumber;
+
+                /** 换件后器材编码 */
+                    @ExcelProperty(value = "换件后器材编码")
+                private String afterEquipmentCode;
+
+                /** 换件后器材名称 */
+                    @ExcelProperty(value = "换件后器材名称")
+                private String afterEquipmentName;
+
+                /** 换件后规格型号 */
+                    @ExcelProperty(value = "换件后规格型号")
+                private String afterModelNumber;
+
+                /** 更换数量 */
+                    @ExcelProperty(value = "更换数量")
+                private String quantity;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,129 @@
+package org.eco.als.domain.vo;
+
+import java.util.Date;
+
+import org.eco.als.domain.Maintenance;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 维修信息视图对象 als_maintenance_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = Maintenance.class)
+public class MaintenanceVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 飞机编码 */
+    @ExcelProperty(value = "飞机编码")
+    private String aircraftCode;
+
+    /** 故障代码 */
+    @ExcelProperty(value = "故障代码")
+    private String faultCode;
+
+    /** 故障名称 */
+    @ExcelProperty(value = "故障名称")
+    private String faultName;
+
+    /** 故障位置 */
+    @ExcelProperty(value = "故障位置")
+    private String location;
+
+    /** 故障等级 */
+    @ExcelProperty(value = "故障等级")
+    private String level;
+
+    /** 故障发生时间 */
+    @ExcelProperty(value = "故障发生时间")
+    private Date faultDate;
+
+    /** 故障现象 */
+    @ExcelProperty(value = "故障现象")
+    private String symptoms;
+
+    /** 故障原因 */
+    @ExcelProperty(value = "故障原因")
+    private String faultCause;
+
+    /** 维修结果 */
+    @ExcelProperty(value = "维修结果")
+    private String status;
+
+    /** 维修负责人 */
+    @ExcelProperty(value = "维修负责人")
+    private String supervisor;
+
+    /** 维修时间 */
+    @ExcelProperty(value = "维修时间")
+    private Date maintenanceTime;
+
+    /** 换件前器材编码 */
+    @ExcelProperty(value = "换件前器材编码")
+    private String beforeEquipmentCode;
+
+    /** 换件前器材名称 */
+    @ExcelProperty(value = "换件前器材名称")
+    private String beforeEquipmentName;
+
+    /** 换件前规格型号 */
+    @ExcelProperty(value = "换件前规格型号")
+    private String beforeModelNumber;
+
+    /** 换件后器材编码 */
+    @ExcelProperty(value = "换件后器材编码")
+    private String afterEquipmentCode;
+
+    /** 换件后器材名称 */
+    @ExcelProperty(value = "换件后器材名称")
+    private String afterEquipmentName;
+
+    /** 换件后规格型号 */
+    @ExcelProperty(value = "换件后规格型号")
+    private String afterModelNumber;
+
+    /** 更换数量 */
+    @ExcelProperty(value = "更换数量")
+    private String quantity;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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;
+
+}

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

@@ -0,0 +1,67 @@
+package org.eco.als.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import java.io.Serial;
+import java.io.Serializable;
+import lombok.NoArgsConstructor;
+
+/**
+ * 换件记录导入视图对象 als_part_replacement_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class PartReplacementImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+                /** 飞机编码 */
+                    @ExcelProperty(value = "飞机编码")
+                private String aircraftCode;
+
+                /** 换件前器材编码 */
+                    @ExcelProperty(value = "换件前器材编码")
+                private String beforeEquipmentCode;
+
+                /** 换件前器材名称 */
+                    @ExcelProperty(value = "换件前器材名称")
+                private String beforeEquipmentName;
+
+                /** 换件前规格型号 */
+                    @ExcelProperty(value = "换件前规格型号")
+                private String beforeModelNumber;
+
+                /** 换件后器材编码 */
+                    @ExcelProperty(value = "换件后器材编码")
+                private String afterEquipmentCode;
+
+                /** 换件后器材名称 */
+                    @ExcelProperty(value = "换件后器材名称")
+                private String afterEquipmentName;
+
+                /** 换件后规格型号 */
+                    @ExcelProperty(value = "换件后规格型号")
+                private String afterModelNumber;
+
+                /** 更换数量 */
+                    @ExcelProperty(value = "更换数量")
+                private String quantity;
+
+                /** 备注 */
+                    @ExcelProperty(value = "备注")
+                private String remarks;
+
+                /** 删除标识(1删除 0未删除) */
+                    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+                    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,87 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.PartReplacement;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+/**
+ * 换件记录视图对象 als_part_replacement_t
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = PartReplacement.class)
+public class PartReplacementVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /** 飞机编码 */
+    @ExcelProperty(value = "飞机编码")
+    private String aircraftCode;
+
+    /** 换件前器材编码 */
+    @ExcelProperty(value = "换件前器材编码")
+    private String beforeEquipmentCode;
+
+    /** 换件前器材名称 */
+    @ExcelProperty(value = "换件前器材名称")
+    private String beforeEquipmentName;
+
+    /** 换件前规格型号 */
+    @ExcelProperty(value = "换件前规格型号")
+    private String beforeModelNumber;
+
+    /** 换件后器材编码 */
+    @ExcelProperty(value = "换件后器材编码")
+    private String afterEquipmentCode;
+
+    /** 换件后器材名称 */
+    @ExcelProperty(value = "换件后器材名称")
+    private String afterEquipmentName;
+
+    /** 换件后规格型号 */
+    @ExcelProperty(value = "换件后规格型号")
+    private String afterModelNumber;
+
+    /** 更换数量 */
+    @ExcelProperty(value = "更换数量")
+    private String quantity;
+
+    /** 备注 */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /** 删除标识(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/AirConfigurationImportListener.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 org.eco.common.core.exception.BusinessException;
+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.AirConfigurationBo;
+import org.eco.als.domain.vo.AirConfigurationImportVo;
+import org.eco.als.domain.vo.AirConfigurationVo;
+import org.eco.als.service.IAirConfigurationService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 飞机构型自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class AirConfigurationImportListener extends AnalysisEventListener<AirConfigurationImportVo> implements ExcelListener<AirConfigurationImportVo> {
+    private final IAirConfigurationService airConfigurationService;
+
+    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();
+
+    public AirConfigurationImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.airConfigurationService = SpringUtils.getBean(IAirConfigurationService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(AirConfigurationImportVo airConfigurationVo, AnalysisContext context) {
+        try {
+
+            AirConfigurationBo airConfigurationBo = BeanUtil.toBean(airConfigurationVo, AirConfigurationBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            AirConfigurationVo airConfigurationVo1 = null;
+
+            //airConfigurationVo1 = airConfigurationService.selectBySomefield(airConfigurationVo.getSomefield());
+            if (ObjectUtil.isNull(airConfigurationVo1)) {
+                //不存在就新增
+                setBo(airConfigurationBo);
+                ValidatorUtils.validate(airConfigurationBo);
+                boolean inserted = airConfigurationService.insert(airConfigurationBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、飞机构型 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、飞机构型 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                airConfigurationBo.setId(airConfigurationVo1.getId());//主键
+                airConfigurationBo.setVersion(airConfigurationVo1.getVersion());
+                boolean updated = airConfigurationService.update(airConfigurationBo);
+                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(AirConfigurationBo airConfigurationBo) {
+        airConfigurationBo.setVersion(0);
+        airConfigurationBo.setCreateBy(loginUser.getUserId());
+        airConfigurationBo.setUpdateBy(loginUser.getUserId());
+        airConfigurationBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<AirConfigurationImportVo> 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<AirConfigurationImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/AirInstallImportListener.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 org.eco.common.core.exception.BusinessException;
+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.AirInstallBo;
+import org.eco.als.domain.vo.AirInstallImportVo;
+import org.eco.als.domain.vo.AirInstallVo;
+import org.eco.als.service.IAirInstallService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 装机信息自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class AirInstallImportListener extends AnalysisEventListener<AirInstallImportVo> implements ExcelListener<AirInstallImportVo> {
+    private final IAirInstallService airInstallService;
+
+    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();
+
+    public AirInstallImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.airInstallService = SpringUtils.getBean(IAirInstallService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(AirInstallImportVo airInstallVo, AnalysisContext context) {
+        try {
+
+            AirInstallBo airInstallBo = BeanUtil.toBean(airInstallVo, AirInstallBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            AirInstallVo airInstallVo1 = null;
+
+            //airInstallVo1 = airInstallService.selectBySomefield(airInstallVo.getSomefield());
+            if (ObjectUtil.isNull(airInstallVo1)) {
+                //不存在就新增
+                setBo(airInstallBo);
+                ValidatorUtils.validate(airInstallBo);
+                boolean inserted = airInstallService.insert(airInstallBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、装机信息 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、装机信息 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                airInstallBo.setId(airInstallVo1.getId());//主键
+                airInstallBo.setVersion(airInstallVo1.getVersion());
+                boolean updated = airInstallService.update(airInstallBo);
+                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(AirInstallBo airInstallBo) {
+        airInstallBo.setVersion(0);
+        airInstallBo.setCreateBy(loginUser.getUserId());
+        airInstallBo.setUpdateBy(loginUser.getUserId());
+        airInstallBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<AirInstallImportVo> 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<AirInstallImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 32 - 29
als-modules/agile-assurance/src/main/java/org/eco/als/listener/AlsFaultCaseImportListener.java → als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultCaseImportListener.java

@@ -4,17 +4,18 @@ 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.AlsFaultCaseBo;
-import org.eco.als.domain.vo.AlsFaultCaseImportVo;
-import org.eco.als.domain.vo.AlsFaultCaseVo;
-import org.eco.als.service.IAlsFaultCaseService;
-import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.core.exception.BusinessException;
 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.FaultCaseBo;
+import org.eco.als.domain.vo.FaultCaseImportVo;
+import org.eco.als.domain.vo.FaultCaseVo;
+import org.eco.als.service.IFaultCaseService;
+import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
 
@@ -24,60 +25,56 @@ import java.util.List;
  * @author wgk
  */
 @Slf4j
-public class AlsFaultCaseImportListener extends AnalysisEventListener<AlsFaultCaseImportVo> implements ExcelListener<AlsFaultCaseImportVo> {
-    private final IAlsFaultCaseService alsFaultCaseService;
+public class FaultCaseImportListener extends AnalysisEventListener<FaultCaseImportVo> implements ExcelListener<FaultCaseImportVo> {
+    private final IFaultCaseService faultCaseService;
 
     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;
+    private final StringBuilder successMsg = new StringBuilder();
+    private final StringBuilder failureMsg = new StringBuilder();
 
-    public AlsFaultCaseImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
-        this.alsFaultCaseService = SpringUtils.getBean(IAlsFaultCaseService.class);
+    public FaultCaseImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultCaseService = SpringUtils.getBean(IFaultCaseService.class);
         this.isUpdateSupport = isUpdateSupport;
         this.loginUser = loginUser;
     }
 
     @Override
-    public void invoke(AlsFaultCaseImportVo alsFaultCaseVo, AnalysisContext context) {
+    public void invoke(FaultCaseImportVo faultCaseVo, AnalysisContext context) {
         try {
 
-            AlsFaultCaseBo alsFaultCaseBo = BeanUtil.toBean(alsFaultCaseVo, AlsFaultCaseBo.class);
+            FaultCaseBo faultCaseBo = BeanUtil.toBean(faultCaseVo, FaultCaseBo.class);
 
             //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
-            AlsFaultCaseVo alsFaultCaseVo1 = null;
+            FaultCaseVo faultCaseVo1 = null;
 
-            //alsFaultCaseVo1 = alsFaultCaseService.selectBySomefield(alsFaultCaseVo.getSomefield());
-            if (ObjectUtil.isNull(alsFaultCaseVo1)) {
+            //faultCaseVo1 = faultCaseService.selectBySomefield(faultCaseVo.getSomefield());
+            if (ObjectUtil.isNull(faultCaseVo1)) {
                 //不存在就新增
-                alsFaultCaseBo.setVersion(0);
-                ValidatorUtils.validate(alsFaultCaseBo);
-                boolean inserted = alsFaultCaseService.insert(alsFaultCaseBo);
+                setBo(faultCaseBo);
+                ValidatorUtils.validate(faultCaseBo);
+                boolean inserted = faultCaseService.insert(faultCaseBo);
 
                 if (inserted) {
                     successNum++;
                     successMsg.append("<br/>").append(successNum).append("、故障案例 记录导入成功");
-                    return;
                 } else {
                     failureNum++;
                     failureMsg.append("<br/>").append(failureNum).append("、故障案例 记录导入失败");
-                    return;
                 }
             } else if (isUpdateSupport) {
                 //存在就更新
-                alsFaultCaseBo.setId(alsFaultCaseVo1.getId());//主键
-                alsFaultCaseBo.setVersion(alsFaultCaseVo1.getVersion());
-                boolean updated = alsFaultCaseService.update(alsFaultCaseBo);
+                faultCaseBo.setId(faultCaseVo1.getId());//主键
+                faultCaseBo.setVersion(faultCaseVo1.getVersion());
+                boolean updated = faultCaseService.update(faultCaseBo);
                 if (updated) {
                     successNum++;
                     successMsg.append("<br/>").append(successNum).append("、故障案例 记录更新成功");
-                    return;
                 } else {
                     failureNum++;
                     failureMsg.append("<br/>").append(failureNum).append("、故障案例 记录更新失败");
-                    return;
                 }
             }
         } catch (Exception e) {
@@ -87,6 +84,12 @@ public class AlsFaultCaseImportListener extends AnalysisEventListener<AlsFaultCa
             log.error(msg, e);
         }
     }
+    private void setBo(FaultCaseBo faultCaseBo) {
+        faultCaseBo.setVersion(0);
+        faultCaseBo.setCreateBy(loginUser.getUserId());
+        faultCaseBo.setUpdateBy(loginUser.getUserId());
+        faultCaseBo.setTenantId(loginUser.getTenantId());
+    }
 
     @Override
     public void doAfterAllAnalysed(AnalysisContext context) {
@@ -94,7 +97,7 @@ public class AlsFaultCaseImportListener extends AnalysisEventListener<AlsFaultCa
     }
 
     @Override
-    public ExcelResult<AlsFaultCaseImportVo> getExcelResult() {
+    public ExcelResult<FaultCaseImportVo> getExcelResult() {
         return new ExcelResult<>() {
 
             @Override
@@ -112,7 +115,7 @@ public class AlsFaultCaseImportListener extends AnalysisEventListener<AlsFaultCa
             }
 
             @Override
-            public List<AlsFaultCaseImportVo> getList() {
+            public List<FaultCaseImportVo> getList() {
                 return null;
             }
 

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultConsumableImportListener.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 org.eco.common.core.exception.BusinessException;
+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.FaultConsumableBo;
+import org.eco.als.domain.vo.FaultConsumableImportVo;
+import org.eco.als.domain.vo.FaultConsumableVo;
+import org.eco.als.service.IFaultConsumableService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 故障所需耗材自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FaultConsumableImportListener extends AnalysisEventListener<FaultConsumableImportVo> implements ExcelListener<FaultConsumableImportVo> {
+    private final IFaultConsumableService faultConsumableService;
+
+    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();
+
+    public FaultConsumableImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultConsumableService = SpringUtils.getBean(IFaultConsumableService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FaultConsumableImportVo faultConsumableVo, AnalysisContext context) {
+        try {
+
+            FaultConsumableBo faultConsumableBo = BeanUtil.toBean(faultConsumableVo, FaultConsumableBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FaultConsumableVo faultConsumableVo1 = null;
+
+            //faultConsumableVo1 = faultConsumableService.selectBySomefield(faultConsumableVo.getSomefield());
+            if (ObjectUtil.isNull(faultConsumableVo1)) {
+                //不存在就新增
+                setBo(faultConsumableBo);
+                ValidatorUtils.validate(faultConsumableBo);
+                boolean inserted = faultConsumableService.insert(faultConsumableBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、故障所需耗材 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、故障所需耗材 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                faultConsumableBo.setId(faultConsumableVo1.getId());//主键
+                faultConsumableBo.setVersion(faultConsumableVo1.getVersion());
+                boolean updated = faultConsumableService.update(faultConsumableBo);
+                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(FaultConsumableBo faultConsumableBo) {
+        faultConsumableBo.setVersion(0);
+        faultConsumableBo.setCreateBy(loginUser.getUserId());
+        faultConsumableBo.setUpdateBy(loginUser.getUserId());
+        faultConsumableBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FaultConsumableImportVo> 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<FaultConsumableImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultEquipmentImportListener.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 org.eco.common.core.exception.BusinessException;
+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.FaultEquipmentBo;
+import org.eco.als.domain.vo.FaultEquipmentImportVo;
+import org.eco.als.domain.vo.FaultEquipmentVo;
+import org.eco.als.service.IFaultEquipmentService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 故障所需设备自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FaultEquipmentImportListener extends AnalysisEventListener<FaultEquipmentImportVo> implements ExcelListener<FaultEquipmentImportVo> {
+    private final IFaultEquipmentService faultEquipmentService;
+
+    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();
+
+    public FaultEquipmentImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultEquipmentService = SpringUtils.getBean(IFaultEquipmentService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FaultEquipmentImportVo faultEquipmentVo, AnalysisContext context) {
+        try {
+
+            FaultEquipmentBo faultEquipmentBo = BeanUtil.toBean(faultEquipmentVo, FaultEquipmentBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FaultEquipmentVo faultEquipmentVo1 = null;
+
+            //faultEquipmentVo1 = faultEquipmentService.selectBySomefield(faultEquipmentVo.getSomefield());
+            if (ObjectUtil.isNull(faultEquipmentVo1)) {
+                //不存在就新增
+                setBo(faultEquipmentBo);
+                ValidatorUtils.validate(faultEquipmentBo);
+                boolean inserted = faultEquipmentService.insert(faultEquipmentBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、故障所需设备 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、故障所需设备 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                faultEquipmentBo.setId(faultEquipmentVo1.getId());//主键
+                faultEquipmentBo.setVersion(faultEquipmentVo1.getVersion());
+                boolean updated = faultEquipmentService.update(faultEquipmentBo);
+                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(FaultEquipmentBo faultEquipmentBo) {
+        faultEquipmentBo.setVersion(0);
+        faultEquipmentBo.setCreateBy(loginUser.getUserId());
+        faultEquipmentBo.setUpdateBy(loginUser.getUserId());
+        faultEquipmentBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FaultEquipmentImportVo> 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<FaultEquipmentImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultNotesImportListener.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 org.eco.common.core.exception.BusinessException;
+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.FaultNotesBo;
+import org.eco.als.domain.vo.FaultNotesImportVo;
+import org.eco.als.domain.vo.FaultNotesVo;
+import org.eco.als.service.IFaultNotesService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 故障注意事项自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FaultNotesImportListener extends AnalysisEventListener<FaultNotesImportVo> implements ExcelListener<FaultNotesImportVo> {
+    private final IFaultNotesService faultNotesService;
+
+    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();
+
+    public FaultNotesImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultNotesService = SpringUtils.getBean(IFaultNotesService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FaultNotesImportVo faultNotesVo, AnalysisContext context) {
+        try {
+
+            FaultNotesBo faultNotesBo = BeanUtil.toBean(faultNotesVo, FaultNotesBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FaultNotesVo faultNotesVo1 = null;
+
+            //faultNotesVo1 = faultNotesService.selectBySomefield(faultNotesVo.getSomefield());
+            if (ObjectUtil.isNull(faultNotesVo1)) {
+                //不存在就新增
+                setBo(faultNotesBo);
+                ValidatorUtils.validate(faultNotesBo);
+                boolean inserted = faultNotesService.insert(faultNotesBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、故障注意事项 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、故障注意事项 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                faultNotesBo.setId(faultNotesVo1.getId());//主键
+                faultNotesBo.setVersion(faultNotesVo1.getVersion());
+                boolean updated = faultNotesService.update(faultNotesBo);
+                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(FaultNotesBo faultNotesBo) {
+        faultNotesBo.setVersion(0);
+        faultNotesBo.setCreateBy(loginUser.getUserId());
+        faultNotesBo.setUpdateBy(loginUser.getUserId());
+        faultNotesBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FaultNotesImportVo> 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<FaultNotesImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultPersonnelImportListener.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 org.eco.common.core.exception.BusinessException;
+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.FaultPersonnelBo;
+import org.eco.als.domain.vo.FaultPersonnelImportVo;
+import org.eco.als.domain.vo.FaultPersonnelVo;
+import org.eco.als.service.IFaultPersonnelService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 故障操作人员自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FaultPersonnelImportListener extends AnalysisEventListener<FaultPersonnelImportVo> implements ExcelListener<FaultPersonnelImportVo> {
+    private final IFaultPersonnelService faultPersonnelService;
+
+    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();
+
+    public FaultPersonnelImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultPersonnelService = SpringUtils.getBean(IFaultPersonnelService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FaultPersonnelImportVo faultPersonnelVo, AnalysisContext context) {
+        try {
+
+            FaultPersonnelBo faultPersonnelBo = BeanUtil.toBean(faultPersonnelVo, FaultPersonnelBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FaultPersonnelVo faultPersonnelVo1 = null;
+
+            //faultPersonnelVo1 = faultPersonnelService.selectBySomefield(faultPersonnelVo.getSomefield());
+            if (ObjectUtil.isNull(faultPersonnelVo1)) {
+                //不存在就新增
+                setBo(faultPersonnelBo);
+                ValidatorUtils.validate(faultPersonnelBo);
+                boolean inserted = faultPersonnelService.insert(faultPersonnelBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、故障操作人员 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、故障操作人员 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                faultPersonnelBo.setId(faultPersonnelVo1.getId());//主键
+                faultPersonnelBo.setVersion(faultPersonnelVo1.getVersion());
+                boolean updated = faultPersonnelService.update(faultPersonnelBo);
+                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(FaultPersonnelBo faultPersonnelBo) {
+        faultPersonnelBo.setVersion(0);
+        faultPersonnelBo.setCreateBy(loginUser.getUserId());
+        faultPersonnelBo.setUpdateBy(loginUser.getUserId());
+        faultPersonnelBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FaultPersonnelImportVo> 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<FaultPersonnelImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultSetpsImportListener.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 org.eco.common.core.exception.BusinessException;
+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.FaultSetpsBo;
+import org.eco.als.domain.vo.FaultSetpsImportVo;
+import org.eco.als.domain.vo.FaultSetpsVo;
+import org.eco.als.service.IFaultSetpsService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 故障操作步骤自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FaultSetpsImportListener extends AnalysisEventListener<FaultSetpsImportVo> implements ExcelListener<FaultSetpsImportVo> {
+    private final IFaultSetpsService faultSetpsService;
+
+    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();
+
+    public FaultSetpsImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultSetpsService = SpringUtils.getBean(IFaultSetpsService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FaultSetpsImportVo faultSetpsVo, AnalysisContext context) {
+        try {
+
+            FaultSetpsBo faultSetpsBo = BeanUtil.toBean(faultSetpsVo, FaultSetpsBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FaultSetpsVo faultSetpsVo1 = null;
+
+            //faultSetpsVo1 = faultSetpsService.selectBySomefield(faultSetpsVo.getSomefield());
+            if (ObjectUtil.isNull(faultSetpsVo1)) {
+                //不存在就新增
+                setBo(faultSetpsBo);
+                ValidatorUtils.validate(faultSetpsBo);
+                boolean inserted = faultSetpsService.insert(faultSetpsBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、故障操作步骤 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、故障操作步骤 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                faultSetpsBo.setId(faultSetpsVo1.getId());//主键
+                faultSetpsBo.setVersion(faultSetpsVo1.getVersion());
+                boolean updated = faultSetpsService.update(faultSetpsBo);
+                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(FaultSetpsBo faultSetpsBo) {
+        faultSetpsBo.setVersion(0);
+        faultSetpsBo.setCreateBy(loginUser.getUserId());
+        faultSetpsBo.setUpdateBy(loginUser.getUserId());
+        faultSetpsBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FaultSetpsImportVo> 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<FaultSetpsImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/FaultSparePartsImportListener.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 org.eco.common.core.exception.BusinessException;
+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.FaultSparePartsBo;
+import org.eco.als.domain.vo.FaultSparePartsImportVo;
+import org.eco.als.domain.vo.FaultSparePartsVo;
+import org.eco.als.service.IFaultSparePartsService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 故障所需备件自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class FaultSparePartsImportListener extends AnalysisEventListener<FaultSparePartsImportVo> implements ExcelListener<FaultSparePartsImportVo> {
+    private final IFaultSparePartsService faultSparePartsService;
+
+    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();
+
+    public FaultSparePartsImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.faultSparePartsService = SpringUtils.getBean(IFaultSparePartsService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(FaultSparePartsImportVo faultSparePartsVo, AnalysisContext context) {
+        try {
+
+            FaultSparePartsBo faultSparePartsBo = BeanUtil.toBean(faultSparePartsVo, FaultSparePartsBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            FaultSparePartsVo faultSparePartsVo1 = null;
+
+            //faultSparePartsVo1 = faultSparePartsService.selectBySomefield(faultSparePartsVo.getSomefield());
+            if (ObjectUtil.isNull(faultSparePartsVo1)) {
+                //不存在就新增
+                setBo(faultSparePartsBo);
+                ValidatorUtils.validate(faultSparePartsBo);
+                boolean inserted = faultSparePartsService.insert(faultSparePartsBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、故障所需备件 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、故障所需备件 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                faultSparePartsBo.setId(faultSparePartsVo1.getId());//主键
+                faultSparePartsBo.setVersion(faultSparePartsVo1.getVersion());
+                boolean updated = faultSparePartsService.update(faultSparePartsBo);
+                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(FaultSparePartsBo faultSparePartsBo) {
+        faultSparePartsBo.setVersion(0);
+        faultSparePartsBo.setCreateBy(loginUser.getUserId());
+        faultSparePartsBo.setUpdateBy(loginUser.getUserId());
+        faultSparePartsBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<FaultSparePartsImportVo> 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<FaultSparePartsImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/MaintenanceImportListener.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 org.eco.common.core.exception.BusinessException;
+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.MaintenanceBo;
+import org.eco.als.domain.vo.MaintenanceImportVo;
+import org.eco.als.domain.vo.MaintenanceVo;
+import org.eco.als.service.IMaintenanceService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 维修信息自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class MaintenanceImportListener extends AnalysisEventListener<MaintenanceImportVo> implements ExcelListener<MaintenanceImportVo> {
+    private final IMaintenanceService maintenanceService;
+
+    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();
+
+    public MaintenanceImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.maintenanceService = SpringUtils.getBean(IMaintenanceService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(MaintenanceImportVo maintenanceVo, AnalysisContext context) {
+        try {
+
+            MaintenanceBo maintenanceBo = BeanUtil.toBean(maintenanceVo, MaintenanceBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            MaintenanceVo maintenanceVo1 = null;
+
+            //maintenanceVo1 = maintenanceService.selectBySomefield(maintenanceVo.getSomefield());
+            if (ObjectUtil.isNull(maintenanceVo1)) {
+                //不存在就新增
+                setBo(maintenanceBo);
+                ValidatorUtils.validate(maintenanceBo);
+                boolean inserted = maintenanceService.insert(maintenanceBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、维修信息 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、维修信息 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                maintenanceBo.setId(maintenanceVo1.getId());//主键
+                maintenanceBo.setVersion(maintenanceVo1.getVersion());
+                boolean updated = maintenanceService.update(maintenanceBo);
+                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(MaintenanceBo maintenanceBo) {
+        maintenanceBo.setVersion(0);
+        maintenanceBo.setCreateBy(loginUser.getUserId());
+        maintenanceBo.setUpdateBy(loginUser.getUserId());
+        maintenanceBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<MaintenanceImportVo> 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<MaintenanceImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 128 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/PartReplacementImportListener.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 org.eco.common.core.exception.BusinessException;
+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.PartReplacementBo;
+import org.eco.als.domain.vo.PartReplacementImportVo;
+import org.eco.als.domain.vo.PartReplacementVo;
+import org.eco.als.service.IPartReplacementService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 换件记录自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class PartReplacementImportListener extends AnalysisEventListener<PartReplacementImportVo> implements ExcelListener<PartReplacementImportVo> {
+    private final IPartReplacementService partReplacementService;
+
+    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();
+
+    public PartReplacementImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.partReplacementService = SpringUtils.getBean(IPartReplacementService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(PartReplacementImportVo partReplacementVo, AnalysisContext context) {
+        try {
+
+            PartReplacementBo partReplacementBo = BeanUtil.toBean(partReplacementVo, PartReplacementBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            PartReplacementVo partReplacementVo1 = null;
+
+            //partReplacementVo1 = partReplacementService.selectBySomefield(partReplacementVo.getSomefield());
+            if (ObjectUtil.isNull(partReplacementVo1)) {
+                //不存在就新增
+                setBo(partReplacementBo);
+                ValidatorUtils.validate(partReplacementBo);
+                boolean inserted = partReplacementService.insert(partReplacementBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、换件记录 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、换件记录 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                partReplacementBo.setId(partReplacementVo1.getId());//主键
+                partReplacementBo.setVersion(partReplacementVo1.getVersion());
+                boolean updated = partReplacementService.update(partReplacementBo);
+                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(PartReplacementBo partReplacementBo) {
+        partReplacementBo.setVersion(0);
+        partReplacementBo.setCreateBy(loginUser.getUserId());
+        partReplacementBo.setUpdateBy(loginUser.getUserId());
+        partReplacementBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<PartReplacementImportVo> 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<PartReplacementImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/AirConfigurationMapper.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.AirConfiguration;
+
+/**
+ * 飞机构型Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface AirConfigurationMapper extends BaseMapper<AirConfiguration> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/AirInstallMapper.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.AirInstall;
+
+/**
+ * 装机信息Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface AirInstallMapper extends BaseMapper<AirInstall> {
+
+}

+ 3 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/AlsFaultCaseMapper.java → als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultCaseMapper.java

@@ -2,15 +2,15 @@ package org.eco.als.mapper;
 
 import com.mybatisflex.core.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
-import org.eco.als.domain.AlsFaultCase;
+import org.eco.als.domain.FaultCase;
 
 /**
  * 故障案例Mapper接口
  *
  * @author wgk
- * @date 2024-07-18
+ * @date 2024-10-25
  */
 @Mapper
-public interface AlsFaultCaseMapper extends BaseMapper<AlsFaultCase> {
+public interface FaultCaseMapper extends BaseMapper<FaultCase> {
 
 }

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultConsumableMapper.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.FaultConsumable;
+
+/**
+ * 故障所需耗材Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface FaultConsumableMapper extends BaseMapper<FaultConsumable> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultEquipmentMapper.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.FaultEquipment;
+
+/**
+ * 故障所需设备Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface FaultEquipmentMapper extends BaseMapper<FaultEquipment> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultNotesMapper.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.FaultNotes;
+
+/**
+ * 故障注意事项Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface FaultNotesMapper extends BaseMapper<FaultNotes> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultPersonnelMapper.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.FaultPersonnel;
+
+/**
+ * 故障操作人员Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface FaultPersonnelMapper extends BaseMapper<FaultPersonnel> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultSetpsMapper.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.FaultSetps;
+
+/**
+ * 故障操作步骤Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface FaultSetpsMapper extends BaseMapper<FaultSetps> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/FaultSparePartsMapper.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.FaultSpareParts;
+
+/**
+ * 故障所需备件Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface FaultSparePartsMapper extends BaseMapper<FaultSpareParts> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/MaintenanceMapper.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.Maintenance;
+
+/**
+ * 维修信息Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface MaintenanceMapper extends BaseMapper<Maintenance> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/PartReplacementMapper.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.PartReplacement;
+
+/**
+ * 换件记录Mapper接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Mapper
+public interface PartReplacementMapper extends BaseMapper<PartReplacement> {
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IAirConfigurationService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.AirConfiguration;
+import org.eco.als.domain.vo.AirConfigurationVo;
+import org.eco.als.domain.bo.AirConfigurationBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 飞机构型Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IAirConfigurationService extends IBaseService<AirConfiguration> {
+    /**
+     * 查询飞机构型
+     *
+     * @param id 飞机构型主键
+     * @return 飞机构型
+     */
+        AirConfigurationVo selectById(Long id);
+    /**
+     * 查询飞机构型列表
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 飞机构型集合
+     */
+    List<AirConfigurationVo> selectList(AirConfigurationBo airConfigurationBo);
+
+    /**
+     * 分页查询飞机构型列表
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 分页飞机构型集合
+     */
+    PageResult<AirConfigurationVo> selectPage(AirConfigurationBo airConfigurationBo);
+
+    /**
+     * 新增飞机构型
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(AirConfigurationBo airConfigurationBo);
+
+    /**
+     * 新增飞机构型,前台提供主键值,一般用于导入的场合
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(AirConfigurationBo airConfigurationBo);
+
+    /**
+     * 修改飞机构型
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(AirConfigurationBo airConfigurationBo);
+
+    /**
+     * 批量删除飞机构型
+     *
+     * @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<AirConfigurationVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IAirInstallService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.AirInstall;
+import org.eco.als.domain.vo.AirInstallVo;
+import org.eco.als.domain.bo.AirInstallBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 装机信息Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IAirInstallService extends IBaseService<AirInstall> {
+    /**
+     * 查询装机信息
+     *
+     * @param id 装机信息主键
+     * @return 装机信息
+     */
+        AirInstallVo selectById(Long id);
+    /**
+     * 查询装机信息列表
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 装机信息集合
+     */
+    List<AirInstallVo> selectList(AirInstallBo airInstallBo);
+
+    /**
+     * 分页查询装机信息列表
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 分页装机信息集合
+     */
+    PageResult<AirInstallVo> selectPage(AirInstallBo airInstallBo);
+
+    /**
+     * 新增装机信息
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(AirInstallBo airInstallBo);
+
+    /**
+     * 新增装机信息,前台提供主键值,一般用于导入的场合
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(AirInstallBo airInstallBo);
+
+    /**
+     * 修改装机信息
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(AirInstallBo airInstallBo);
+
+    /**
+     * 批量删除装机信息
+     *
+     * @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<AirInstallVo> listVo, String sheetName, LoginUser user);
+
+}

+ 19 - 21
als-modules/agile-assurance/src/main/java/org/eco/als/service/IAlsFaultCaseService.java → als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultCaseService.java

@@ -1,70 +1,68 @@
 package org.eco.als.service;
 
-import org.eco.als.domain.AlsFaultCase;
-import org.eco.als.domain.bo.AlsFaultCaseBo;
-import org.eco.als.domain.vo.AlsFaultCaseVo;
+import java.util.List;
 import org.eco.common.core.core.domain.model.LoginUser;
-import org.eco.common.core.core.page.PageResult;
+import org.eco.als.domain.FaultCase;
+import org.eco.als.domain.vo.FaultCaseVo;
+import org.eco.als.domain.bo.FaultCaseBo;
 import org.eco.common.orm.core.service.IBaseService;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.multipart.MultipartFile;
-
-import java.util.List;
+import org.eco.common.core.core.page.PageResult;
 
 /**
  * 故障案例Service接口
  *
  * @author wgk
- * @date 2024-07-18
+ * @date 2024-10-25
  */
-public interface IAlsFaultCaseService extends IBaseService<AlsFaultCase> {
+public interface IFaultCaseService extends IBaseService<FaultCase> {
     /**
      * 查询故障案例
      *
      * @param id 故障案例主键
      * @return 故障案例
      */
-    AlsFaultCaseVo selectById(Long id);
-
+        FaultCaseVo selectById(Long id);
     /**
      * 查询故障案例列表
      *
-     * @param alsFaultCaseBo 故障案例Bo
+     * @param faultCaseBo 故障案例Bo
      * @return 故障案例集合
      */
-    List<AlsFaultCaseVo> selectList(AlsFaultCaseBo alsFaultCaseBo);
+    List<FaultCaseVo> selectList(FaultCaseBo faultCaseBo);
 
     /**
      * 分页查询故障案例列表
      *
-     * @param alsFaultCaseBo 故障案例Bo
+     * @param faultCaseBo 故障案例Bo
      * @return 分页故障案例集合
      */
-    PageResult<AlsFaultCaseVo> selectPage(AlsFaultCaseBo alsFaultCaseBo);
+    PageResult<FaultCaseVo> selectPage(FaultCaseBo faultCaseBo);
 
     /**
      * 新增故障案例
      *
-     * @param alsFaultCaseBo 故障案例Bo
+     * @param faultCaseBo 故障案例Bo
      * @return 结果:true 操作成功,false 操作失败
      */
-    boolean insert(AlsFaultCaseBo alsFaultCaseBo);
+    boolean insert(FaultCaseBo faultCaseBo);
 
     /**
      * 新增故障案例,前台提供主键值,一般用于导入的场合
      *
-     * @param alsFaultCaseBo 故障案例Bo
+     * @param faultCaseBo 故障案例Bo
      * @return 结果:true 操作成功,false 操作失败
      */
-    boolean insertWithPk(AlsFaultCaseBo alsFaultCaseBo);
+    boolean insertWithPk(FaultCaseBo faultCaseBo);
 
     /**
      * 修改故障案例
      *
-     * @param alsFaultCaseBo 故障案例Bo
+     * @param faultCaseBo 故障案例Bo
      * @return 结果:true 更新成功,false 更新失败
      */
-    boolean update(AlsFaultCaseBo alsFaultCaseBo);
+    boolean update(FaultCaseBo faultCaseBo);
 
     /**
      * 批量删除故障案例
@@ -92,6 +90,6 @@ public interface IAlsFaultCaseService extends IBaseService<AlsFaultCase> {
      * @param user      上下文
      */
     @Async
-    void asyncExport(List<AlsFaultCaseVo> listVo, String sheetName, LoginUser user);
+    void asyncExport(List<FaultCaseVo> listVo, String sheetName, LoginUser user);
 
 }

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultConsumableService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.FaultConsumable;
+import org.eco.als.domain.vo.FaultConsumableVo;
+import org.eco.als.domain.bo.FaultConsumableBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 故障所需耗材Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IFaultConsumableService extends IBaseService<FaultConsumable> {
+    /**
+     * 查询故障所需耗材
+     *
+     * @param id 故障所需耗材主键
+     * @return 故障所需耗材
+     */
+        FaultConsumableVo selectById(Long id);
+    /**
+     * 查询故障所需耗材列表
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 故障所需耗材集合
+     */
+    List<FaultConsumableVo> selectList(FaultConsumableBo faultConsumableBo);
+
+    /**
+     * 分页查询故障所需耗材列表
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 分页故障所需耗材集合
+     */
+    PageResult<FaultConsumableVo> selectPage(FaultConsumableBo faultConsumableBo);
+
+    /**
+     * 新增故障所需耗材
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FaultConsumableBo faultConsumableBo);
+
+    /**
+     * 新增故障所需耗材,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FaultConsumableBo faultConsumableBo);
+
+    /**
+     * 修改故障所需耗材
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FaultConsumableBo faultConsumableBo);
+
+    /**
+     * 批量删除故障所需耗材
+     *
+     * @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<FaultConsumableVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultEquipmentService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.FaultEquipment;
+import org.eco.als.domain.vo.FaultEquipmentVo;
+import org.eco.als.domain.bo.FaultEquipmentBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 故障所需设备Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IFaultEquipmentService extends IBaseService<FaultEquipment> {
+    /**
+     * 查询故障所需设备
+     *
+     * @param id 故障所需设备主键
+     * @return 故障所需设备
+     */
+        FaultEquipmentVo selectById(Long id);
+    /**
+     * 查询故障所需设备列表
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 故障所需设备集合
+     */
+    List<FaultEquipmentVo> selectList(FaultEquipmentBo faultEquipmentBo);
+
+    /**
+     * 分页查询故障所需设备列表
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 分页故障所需设备集合
+     */
+    PageResult<FaultEquipmentVo> selectPage(FaultEquipmentBo faultEquipmentBo);
+
+    /**
+     * 新增故障所需设备
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FaultEquipmentBo faultEquipmentBo);
+
+    /**
+     * 新增故障所需设备,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FaultEquipmentBo faultEquipmentBo);
+
+    /**
+     * 修改故障所需设备
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FaultEquipmentBo faultEquipmentBo);
+
+    /**
+     * 批量删除故障所需设备
+     *
+     * @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<FaultEquipmentVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultNotesService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.FaultNotes;
+import org.eco.als.domain.vo.FaultNotesVo;
+import org.eco.als.domain.bo.FaultNotesBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 故障注意事项Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IFaultNotesService extends IBaseService<FaultNotes> {
+    /**
+     * 查询故障注意事项
+     *
+     * @param id 故障注意事项主键
+     * @return 故障注意事项
+     */
+        FaultNotesVo selectById(Long id);
+    /**
+     * 查询故障注意事项列表
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 故障注意事项集合
+     */
+    List<FaultNotesVo> selectList(FaultNotesBo faultNotesBo);
+
+    /**
+     * 分页查询故障注意事项列表
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 分页故障注意事项集合
+     */
+    PageResult<FaultNotesVo> selectPage(FaultNotesBo faultNotesBo);
+
+    /**
+     * 新增故障注意事项
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FaultNotesBo faultNotesBo);
+
+    /**
+     * 新增故障注意事项,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FaultNotesBo faultNotesBo);
+
+    /**
+     * 修改故障注意事项
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FaultNotesBo faultNotesBo);
+
+    /**
+     * 批量删除故障注意事项
+     *
+     * @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<FaultNotesVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultPersonnelService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.FaultPersonnel;
+import org.eco.als.domain.vo.FaultPersonnelVo;
+import org.eco.als.domain.bo.FaultPersonnelBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 故障操作人员Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IFaultPersonnelService extends IBaseService<FaultPersonnel> {
+    /**
+     * 查询故障操作人员
+     *
+     * @param id 故障操作人员主键
+     * @return 故障操作人员
+     */
+        FaultPersonnelVo selectById(Long id);
+    /**
+     * 查询故障操作人员列表
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 故障操作人员集合
+     */
+    List<FaultPersonnelVo> selectList(FaultPersonnelBo faultPersonnelBo);
+
+    /**
+     * 分页查询故障操作人员列表
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 分页故障操作人员集合
+     */
+    PageResult<FaultPersonnelVo> selectPage(FaultPersonnelBo faultPersonnelBo);
+
+    /**
+     * 新增故障操作人员
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FaultPersonnelBo faultPersonnelBo);
+
+    /**
+     * 新增故障操作人员,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FaultPersonnelBo faultPersonnelBo);
+
+    /**
+     * 修改故障操作人员
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FaultPersonnelBo faultPersonnelBo);
+
+    /**
+     * 批量删除故障操作人员
+     *
+     * @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<FaultPersonnelVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultSetpsService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.FaultSetps;
+import org.eco.als.domain.vo.FaultSetpsVo;
+import org.eco.als.domain.bo.FaultSetpsBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 故障操作步骤Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IFaultSetpsService extends IBaseService<FaultSetps> {
+    /**
+     * 查询故障操作步骤
+     *
+     * @param id 故障操作步骤主键
+     * @return 故障操作步骤
+     */
+        FaultSetpsVo selectById(Long id);
+    /**
+     * 查询故障操作步骤列表
+     *
+     * @param faultSetpsBo 故障操作步骤Bo
+     * @return 故障操作步骤集合
+     */
+    List<FaultSetpsVo> selectList(FaultSetpsBo faultSetpsBo);
+
+    /**
+     * 分页查询故障操作步骤列表
+     *
+     * @param faultSetpsBo 故障操作步骤Bo
+     * @return 分页故障操作步骤集合
+     */
+    PageResult<FaultSetpsVo> selectPage(FaultSetpsBo faultSetpsBo);
+
+    /**
+     * 新增故障操作步骤
+     *
+     * @param faultSetpsBo 故障操作步骤Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FaultSetpsBo faultSetpsBo);
+
+    /**
+     * 新增故障操作步骤,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultSetpsBo 故障操作步骤Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FaultSetpsBo faultSetpsBo);
+
+    /**
+     * 修改故障操作步骤
+     *
+     * @param faultSetpsBo 故障操作步骤Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FaultSetpsBo faultSetpsBo);
+
+    /**
+     * 批量删除故障操作步骤
+     *
+     * @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<FaultSetpsVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultSparePartsService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.FaultSpareParts;
+import org.eco.als.domain.vo.FaultSparePartsVo;
+import org.eco.als.domain.bo.FaultSparePartsBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 故障所需备件Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IFaultSparePartsService extends IBaseService<FaultSpareParts> {
+    /**
+     * 查询故障所需备件
+     *
+     * @param id 故障所需备件主键
+     * @return 故障所需备件
+     */
+        FaultSparePartsVo selectById(Long id);
+    /**
+     * 查询故障所需备件列表
+     *
+     * @param faultSparePartsBo 故障所需备件Bo
+     * @return 故障所需备件集合
+     */
+    List<FaultSparePartsVo> selectList(FaultSparePartsBo faultSparePartsBo);
+
+    /**
+     * 分页查询故障所需备件列表
+     *
+     * @param faultSparePartsBo 故障所需备件Bo
+     * @return 分页故障所需备件集合
+     */
+    PageResult<FaultSparePartsVo> selectPage(FaultSparePartsBo faultSparePartsBo);
+
+    /**
+     * 新增故障所需备件
+     *
+     * @param faultSparePartsBo 故障所需备件Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(FaultSparePartsBo faultSparePartsBo);
+
+    /**
+     * 新增故障所需备件,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultSparePartsBo 故障所需备件Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(FaultSparePartsBo faultSparePartsBo);
+
+    /**
+     * 修改故障所需备件
+     *
+     * @param faultSparePartsBo 故障所需备件Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(FaultSparePartsBo faultSparePartsBo);
+
+    /**
+     * 批量删除故障所需备件
+     *
+     * @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<FaultSparePartsVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IMaintenanceService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.Maintenance;
+import org.eco.als.domain.vo.MaintenanceVo;
+import org.eco.als.domain.bo.MaintenanceBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 维修信息Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IMaintenanceService extends IBaseService<Maintenance> {
+    /**
+     * 查询维修信息
+     *
+     * @param id 维修信息主键
+     * @return 维修信息
+     */
+        MaintenanceVo selectById(Long id);
+    /**
+     * 查询维修信息列表
+     *
+     * @param maintenanceBo 维修信息Bo
+     * @return 维修信息集合
+     */
+    List<MaintenanceVo> selectList(MaintenanceBo maintenanceBo);
+
+    /**
+     * 分页查询维修信息列表
+     *
+     * @param maintenanceBo 维修信息Bo
+     * @return 分页维修信息集合
+     */
+    PageResult<MaintenanceVo> selectPage(MaintenanceBo maintenanceBo);
+
+    /**
+     * 新增维修信息
+     *
+     * @param maintenanceBo 维修信息Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(MaintenanceBo maintenanceBo);
+
+    /**
+     * 新增维修信息,前台提供主键值,一般用于导入的场合
+     *
+     * @param maintenanceBo 维修信息Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(MaintenanceBo maintenanceBo);
+
+    /**
+     * 修改维修信息
+     *
+     * @param maintenanceBo 维修信息Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(MaintenanceBo maintenanceBo);
+
+    /**
+     * 批量删除维修信息
+     *
+     * @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<MaintenanceVo> listVo, String sheetName, LoginUser user);
+
+}

+ 95 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IPartReplacementService.java

@@ -0,0 +1,95 @@
+package org.eco.als.service;
+
+import java.util.List;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.als.domain.PartReplacement;
+import org.eco.als.domain.vo.PartReplacementVo;
+import org.eco.als.domain.bo.PartReplacementBo;
+import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
+
+/**
+ * 换件记录Service接口
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+public interface IPartReplacementService extends IBaseService<PartReplacement> {
+    /**
+     * 查询换件记录
+     *
+     * @param id 换件记录主键
+     * @return 换件记录
+     */
+        PartReplacementVo selectById(Long id);
+    /**
+     * 查询换件记录列表
+     *
+     * @param partReplacementBo 换件记录Bo
+     * @return 换件记录集合
+     */
+    List<PartReplacementVo> selectList(PartReplacementBo partReplacementBo);
+
+    /**
+     * 分页查询换件记录列表
+     *
+     * @param partReplacementBo 换件记录Bo
+     * @return 分页换件记录集合
+     */
+    PageResult<PartReplacementVo> selectPage(PartReplacementBo partReplacementBo);
+
+    /**
+     * 新增换件记录
+     *
+     * @param partReplacementBo 换件记录Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(PartReplacementBo partReplacementBo);
+
+    /**
+     * 新增换件记录,前台提供主键值,一般用于导入的场合
+     *
+     * @param partReplacementBo 换件记录Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insertWithPk(PartReplacementBo partReplacementBo);
+
+    /**
+     * 修改换件记录
+     *
+     * @param partReplacementBo 换件记录Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    boolean update(PartReplacementBo partReplacementBo);
+
+    /**
+     * 批量删除换件记录
+     *
+     * @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<PartReplacementVo> listVo, String sheetName, LoginUser user);
+
+}

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

@@ -0,0 +1,196 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.AirConfigurationMapper;
+import org.eco.als.domain.AirConfiguration;
+import org.eco.als.domain.bo.AirConfigurationBo;
+import org.eco.als.domain.vo.AirConfigurationVo;
+import org.eco.als.domain.vo.AirConfigurationImportVo;
+import org.eco.als.listener.AirConfigurationImportListener;
+import org.eco.als.service.IAirConfigurationService;
+import static org.eco.als.domain.table.AirConfigurationTableDef.AIR_CONFIGURATION;
+
+/**
+ * 飞机构型Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class AirConfigurationServiceImpl extends BaseServiceImpl<AirConfigurationMapper, AirConfiguration> implements IAirConfigurationService {
+    @Resource
+    private AirConfigurationMapper airConfigurationMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(AIR_CONFIGURATION);
+    }
+
+    private QueryWrapper buildQueryWrapper(AirConfigurationBo airConfigurationBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(AIR_CONFIGURATION.AIRCRAFT_TYPE.eq
+        (airConfigurationBo.getAircraftType()));
+        queryWrapper.and(AIR_CONFIGURATION.CON_CODE.eq
+        (airConfigurationBo.getConCode()));
+        queryWrapper.and(AIR_CONFIGURATION.NAME.like
+        (airConfigurationBo.getName()));
+        queryWrapper.and(AIR_CONFIGURATION.SPECS_MODEL.eq
+        (airConfigurationBo.getSpecsModel()));
+        queryWrapper.and(AIR_CONFIGURATION.DRAWING_NUMBER.eq
+        (airConfigurationBo.getDrawingNumber()));
+        queryWrapper.and(AIR_CONFIGURATION.SUPPLIER.eq
+        (airConfigurationBo.getSupplier()));
+        queryWrapper.and(AIR_CONFIGURATION.REMARKS.eq
+        (airConfigurationBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询飞机构型
+     *
+     * @param id 飞机构型主键
+     * @return 飞机构型
+     */
+    @Override
+    public AirConfigurationVo selectById(Long id) {
+            return this.getOneAs(query().where(AIR_CONFIGURATION.ID.eq(id)), AirConfigurationVo.class);
+
+    }
+
+
+    /**
+     * 查询飞机构型列表
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 飞机构型集合
+     */
+    @Override
+    public List<AirConfigurationVo> selectList(AirConfigurationBo airConfigurationBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(airConfigurationBo);
+            return this.listAs(queryWrapper, AirConfigurationVo.class);
+    }
+
+    /**
+     * 分页查询飞机构型列表
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 分页飞机构型集合
+     */
+    @Override
+    public PageResult<AirConfigurationVo> selectPage(AirConfigurationBo airConfigurationBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(airConfigurationBo);
+            Page<AirConfigurationVo> page = this.pageAs(PageQuery.build(), queryWrapper, AirConfigurationVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增飞机构型
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(AirConfigurationBo airConfigurationBo) {
+    AirConfiguration airConfiguration =MapstructUtils.convert(airConfigurationBo, AirConfiguration. class);
+
+        return this.save(airConfiguration);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增飞机构型,前台提供主键值,一般用于导入的场合
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(AirConfigurationBo airConfigurationBo)
+    {
+        AirConfiguration airConfiguration = MapstructUtils.convert(airConfigurationBo, AirConfiguration.class);
+
+
+            return airConfigurationMapper.insertWithPk(airConfiguration) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改飞机构型
+     *
+     * @param airConfigurationBo 飞机构型Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(AirConfigurationBo airConfigurationBo) {
+        AirConfiguration airConfiguration =MapstructUtils.convert(airConfigurationBo, AirConfiguration. class);
+        if (ObjectUtil.isNotNull(airConfiguration) && ObjectUtil.isNotNull(airConfiguration.getId())){
+            boolean updated = this.updateById(airConfiguration);
+                return updated;
+        }
+        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, AirConfigurationImportVo.class, new AirConfigurationImportListener(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<AirConfigurationVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, AirConfigurationVo.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/AirInstallServiceImpl.java

@@ -0,0 +1,204 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.AirInstallMapper;
+import org.eco.als.domain.AirInstall;
+import org.eco.als.domain.bo.AirInstallBo;
+import org.eco.als.domain.vo.AirInstallVo;
+import org.eco.als.domain.vo.AirInstallImportVo;
+import org.eco.als.listener.AirInstallImportListener;
+import org.eco.als.service.IAirInstallService;
+import static org.eco.als.domain.table.AirInstallTableDef.AIR_INSTALL;
+
+/**
+ * 装机信息Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class AirInstallServiceImpl extends BaseServiceImpl<AirInstallMapper, AirInstall> implements IAirInstallService {
+    @Resource
+    private AirInstallMapper airInstallMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(AIR_INSTALL);
+    }
+
+    private QueryWrapper buildQueryWrapper(AirInstallBo airInstallBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(AIR_INSTALL.MATERIAL_CODE.eq
+        (airInstallBo.getMaterialCode()));
+        queryWrapper.and(AIR_INSTALL.MATERIAL_NAME.like
+        (airInstallBo.getMaterialName()));
+        queryWrapper.and(AIR_INSTALL.SPECS_MODEL.eq
+        (airInstallBo.getSpecsModel()));
+        queryWrapper.and(AIR_INSTALL.DRAWING_NUMBER.eq
+        (airInstallBo.getDrawingNumber()));
+        queryWrapper.and(AIR_INSTALL.CATEGORY.eq
+        (airInstallBo.getCategory()));
+        queryWrapper.and(AIR_INSTALL.QUANTITY.eq
+        (airInstallBo.getQuantity()));
+        queryWrapper.and(AIR_INSTALL.INSTALL_TIME.eq
+        (airInstallBo.getInstallTime()));
+        queryWrapper.and(AIR_INSTALL.REPAIRABLE.eq
+        (airInstallBo.getRepairable()));
+        queryWrapper.and(AIR_INSTALL.COMPLETE_SET.eq
+        (airInstallBo.getCompleteSet()));
+        queryWrapper.and(AIR_INSTALL.SERVICE_LIFE.eq
+        (airInstallBo.getServiceLife()));
+        queryWrapper.and(AIR_INSTALL.REMARKS.eq
+        (airInstallBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询装机信息
+     *
+     * @param id 装机信息主键
+     * @return 装机信息
+     */
+    @Override
+    public AirInstallVo selectById(Long id) {
+            return this.getOneAs(query().where(AIR_INSTALL.ID.eq(id)), AirInstallVo.class);
+
+    }
+
+
+    /**
+     * 查询装机信息列表
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 装机信息集合
+     */
+    @Override
+    public List<AirInstallVo> selectList(AirInstallBo airInstallBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(airInstallBo);
+            return this.listAs(queryWrapper, AirInstallVo.class);
+    }
+
+    /**
+     * 分页查询装机信息列表
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 分页装机信息集合
+     */
+    @Override
+    public PageResult<AirInstallVo> selectPage(AirInstallBo airInstallBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(airInstallBo);
+            Page<AirInstallVo> page = this.pageAs(PageQuery.build(), queryWrapper, AirInstallVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增装机信息
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(AirInstallBo airInstallBo) {
+    AirInstall airInstall =MapstructUtils.convert(airInstallBo, AirInstall. class);
+
+        return this.save(airInstall);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增装机信息,前台提供主键值,一般用于导入的场合
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(AirInstallBo airInstallBo)
+    {
+        AirInstall airInstall = MapstructUtils.convert(airInstallBo, AirInstall.class);
+
+
+            return airInstallMapper.insertWithPk(airInstall) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改装机信息
+     *
+     * @param airInstallBo 装机信息Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(AirInstallBo airInstallBo) {
+        AirInstall airInstall =MapstructUtils.convert(airInstallBo, AirInstall. class);
+        if (ObjectUtil.isNotNull(airInstall) && ObjectUtil.isNotNull(airInstall.getId())){
+            boolean updated = this.updateById(airInstall);
+                return updated;
+        }
+        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, AirInstallImportVo.class, new AirInstallImportListener(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<AirInstallVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, AirInstallVo.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));
+    }
+
+}

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

@@ -1,200 +0,0 @@
-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.AlsFaultCase;
-import org.eco.als.domain.bo.AlsFaultCaseBo;
-import org.eco.als.domain.vo.AlsFaultCaseImportVo;
-import org.eco.als.domain.vo.AlsFaultCaseVo;
-import org.eco.als.listener.AlsFaultCaseImportListener;
-import org.eco.als.mapper.AlsFaultCaseMapper;
-import org.eco.als.service.IAlsFaultCaseService;
-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.core.utils.bean.BeanUtils;
-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.domain.bo.ImportExportBo;
-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.AlsFaultCaseTableDef.ALS_FAULT_CASE;
-
-/**
- * 故障案例Service业务层处理
- *
- * @author wgk
- * @date 2024-07-18
- */
-@Service
-@Slf4j
-public class AlsFaultCaseServiceImpl extends BaseServiceImpl<AlsFaultCaseMapper, AlsFaultCase> implements IAlsFaultCaseService {
-    @Resource
-    private AlsFaultCaseMapper alsFaultCaseMapper;
-
-    @Resource
-    private IExcelService excelService;
-
-    @Resource
-    private IImportExportService importExportService;
-
-    @Override
-    public QueryWrapper query() {
-        return super.query().from(ALS_FAULT_CASE);
-    }
-
-    private QueryWrapper buildQueryWrapper(AlsFaultCaseBo alsFaultCaseBo) {
-        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
-        queryWrapper.and(ALS_FAULT_CASE.AIRCRAFT_TYPE.eq
-            (alsFaultCaseBo.getAircraftType()));
-        queryWrapper.and(ALS_FAULT_CASE.UNIT_NAME.like
-            (alsFaultCaseBo.getUnitName()));
-        queryWrapper.and(ALS_FAULT_CASE.ITEM_NAME.like
-            (alsFaultCaseBo.getItemName()));
-        queryWrapper.and(ALS_FAULT_CASE.OCCUR_DATE.eq
-            (alsFaultCaseBo.getOccurDate()));
-        queryWrapper.and(ALS_FAULT_CASE.SYSTEM_NAME.like
-            (alsFaultCaseBo.getSystemName()));
-
-        return queryWrapper;
-    }
-
-    /**
-     * 查询故障案例
-     *
-     * @param id 故障案例主键
-     * @return 故障案例
-     */
-    @Override
-    public AlsFaultCaseVo selectById(Long id) {
-        return this.getOneAs(query().where(ALS_FAULT_CASE.ID.eq(id)), AlsFaultCaseVo.class);
-
-    }
-
-    /**
-     * 查询故障案例列表
-     *
-     * @param alsFaultCaseBo 故障案例Bo
-     * @return 故障案例集合
-     */
-    @Override
-    public List<AlsFaultCaseVo> selectList(AlsFaultCaseBo alsFaultCaseBo) {
-        QueryWrapper queryWrapper = buildQueryWrapper(alsFaultCaseBo);
-        return this.listAs(queryWrapper, AlsFaultCaseVo.class);
-    }
-
-    /**
-     * 分页查询故障案例列表
-     *
-     * @param alsFaultCaseBo 故障案例Bo
-     * @return 分页故障案例集合
-     */
-    @Override
-    public PageResult<AlsFaultCaseVo> selectPage(AlsFaultCaseBo alsFaultCaseBo) {
-        QueryWrapper queryWrapper = buildQueryWrapper(alsFaultCaseBo);
-        Page<AlsFaultCaseVo> page = this.pageAs(PageQuery.build(), queryWrapper, AlsFaultCaseVo.class);
-        return PageResult.build(page);
-    }
-
-    /**
-     * 新增故障案例
-     *
-     * @param alsFaultCaseBo 故障案例Bo
-     * @return 结果:true 操作成功,false 操作失败
-     */
-    @Override
-    public boolean insert(AlsFaultCaseBo alsFaultCaseBo) {
-        AlsFaultCase alsFaultCase = MapstructUtils.convert(alsFaultCaseBo, AlsFaultCase.class);
-
-        return this.save(alsFaultCase);//使用全局配置的雪花算法主键生成器生成ID值
-    }
-
-    /**
-     * 新增故障案例,前台提供主键值,一般用于导入的场合
-     *
-     * @param alsFaultCaseBo 故障案例Bo
-     * @return 结果:true 操作成功,false 操作失败
-     */
-    @Override
-    public boolean insertWithPk(AlsFaultCaseBo alsFaultCaseBo) {
-        AlsFaultCase alsFaultCase = MapstructUtils.convert(alsFaultCaseBo, AlsFaultCase.class);
-
-
-        return alsFaultCaseMapper.insertWithPk(alsFaultCase) > 0;//前台传来主键值
-    }
-
-    /**
-     * 修改故障案例
-     *
-     * @param alsFaultCaseBo 故障案例Bo
-     * @return 结果:true 更新成功,false 更新失败
-     */
-    @Override
-    public boolean update(AlsFaultCaseBo alsFaultCaseBo) {
-        AlsFaultCase alsFaultCase = MapstructUtils.convert(alsFaultCaseBo, AlsFaultCase.class);
-        if (ObjectUtil.isNotNull(alsFaultCase) && ObjectUtil.isNotNull(alsFaultCase.getId())) {
-            boolean updated = this.updateById(alsFaultCase);
-            return updated;
-        }
-        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, AlsFaultCaseImportVo.class, new AlsFaultCaseImportListener(updateSupport, loginUser));
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-        ImportExportBo bo = new ImportExportBo();
-        BeanUtils.copyProperties(result, bo);
-        bo.setUpdateBy(loginUser.getUserId());
-        bo.setCreateBy(loginUser.getUserId());
-        bo.setType("0");
-        boolean flag = importExportService.insert(bo);
-        if (flag) {
-            log.info("异步导入日志写入成功");
-        }
-    }
-
-    @Override
-    public void asyncExport(List<AlsFaultCaseVo> listVo, String sheetName, LoginUser loginUser) {
-        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, AlsFaultCaseVo.class);
-        ImportExportBo bo = new ImportExportBo();
-        BeanUtils.copyProperties(result, bo);
-        bo.setUpdateBy(loginUser.getUserId());
-        bo.setCreateBy(loginUser.getUserId());
-        bo.setType("1");
-        boolean flag = importExportService.insert(bo);
-        if (flag) {
-            log.info("异步导出日志写入成功");
-        }
-    }
-
-    /**
-     * 批量删除故障案例
-     *
-     * @param ids 需要删除的故障案例主键集合
-     * @return 结果:true 删除成功,false 删除失败
-     */
-    @Transactional
-    @Override
-    public boolean deleteByIds(Long[] ids) {
-        return this.removeByIds(Arrays.asList(ids));
-    }
-
-}

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

@@ -0,0 +1,198 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.FaultCaseMapper;
+import org.eco.als.domain.FaultCase;
+import org.eco.als.domain.bo.FaultCaseBo;
+import org.eco.als.domain.vo.FaultCaseVo;
+import org.eco.als.domain.vo.FaultCaseImportVo;
+import org.eco.als.listener.FaultCaseImportListener;
+import org.eco.als.service.IFaultCaseService;
+import static org.eco.als.domain.table.FaultCaseTableDef.FAULT_CASE;
+
+/**
+ * 故障案例Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class FaultCaseServiceImpl extends BaseServiceImpl<FaultCaseMapper, FaultCase> implements IFaultCaseService {
+    @Resource
+    private FaultCaseMapper faultCaseMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FAULT_CASE);
+    }
+
+    private QueryWrapper buildQueryWrapper(FaultCaseBo faultCaseBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FAULT_CASE.AIRCRAFT_TYPE.eq
+        (faultCaseBo.getAircraftType()));
+        queryWrapper.and(FAULT_CASE.FAULT_CODE.eq
+        (faultCaseBo.getFaultCode()));
+        queryWrapper.and(FAULT_CASE.FAULT_NAME.like
+        (faultCaseBo.getFaultName()));
+        queryWrapper.and(FAULT_CASE.LOCATION.eq
+        (faultCaseBo.getLocation()));
+        queryWrapper.and(FAULT_CASE.LEVEL.eq
+        (faultCaseBo.getLevel()));
+        queryWrapper.and(FAULT_CASE.SYMPTOMS.eq
+        (faultCaseBo.getSymptoms()));
+        queryWrapper.and(FAULT_CASE.FAULT_CAUSE.eq
+        (faultCaseBo.getFaultCause()));
+        queryWrapper.and(FAULT_CASE.REMARKS.eq
+        (faultCaseBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询故障案例
+     *
+     * @param id 故障案例主键
+     * @return 故障案例
+     */
+    @Override
+    public FaultCaseVo selectById(Long id) {
+            return this.getOneAs(query().where(FAULT_CASE.ID.eq(id)), FaultCaseVo.class);
+
+    }
+
+
+    /**
+     * 查询故障案例列表
+     *
+     * @param faultCaseBo 故障案例Bo
+     * @return 故障案例集合
+     */
+    @Override
+    public List<FaultCaseVo> selectList(FaultCaseBo faultCaseBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultCaseBo);
+            return this.listAs(queryWrapper, FaultCaseVo.class);
+    }
+
+    /**
+     * 分页查询故障案例列表
+     *
+     * @param faultCaseBo 故障案例Bo
+     * @return 分页故障案例集合
+     */
+    @Override
+    public PageResult<FaultCaseVo> selectPage(FaultCaseBo faultCaseBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultCaseBo);
+            Page<FaultCaseVo> page = this.pageAs(PageQuery.build(), queryWrapper, FaultCaseVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增故障案例
+     *
+     * @param faultCaseBo 故障案例Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FaultCaseBo faultCaseBo) {
+    FaultCase faultCase =MapstructUtils.convert(faultCaseBo, FaultCase. class);
+
+        return this.save(faultCase);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增故障案例,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultCaseBo 故障案例Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FaultCaseBo faultCaseBo)
+    {
+        FaultCase faultCase = MapstructUtils.convert(faultCaseBo, FaultCase.class);
+
+
+            return faultCaseMapper.insertWithPk(faultCase) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改故障案例
+     *
+     * @param faultCaseBo 故障案例Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FaultCaseBo faultCaseBo) {
+        FaultCase faultCase =MapstructUtils.convert(faultCaseBo, FaultCase. class);
+        if (ObjectUtil.isNotNull(faultCase) && ObjectUtil.isNotNull(faultCase.getId())){
+            boolean updated = this.updateById(faultCase);
+                return updated;
+        }
+        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, FaultCaseImportVo.class, new FaultCaseImportListener(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<FaultCaseVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FaultCaseVo.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));
+    }
+
+}

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

@@ -0,0 +1,190 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.FaultConsumableMapper;
+import org.eco.als.domain.FaultConsumable;
+import org.eco.als.domain.bo.FaultConsumableBo;
+import org.eco.als.domain.vo.FaultConsumableVo;
+import org.eco.als.domain.vo.FaultConsumableImportVo;
+import org.eco.als.listener.FaultConsumableImportListener;
+import org.eco.als.service.IFaultConsumableService;
+import static org.eco.als.domain.table.FaultConsumableTableDef.FAULT_CONSUMABLE;
+
+/**
+ * 故障所需耗材Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class FaultConsumableServiceImpl extends BaseServiceImpl<FaultConsumableMapper, FaultConsumable> implements IFaultConsumableService {
+    @Resource
+    private FaultConsumableMapper faultConsumableMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FAULT_CONSUMABLE);
+    }
+
+    private QueryWrapper buildQueryWrapper(FaultConsumableBo faultConsumableBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FAULT_CONSUMABLE.CONSUMABLE_NAME.like
+        (faultConsumableBo.getConsumableName()));
+        queryWrapper.and(FAULT_CONSUMABLE.QUANTITY.eq
+        (faultConsumableBo.getQuantity()));
+        queryWrapper.and(FAULT_CONSUMABLE.PURPOSE.eq
+        (faultConsumableBo.getPurpose()));
+        queryWrapper.and(FAULT_CONSUMABLE.REMARKS.eq
+        (faultConsumableBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询故障所需耗材
+     *
+     * @param id 故障所需耗材主键
+     * @return 故障所需耗材
+     */
+    @Override
+    public FaultConsumableVo selectById(Long id) {
+            return this.getOneAs(query().where(FAULT_CONSUMABLE.ID.eq(id)), FaultConsumableVo.class);
+
+    }
+
+
+    /**
+     * 查询故障所需耗材列表
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 故障所需耗材集合
+     */
+    @Override
+    public List<FaultConsumableVo> selectList(FaultConsumableBo faultConsumableBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultConsumableBo);
+            return this.listAs(queryWrapper, FaultConsumableVo.class);
+    }
+
+    /**
+     * 分页查询故障所需耗材列表
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 分页故障所需耗材集合
+     */
+    @Override
+    public PageResult<FaultConsumableVo> selectPage(FaultConsumableBo faultConsumableBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultConsumableBo);
+            Page<FaultConsumableVo> page = this.pageAs(PageQuery.build(), queryWrapper, FaultConsumableVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增故障所需耗材
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FaultConsumableBo faultConsumableBo) {
+    FaultConsumable faultConsumable =MapstructUtils.convert(faultConsumableBo, FaultConsumable. class);
+
+        return this.save(faultConsumable);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增故障所需耗材,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FaultConsumableBo faultConsumableBo)
+    {
+        FaultConsumable faultConsumable = MapstructUtils.convert(faultConsumableBo, FaultConsumable.class);
+
+
+            return faultConsumableMapper.insertWithPk(faultConsumable) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改故障所需耗材
+     *
+     * @param faultConsumableBo 故障所需耗材Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FaultConsumableBo faultConsumableBo) {
+        FaultConsumable faultConsumable =MapstructUtils.convert(faultConsumableBo, FaultConsumable. class);
+        if (ObjectUtil.isNotNull(faultConsumable) && ObjectUtil.isNotNull(faultConsumable.getId())){
+            boolean updated = this.updateById(faultConsumable);
+                return updated;
+        }
+        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, FaultConsumableImportVo.class, new FaultConsumableImportListener(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<FaultConsumableVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FaultConsumableVo.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));
+    }
+
+}

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

@@ -0,0 +1,194 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.FaultEquipmentMapper;
+import org.eco.als.domain.FaultEquipment;
+import org.eco.als.domain.bo.FaultEquipmentBo;
+import org.eco.als.domain.vo.FaultEquipmentVo;
+import org.eco.als.domain.vo.FaultEquipmentImportVo;
+import org.eco.als.listener.FaultEquipmentImportListener;
+import org.eco.als.service.IFaultEquipmentService;
+import static org.eco.als.domain.table.FaultEquipmentTableDef.FAULT_EQUIPMENT;
+
+/**
+ * 故障所需设备Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class FaultEquipmentServiceImpl extends BaseServiceImpl<FaultEquipmentMapper, FaultEquipment> implements IFaultEquipmentService {
+    @Resource
+    private FaultEquipmentMapper faultEquipmentMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FAULT_EQUIPMENT);
+    }
+
+    private QueryWrapper buildQueryWrapper(FaultEquipmentBo faultEquipmentBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FAULT_EQUIPMENT.EQUIPMENT_CODE.eq
+        (faultEquipmentBo.getEquipmentCode()));
+        queryWrapper.and(FAULT_EQUIPMENT.EQUIPMENT_NAME.like
+        (faultEquipmentBo.getEquipmentName()));
+        queryWrapper.and(FAULT_EQUIPMENT.MODEL_NUMBER.eq
+        (faultEquipmentBo.getModelNumber()));
+        queryWrapper.and(FAULT_EQUIPMENT.QUANTITY.eq
+        (faultEquipmentBo.getQuantity()));
+        queryWrapper.and(FAULT_EQUIPMENT.PURPOSE.eq
+        (faultEquipmentBo.getPurpose()));
+        queryWrapper.and(FAULT_EQUIPMENT.REMARKS.eq
+        (faultEquipmentBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询故障所需设备
+     *
+     * @param id 故障所需设备主键
+     * @return 故障所需设备
+     */
+    @Override
+    public FaultEquipmentVo selectById(Long id) {
+            return this.getOneAs(query().where(FAULT_EQUIPMENT.ID.eq(id)), FaultEquipmentVo.class);
+
+    }
+
+
+    /**
+     * 查询故障所需设备列表
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 故障所需设备集合
+     */
+    @Override
+    public List<FaultEquipmentVo> selectList(FaultEquipmentBo faultEquipmentBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultEquipmentBo);
+            return this.listAs(queryWrapper, FaultEquipmentVo.class);
+    }
+
+    /**
+     * 分页查询故障所需设备列表
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 分页故障所需设备集合
+     */
+    @Override
+    public PageResult<FaultEquipmentVo> selectPage(FaultEquipmentBo faultEquipmentBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultEquipmentBo);
+            Page<FaultEquipmentVo> page = this.pageAs(PageQuery.build(), queryWrapper, FaultEquipmentVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增故障所需设备
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FaultEquipmentBo faultEquipmentBo) {
+    FaultEquipment faultEquipment =MapstructUtils.convert(faultEquipmentBo, FaultEquipment. class);
+
+        return this.save(faultEquipment);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增故障所需设备,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FaultEquipmentBo faultEquipmentBo)
+    {
+        FaultEquipment faultEquipment = MapstructUtils.convert(faultEquipmentBo, FaultEquipment.class);
+
+
+            return faultEquipmentMapper.insertWithPk(faultEquipment) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改故障所需设备
+     *
+     * @param faultEquipmentBo 故障所需设备Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FaultEquipmentBo faultEquipmentBo) {
+        FaultEquipment faultEquipment =MapstructUtils.convert(faultEquipmentBo, FaultEquipment. class);
+        if (ObjectUtil.isNotNull(faultEquipment) && ObjectUtil.isNotNull(faultEquipment.getId())){
+            boolean updated = this.updateById(faultEquipment);
+                return updated;
+        }
+        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, FaultEquipmentImportVo.class, new FaultEquipmentImportListener(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<FaultEquipmentVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FaultEquipmentVo.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));
+    }
+
+}

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

@@ -0,0 +1,188 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.FaultNotesMapper;
+import org.eco.als.domain.FaultNotes;
+import org.eco.als.domain.bo.FaultNotesBo;
+import org.eco.als.domain.vo.FaultNotesVo;
+import org.eco.als.domain.vo.FaultNotesImportVo;
+import org.eco.als.listener.FaultNotesImportListener;
+import org.eco.als.service.IFaultNotesService;
+import static org.eco.als.domain.table.FaultNotesTableDef.FAULT_NOTES;
+
+/**
+ * 故障注意事项Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class FaultNotesServiceImpl extends BaseServiceImpl<FaultNotesMapper, FaultNotes> implements IFaultNotesService {
+    @Resource
+    private FaultNotesMapper faultNotesMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FAULT_NOTES);
+    }
+
+    private QueryWrapper buildQueryWrapper(FaultNotesBo faultNotesBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FAULT_NOTES.NOTE_CONTENT.eq
+        (faultNotesBo.getNoteContent()));
+        queryWrapper.and(FAULT_NOTES.IMAGE.eq
+        (faultNotesBo.getImage()));
+        queryWrapper.and(FAULT_NOTES.REMARKS.eq
+        (faultNotesBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询故障注意事项
+     *
+     * @param id 故障注意事项主键
+     * @return 故障注意事项
+     */
+    @Override
+    public FaultNotesVo selectById(Long id) {
+            return this.getOneAs(query().where(FAULT_NOTES.ID.eq(id)), FaultNotesVo.class);
+
+    }
+
+
+    /**
+     * 查询故障注意事项列表
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 故障注意事项集合
+     */
+    @Override
+    public List<FaultNotesVo> selectList(FaultNotesBo faultNotesBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultNotesBo);
+            return this.listAs(queryWrapper, FaultNotesVo.class);
+    }
+
+    /**
+     * 分页查询故障注意事项列表
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 分页故障注意事项集合
+     */
+    @Override
+    public PageResult<FaultNotesVo> selectPage(FaultNotesBo faultNotesBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultNotesBo);
+            Page<FaultNotesVo> page = this.pageAs(PageQuery.build(), queryWrapper, FaultNotesVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增故障注意事项
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FaultNotesBo faultNotesBo) {
+    FaultNotes faultNotes =MapstructUtils.convert(faultNotesBo, FaultNotes. class);
+
+        return this.save(faultNotes);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增故障注意事项,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FaultNotesBo faultNotesBo)
+    {
+        FaultNotes faultNotes = MapstructUtils.convert(faultNotesBo, FaultNotes.class);
+
+
+            return faultNotesMapper.insertWithPk(faultNotes) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改故障注意事项
+     *
+     * @param faultNotesBo 故障注意事项Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FaultNotesBo faultNotesBo) {
+        FaultNotes faultNotes =MapstructUtils.convert(faultNotesBo, FaultNotes. class);
+        if (ObjectUtil.isNotNull(faultNotes) && ObjectUtil.isNotNull(faultNotes.getId())){
+            boolean updated = this.updateById(faultNotes);
+                return updated;
+        }
+        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, FaultNotesImportVo.class, new FaultNotesImportListener(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<FaultNotesVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FaultNotesVo.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/FaultPersonnelServiceImpl.java

@@ -0,0 +1,192 @@
+package org.eco.als.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
+import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import org.eco.als.mapper.FaultPersonnelMapper;
+import org.eco.als.domain.FaultPersonnel;
+import org.eco.als.domain.bo.FaultPersonnelBo;
+import org.eco.als.domain.vo.FaultPersonnelVo;
+import org.eco.als.domain.vo.FaultPersonnelImportVo;
+import org.eco.als.listener.FaultPersonnelImportListener;
+import org.eco.als.service.IFaultPersonnelService;
+import static org.eco.als.domain.table.FaultPersonnelTableDef.FAULT_PERSONNEL;
+
+/**
+ * 故障操作人员Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-10-25
+ */
+@Service
+@Slf4j
+public class FaultPersonnelServiceImpl extends BaseServiceImpl<FaultPersonnelMapper, FaultPersonnel> implements IFaultPersonnelService {
+    @Resource
+    private FaultPersonnelMapper faultPersonnelMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(FAULT_PERSONNEL);
+    }
+
+    private QueryWrapper buildQueryWrapper(FaultPersonnelBo faultPersonnelBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FAULT_PERSONNEL.PERSONNEL.eq
+        (faultPersonnelBo.getPersonnel()));
+        queryWrapper.and(FAULT_PERSONNEL.POSITION.eq
+        (faultPersonnelBo.getPosition()));
+        queryWrapper.and(FAULT_PERSONNEL.QUANTITY.eq
+        (faultPersonnelBo.getQuantity()));
+        queryWrapper.and(FAULT_PERSONNEL.DUTIES.eq
+        (faultPersonnelBo.getDuties()));
+        queryWrapper.and(FAULT_PERSONNEL.REMARKS.eq
+        (faultPersonnelBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询故障操作人员
+     *
+     * @param id 故障操作人员主键
+     * @return 故障操作人员
+     */
+    @Override
+    public FaultPersonnelVo selectById(Long id) {
+            return this.getOneAs(query().where(FAULT_PERSONNEL.ID.eq(id)), FaultPersonnelVo.class);
+
+    }
+
+
+    /**
+     * 查询故障操作人员列表
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 故障操作人员集合
+     */
+    @Override
+    public List<FaultPersonnelVo> selectList(FaultPersonnelBo faultPersonnelBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultPersonnelBo);
+            return this.listAs(queryWrapper, FaultPersonnelVo.class);
+    }
+
+    /**
+     * 分页查询故障操作人员列表
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 分页故障操作人员集合
+     */
+    @Override
+    public PageResult<FaultPersonnelVo> selectPage(FaultPersonnelBo faultPersonnelBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(faultPersonnelBo);
+            Page<FaultPersonnelVo> page = this.pageAs(PageQuery.build(), queryWrapper, FaultPersonnelVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增故障操作人员
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(FaultPersonnelBo faultPersonnelBo) {
+    FaultPersonnel faultPersonnel =MapstructUtils.convert(faultPersonnelBo, FaultPersonnel. class);
+
+        return this.save(faultPersonnel);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增故障操作人员,前台提供主键值,一般用于导入的场合
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(FaultPersonnelBo faultPersonnelBo)
+    {
+        FaultPersonnel faultPersonnel = MapstructUtils.convert(faultPersonnelBo, FaultPersonnel.class);
+
+
+            return faultPersonnelMapper.insertWithPk(faultPersonnel) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改故障操作人员
+     *
+     * @param faultPersonnelBo 故障操作人员Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(FaultPersonnelBo faultPersonnelBo) {
+        FaultPersonnel faultPersonnel =MapstructUtils.convert(faultPersonnelBo, FaultPersonnel. class);
+        if (ObjectUtil.isNotNull(faultPersonnel) && ObjectUtil.isNotNull(faultPersonnel.getId())){
+            boolean updated = this.updateById(faultPersonnel);
+                return updated;
+        }
+        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, FaultPersonnelImportVo.class, new FaultPersonnelImportListener(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<FaultPersonnelVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, FaultPersonnelVo.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));
+    }
+
+}

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно