Преглед изворни кода

维修任务,资源分配,任务派遣

Gaokun Wang пре 7 месеци
родитељ
комит
5280d9ac08
31 измењених фајлова са 2389 додато и 196 уклоњено
  1. 56 40
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/MaintenanceTaskController.java
  2. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/PersonnelAllocationController.java
  3. 137 0
      als-modules/agile-assurance/src/main/java/org/eco/als/controller/ResourceAllocationController.java
  4. 52 21
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/MaintenanceTask.java
  5. 69 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/PersonnelAllocation.java
  6. 79 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/ResourceAllocation.java
  7. 49 32
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/MaintenanceTaskBo.java
  8. 56 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/PersonnelAllocationBo.java
  9. 66 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/ResourceAllocationBo.java
  10. 124 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/MaintenanceTaskImportVo.java
  11. 65 38
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/MaintenanceTaskVo.java
  12. 73 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/PersonnelAllocationImportVo.java
  13. 95 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/PersonnelAllocationVo.java
  14. 85 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/ResourceAllocationImportVo.java
  15. 107 0
      als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/ResourceAllocationVo.java
  16. 129 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/MaintenanceTaskImportListener.java
  17. 129 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/PersonnelAllocationImportListener.java
  18. 129 0
      als-modules/agile-assurance/src/main/java/org/eco/als/listener/ResourceAllocationImportListener.java
  19. 2 2
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/MaintenanceTaskMapper.java
  20. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/PersonnelAllocationMapper.java
  21. 16 0
      als-modules/agile-assurance/src/main/java/org/eco/als/mapper/ResourceAllocationMapper.java
  22. 35 24
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IMaintenanceTaskService.java
  23. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IPersonnelAllocationService.java
  24. 97 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/IResourceAllocationService.java
  25. 6 6
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/DataImportServiceImpl.java
  26. 3 3
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FalseAlarmServiceImpl.java
  27. 70 30
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/MaintenanceTaskServiceImpl.java
  28. 196 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/PersonnelAllocationServiceImpl.java
  29. 200 0
      als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/ResourceAllocationServiceImpl.java
  30. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/PersonnelAllocationMapper.xml
  31. 7 0
      als-modules/agile-assurance/src/main/resources/mapper/als/ResourceAllocationMapper.xml

+ 56 - 40
als-modules/agile-assurance/src/main/java/org/eco/als/controller/MaintenanceTaskController.java

@@ -1,60 +1,58 @@
 package org.eco.als.controller;
 
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import cn.hutool.core.collection.CollUtil;
-import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
-import org.eco.als.domain.bo.MaintenanceTaskBo;
-import org.eco.als.domain.vo.MaintenanceTaskVo;
-import org.eco.als.service.IMaintenanceTaskService;
+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.MaintenanceTaskImportVo;
+import org.eco.als.domain.vo.MaintenanceTaskVo;
+import org.eco.als.domain.bo.MaintenanceTaskBo;
+import org.eco.als.service.IMaintenanceTaskService;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
 
 import java.util.List;
+import java.util.ArrayList;
 
 /**
- * 维修任务Controller
+ * 维修信息Controller
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 @Validated
 @RequiredArgsConstructor
 @RestController
-@RequestMapping("/als/maintenanceTask")
+@RequestMapping("/als/maintenanceask")
 public class MaintenanceTaskController extends BaseController {
     @Resource
     private IMaintenanceTaskService maintenanceTaskService;
 
     /**
-     * 查询维修任务列表
+     * 查询维修信息列表
      */
-    @SaCheckPermission("als:maintenanceTask:list")
+    @SaCheckPermission("als:maintenanceask:list")
     @GetMapping("/list")
     public CommonResult<PageResult<MaintenanceTaskVo>> list(MaintenanceTaskBo maintenanceTaskBo) {
         return CommonResult.success(maintenanceTaskService.selectPage(maintenanceTaskBo));
     }
 
     /**
-     * 导出维修任务列表
+     * 导出维修信息列表
      */
-    @SaCheckPermission("als:maintenanceTask:export")
-    @Log(title = "维修任务", businessType = BusinessType.EXPORT)
+    @SaCheckPermission("als:maintenanceask:export")
+    @Log(title = "维修信息", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public CommonResult<Void> export(MaintenanceTaskBo maintenanceTaskBo) {
         LoginUser loginUser = LoginHelper.getLoginUser();
@@ -62,59 +60,77 @@ public class MaintenanceTaskController extends BaseController {
         if (CollUtil.isEmpty(list)) {
             return CommonResult.fail("导出列表为空");
         }
-        maintenanceTaskService.asyncExport(list, "维修任务", loginUser);
+        maintenanceTaskService.asyncExport(list, "维修信息", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("als:maintenanceask:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "维修信息", MaintenanceTaskImportVo.class, response);
+    }
+
+    /**
+     * 导入维修信息列表
+     */
+    @Log(title = "维修信息", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("als:maintenanceask:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        maintenanceTaskService.asyncImportData(file, updateSupport, loginUser);
         return CommonResult.success();
     }
 
     /**
-     * 获取维修任务详细信息
+     * 获取维修信息详细信息
      */
-    @SaCheckPermission("als:maintenanceTask:query")
+    @SaCheckPermission("als:maintenanceask:query")
     @GetMapping(value = "/{id}")
     public CommonResult<MaintenanceTaskVo> getInfo(@PathVariable Long id) {
         return CommonResult.success(maintenanceTaskService.selectById(id));
     }
 
     /**
-     * 新增维修任务
+     * 新增维修信息
      */
-    @SaCheckPermission("als:maintenanceTask:add")
-    @Log(title = "维修任务", businessType = BusinessType.INSERT)
+    @SaCheckPermission("als:maintenanceask:add")
+    @Log(title = "维修信息", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping
     public CommonResult<Void> add(@Validated @RequestBody MaintenanceTaskBo maintenanceTaskBo) {
         boolean inserted = maintenanceTaskService.insert(maintenanceTaskBo);
         if (!inserted) {
-            return CommonResult.fail("新增维修任务记录失败!");
+            return CommonResult.fail("新增维修信息记录失败!");
         }
         return CommonResult.success();
     }
 
     /**
-     * 修改维修任务
+     * 修改维修信息
      */
-    @SaCheckPermission("als:maintenanceTask:edit")
-    @Log(title = "维修任务", businessType = BusinessType.UPDATE)
+    @SaCheckPermission("als:maintenanceask:edit")
+    @Log(title = "维修信息", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping
     public CommonResult<Void> edit(@Validated @RequestBody MaintenanceTaskBo maintenanceTaskBo) {
         boolean updated = maintenanceTaskService.update(maintenanceTaskBo);
         if (!updated) {
-            return CommonResult.fail("修改维修任务记录失败!");
+            return CommonResult.fail("修改维修信息记录失败!");
         }
         return CommonResult.success();
     }
 
     /**
-     * 删除维修任务
+     * 删除维修信息
      */
-    @SaCheckPermission("als:maintenanceTask:remove")
-    @Log(title = "维修任务", businessType = BusinessType.DELETE)
+    @SaCheckPermission("als:maintenanceask:remove")
+    @Log(title = "维修信息", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public CommonResult<Void> remove(@PathVariable Long[] ids) {
         boolean deleted = maintenanceTaskService.deleteByIds(ids);
         if (!deleted) {
-            return CommonResult.fail("删除维修任务记录失败!");
+            return CommonResult.fail("删除维修信息记录失败!");
         }
         return CommonResult.success();
     }

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

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

+ 52 - 21
als-modules/agile-assurance/src/main/java/org/eco/als/domain/MaintenanceTask.java

@@ -1,20 +1,23 @@
 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 org.eco.common.orm.core.domain.BaseEntity;
 
 import java.io.Serial;
-import java.util.Date;
+
+import org.eco.common.orm.core.domain.BaseEntity;
 
 /**
- * 维修任务对象 als_maintenance_task_t
+ * 维修信息对象 als_maintenance_task_t
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -30,52 +33,80 @@ public class MaintenanceTask extends BaseEntity {
     private Long id;
 
     /**
-     * 架次号
+     * 来源ID
+     */
+    private Long taskId;
+
+    /**
+     * 飞机编码
+     */
+    private String aircraftCode;
+
+    /**
+     * 飞机机型
      */
-    private Long sortieNo;
+    private String aircraftType;
 
     /**
-     * 机号
+     * 数据来源
      */
-    private String aircraftId;
+    private String dataType;
+
+    /**
+     * 故障代码
+     */
+    private String faultCode;
+
+    /**
+     * 故障名称
+     */
+    private String faultName;
+
     /**
-     * 所属系统
+     * 故障位置
      */
-    private String systemName;
+    private String location;
 
     /**
-     * 单位
+     * 故障等级
      */
-    private String unitName;
+    private String level;
 
     /**
-     * 处理人
+     * 故障发生时间
      */
-    private String operator;
+    private Date faultDate;
 
     /**
-     * 故障部件
+     * 故障描述
      */
-    private String faultPart;
+    private String faultDescription;
 
     /**
-     * 维修建议
+     * 故障现象
      */
-    private String proposal;
+    private String symptoms;
 
     /**
-     * 维修时间
+     * 故障原因
      */
-    private Date handlerDate;
+    private String faultCause;
 
     /**
-     * 状态(1正常)
+     * 任务状态
      */
     private String status;
 
+    /**
+     * 备注
+     */
+    private String remarks;
+
     /**
      * 删除标识(1删除 0未删除)
      */
     @Column(isLogicDelete = true)
     private Integer delFlag;
+
+
 }

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

@@ -0,0 +1,69 @@
+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_personnel_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_personnel_allocation_t")
+public class PersonnelAllocation extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 任务Id
+     */
+    private Long taskId;
+
+    /**
+     * 人员
+     */
+    private String personnel;
+
+    /**
+     * 岗位
+     */
+    private String position;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 职责
+     */
+    private String duties;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

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

@@ -0,0 +1,79 @@
+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_resource_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "als_resource_allocation_t")
+public class ResourceAllocation extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 任务Id
+     */
+    private Long taskId;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 类型
+     */
+    private String type;
+
+    /**
+     * 规格型号
+     */
+    private String modelNumber;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 用途
+     */
+    private String purpose;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @Column(isLogicDelete = true)
+    private Integer delFlag;
+
+
+}

+ 49 - 32
als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/MaintenanceTaskBo.java

@@ -1,21 +1,21 @@
 package org.eco.als.domain.bo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.als.domain.MaintenanceTask;
 import io.github.linpeilie.annotations.AutoMapper;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.eco.als.domain.MaintenanceTask;
-import org.eco.common.orm.core.domain.BaseEntity;
+import jakarta.validation.constraints.*;
 
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.common.orm.core.domain.BaseEntity;
+
 /**
- * 维修任务业务对象 als_maintenance_task_t
+ * 维修信息业务对象 als_maintenance_task_t
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -27,58 +27,75 @@ public class MaintenanceTaskBo extends BaseEntity {
     private Long id;
 
     /**
-     * 架次号
+     * 来源ID
      */
-    @NotNull(message = "架次号不能为空")
-    private Long sortieNo;
+    private Long taskId;
 
     /**
-     * 机号Id
+     * 飞机编码
      */
-    @NotNull(message = "机号不能为空")
-    private String aircraftId;
+    private String aircraftCode;
 
     /**
-     * 所属系统
+     * 飞机机型
      */
-    @NotBlank(message = "所属系统不能为空")
-    private String systemName;
+    private String aircraftType;
 
     /**
-     * 单位
+     * 数据来源
      */
-    @NotBlank(message = "单位不能为空")
-    private String unitName;
+    private String dataType;
 
     /**
-     * 处理人
+     * 故障代码
      */
-    @NotBlank(message = "处理人不能为空")
-    private String operator;
+    private String faultCode;
 
     /**
-     * 故障部件
+     * 故障名称
      */
-    @NotBlank(message = "故障部件不能为空")
-    private String faultPart;
+    private String faultName;
 
     /**
-     * 维修建议
+     * 故障位置
      */
-    @NotBlank(message = "维修建议不能为空")
-    private String proposal;
+    private String location;
 
     /**
-     * 维修时间
+     * 故障等级
+     */
+    private String level;
+
+    /**
+     * 故障发生时间
      */
-    @NotNull(message = "维修时间不能为空")
     @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date handlerDate;
+    private Date faultDate;
+
+    /**
+     * 故障描述
+     */
+    private String faultDescription;
+
+    /**
+     * 故障现象
+     */
+    private String symptoms;
 
     /**
-     * 状态(1正常)
+     * 故障原因
+     */
+    private String faultCause;
+
+    /**
+     * 任务状态
      */
     private String status;
 
+    /**
+     * 备注
+     */
+    private String remarks;
+
 
 }

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

@@ -0,0 +1,56 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.PersonnelAllocation;
+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_personnel_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = PersonnelAllocation.class, reverseConvertGenerate = false)
+public class PersonnelAllocationBo extends BaseEntity {
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 任务Id
+     */
+    private Long taskId;
+
+    /**
+     * 人员
+     */
+    private String personnel;
+
+    /**
+     * 岗位
+     */
+    private String position;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 职责
+     */
+    private String duties;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,66 @@
+package org.eco.als.domain.bo;
+
+import org.eco.als.domain.ResourceAllocation;
+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_resource_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ResourceAllocation.class, reverseConvertGenerate = false)
+public class ResourceAllocationBo extends BaseEntity {
+    /**
+     * 编号
+     */
+    private Long id;
+
+    /**
+     * 任务Id
+     */
+    private Long taskId;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 类型
+     */
+    private String type;
+
+    /**
+     * 规格型号
+     */
+    private String modelNumber;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 用途
+     */
+    private String purpose;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+}

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

@@ -0,0 +1,124 @@
+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_maintenance_task_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class MaintenanceTaskImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 来源ID
+     */
+    @ExcelProperty(value = "来源ID")
+    private Long taskId;
+
+    /**
+     * 飞机编码
+     */
+    @ExcelProperty(value = "飞机编码")
+    private String aircraftCode;
+
+    /**
+     * 飞机机型
+     */
+    @ExcelProperty(value = "飞机机型")
+    private String aircraftType;
+
+    /**
+     * 数据来源
+     */
+    @ExcelProperty(value = "数据来源")
+    private String dataType;
+
+    /**
+     * 故障代码
+     */
+    @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 faultDescription;
+
+    /**
+     * 故障现象
+     */
+    @ExcelProperty(value = "故障现象")
+    private String symptoms;
+
+    /**
+     * 故障原因
+     */
+    @ExcelProperty(value = "故障原因")
+    private String faultCause;
+
+    /**
+     * 任务状态
+     */
+    @ExcelProperty(value = "任务状态")
+    private String status;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remarks;
+
+    /**
+     * 删除标识(1删除 0未删除)
+     */
+    @ExcelProperty(value = "删除标识(1删除 0未删除)")
+    private Integer delFlag;
+
+
+}

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

@@ -1,26 +1,29 @@
 package org.eco.als.domain.vo;
 
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.eco.als.domain.MaintenanceTask;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-import com.eco.common.mapper.annotation.FieldMapper;
+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 org.eco.als.domain.MaintenanceTask;
-import org.eco.common.excel.annotation.ExcelDictFormat;
-import org.eco.common.excel.convert.ExcelDictConvert;
-import org.eco.common.orm.core.domain.BaseEntity;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
+
+import org.eco.common.orm.core.domain.BaseEntity;
 
 /**
- * 维修任务视图对象 als_maintenance_task_t
+ * 维修信息视图对象 als_maintenance_task_t
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 @Data
 @ExcelIgnoreUnannotated
@@ -38,69 +41,93 @@ public class MaintenanceTaskVo extends BaseEntity implements Serializable {
     private Long id;
 
     /**
-     * 架次号
+     * 来源ID
+     */
+    @ExcelProperty(value = "来源ID")
+    private Long taskId;
+
+    /**
+     * 飞机编码
+     */
+    @ExcelProperty(value = "飞机编码")
+    private String aircraftCode;
+
+    /**
+     * 飞机机型
      */
-    @ExcelProperty(value = "架次号")
-    private Long sortieNo;
+    @ExcelProperty(value = "飞机机型")
+    private String aircraftType;
 
     /**
-     * 机号Id
+     * 数据来源
      */
-    private String aircraftId;
+    @ExcelProperty(value = "数据来源")
+    private String dataType;
 
     /**
-     * 机号
+     * 故障代码
      */
-    @ExcelProperty(value = "机号")
-    @FieldMapper(type = MapperConstant.AIRCRAFT_ID_TO_NO, mapper = "aircraftId")
-    private String aircraftNo;
+    @ExcelProperty(value = "故障代码")
+    private String faultCode;
 
     /**
-     * 所属系统
+     * 故障名称
      */
-    @ExcelProperty(value = "所属系统")
-    private String systemName;
+    @ExcelProperty(value = "故障名称")
+    private String faultName;
 
     /**
-     * 单位
+     * 故障位置
      */
-    @ExcelProperty(value = "单位")
-    private String unitName;
+    @ExcelProperty(value = "故障位置")
+    private String location;
 
     /**
-     * 处理人
+     * 故障等级
      */
-    @ExcelProperty(value = "处理人")
-    private String operator;
+    @ExcelProperty(value = "故障等级")
+    private String level;
 
     /**
-     * 故障部件
+     * 故障发生时间
      */
-    @ExcelProperty(value = "故障部件")
-    private String faultPart;
+    @ExcelProperty(value = "故障发生时间")
+    private Date faultDate;
 
     /**
-     * 维修建议
+     * 故障描述
      */
-    @ExcelProperty(value = "维修建议")
-    private String proposal;
+    @ExcelProperty(value = "故障描述")
+    private String faultDescription;
 
     /**
-     * 维修时间
+     * 故障现象
      */
-    @ExcelProperty(value = "维修时间")
-    private Date handlerDate;
+    @ExcelProperty(value = "故障现象")
+    private String symptoms;
 
     /**
-     * 状态(1正常)
+     * 故障原因
      */
-    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "common_type")
+    @ExcelProperty(value = "故障原因")
+    private String faultCause;
+
+    /**
+     * 任务状态
+     */
+    @ExcelProperty(value = "任务状态")
     private String status;
 
+    /**
+     * 备注
+     */
+    @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/PersonnelAllocationImportVo.java

@@ -0,0 +1,73 @@
+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_personnel_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class PersonnelAllocationImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 任务Id
+     */
+    @ExcelProperty(value = "任务Id")
+    private Long taskId;
+
+    /**
+     * 人员
+     */
+    @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;
+
+
+}

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

@@ -0,0 +1,95 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.PersonnelAllocation;
+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_personnel_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = PersonnelAllocation.class)
+public class PersonnelAllocationVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 任务Id
+     */
+    @ExcelProperty(value = "任务Id")
+    private Long taskId;
+
+    /**
+     * 人员
+     */
+    @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;
+
+}

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

@@ -0,0 +1,85 @@
+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_resource_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+
+@Data
+@NoArgsConstructor
+@ExcelIgnoreUnannotated
+public class ResourceAllocationImportVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 任务Id
+     */
+    @ExcelProperty(value = "任务Id")
+    private Long taskId;
+
+    /**
+     * 设备编号
+     */
+    @ExcelProperty(value = "设备编号")
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String deviceName;
+
+    /**
+     * 类型
+     */
+    @ExcelProperty(value = "类型")
+    private String type;
+
+    /**
+     * 规格型号
+     */
+    @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;
+
+
+}

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

@@ -0,0 +1,107 @@
+package org.eco.als.domain.vo;
+
+import org.eco.als.domain.ResourceAllocation;
+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_resource_allocation_t
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ResourceAllocation.class)
+public class ResourceAllocationVo extends BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 任务Id
+     */
+    @ExcelProperty(value = "任务Id")
+    private Long taskId;
+
+    /**
+     * 设备编号
+     */
+    @ExcelProperty(value = "设备编号")
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String deviceName;
+
+    /**
+     * 类型
+     */
+    @ExcelProperty(value = "类型")
+    private String type;
+
+    /**
+     * 规格型号
+     */
+    @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;
+
+}

+ 129 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/MaintenanceTaskImportListener.java

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

+ 129 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/PersonnelAllocationImportListener.java

@@ -0,0 +1,129 @@
+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.PersonnelAllocationBo;
+import org.eco.als.domain.vo.PersonnelAllocationImportVo;
+import org.eco.als.domain.vo.PersonnelAllocationVo;
+import org.eco.als.service.IPersonnelAllocationService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 维修任务任务派遣自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class PersonnelAllocationImportListener extends AnalysisEventListener<PersonnelAllocationImportVo> implements ExcelListener<PersonnelAllocationImportVo> {
+    private final IPersonnelAllocationService personnelAllocationService;
+
+    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 PersonnelAllocationImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.personnelAllocationService = SpringUtils.getBean(IPersonnelAllocationService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(PersonnelAllocationImportVo personnelAllocationVo, AnalysisContext context) {
+        try {
+
+            PersonnelAllocationBo personnelAllocationBo = BeanUtil.toBean(personnelAllocationVo, PersonnelAllocationBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            PersonnelAllocationVo personnelAllocationVo1 = null;
+
+            //personnelAllocationVo1 = personnelAllocationService.selectBySomefield(personnelAllocationVo.getSomefield());
+            if (ObjectUtil.isNull(personnelAllocationVo1)) {
+                //不存在就新增
+                setBo(personnelAllocationBo);
+                ValidatorUtils.validate(personnelAllocationBo);
+                boolean inserted = personnelAllocationService.insert(personnelAllocationBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、维修任务任务派遣 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、维修任务任务派遣 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                personnelAllocationBo.setId(personnelAllocationVo1.getId());//主键
+                personnelAllocationBo.setVersion(personnelAllocationVo1.getVersion());
+                boolean updated = personnelAllocationService.update(personnelAllocationBo);
+                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(PersonnelAllocationBo personnelAllocationBo) {
+        personnelAllocationBo.setVersion(0);
+        personnelAllocationBo.setCreateBy(loginUser.getUserId());
+        personnelAllocationBo.setUpdateBy(loginUser.getUserId());
+        personnelAllocationBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<PersonnelAllocationImportVo> 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<PersonnelAllocationImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 129 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/listener/ResourceAllocationImportListener.java

@@ -0,0 +1,129 @@
+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.ResourceAllocationBo;
+import org.eco.als.domain.vo.ResourceAllocationImportVo;
+import org.eco.als.domain.vo.ResourceAllocationVo;
+import org.eco.als.service.IResourceAllocationService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+/**
+ * 维修任务资源分配自定义导入
+ *
+ * @author wgk
+ */
+@Slf4j
+public class ResourceAllocationImportListener extends AnalysisEventListener<ResourceAllocationImportVo> implements ExcelListener<ResourceAllocationImportVo> {
+    private final IResourceAllocationService resourceAllocationService;
+
+    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 ResourceAllocationImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
+        this.resourceAllocationService = SpringUtils.getBean(IResourceAllocationService.class);
+        this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
+    }
+
+    @Override
+    public void invoke(ResourceAllocationImportVo resourceAllocationVo, AnalysisContext context) {
+        try {
+
+            ResourceAllocationBo resourceAllocationBo = BeanUtil.toBean(resourceAllocationVo, ResourceAllocationBo.class);
+
+            //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
+            ResourceAllocationVo resourceAllocationVo1 = null;
+
+            //resourceAllocationVo1 = resourceAllocationService.selectBySomefield(resourceAllocationVo.getSomefield());
+            if (ObjectUtil.isNull(resourceAllocationVo1)) {
+                //不存在就新增
+                setBo(resourceAllocationBo);
+                ValidatorUtils.validate(resourceAllocationBo);
+                boolean inserted = resourceAllocationService.insert(resourceAllocationBo);
+
+                if (inserted) {
+                    successNum++;
+                    successMsg.append("<br/>").append(successNum).append("、维修任务资源分配 记录导入成功");
+                } else {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append("、维修任务资源分配 记录导入失败");
+                }
+            } else if (isUpdateSupport) {
+                //存在就更新
+                resourceAllocationBo.setId(resourceAllocationVo1.getId());//主键
+                resourceAllocationBo.setVersion(resourceAllocationVo1.getVersion());
+                boolean updated = resourceAllocationService.update(resourceAllocationBo);
+                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(ResourceAllocationBo resourceAllocationBo) {
+        resourceAllocationBo.setVersion(0);
+        resourceAllocationBo.setCreateBy(loginUser.getUserId());
+        resourceAllocationBo.setUpdateBy(loginUser.getUserId());
+        resourceAllocationBo.setTenantId(loginUser.getTenantId());
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        log.info("解析完成");
+    }
+
+    @Override
+    public ExcelResult<ResourceAllocationImportVo> 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<ResourceAllocationImportVo> getList() {
+                return null;
+            }
+
+            @Override
+            public List<String> getErrorList() {
+                return null;
+            }
+        };
+    }
+}

+ 2 - 2
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/MaintenanceTaskMapper.java

@@ -5,10 +5,10 @@ import org.apache.ibatis.annotations.Mapper;
 import org.eco.als.domain.MaintenanceTask;
 
 /**
- * 维修任务Mapper接口
+ * 维修信息Mapper接口
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 @Mapper
 public interface MaintenanceTaskMapper extends BaseMapper<MaintenanceTask> {

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/PersonnelAllocationMapper.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.PersonnelAllocation;
+
+/**
+ * 维修任务任务派遣Mapper接口
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Mapper
+public interface PersonnelAllocationMapper extends BaseMapper<PersonnelAllocation> {
+
+}

+ 16 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/mapper/ResourceAllocationMapper.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.ResourceAllocation;
+
+/**
+ * 维修任务资源分配Mapper接口
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Mapper
+public interface ResourceAllocationMapper extends BaseMapper<ResourceAllocation> {
+
+}

+ 35 - 24
als-modules/agile-assurance/src/main/java/org/eco/als/service/IMaintenanceTaskService.java

@@ -1,78 +1,89 @@
 package org.eco.als.service;
 
+import java.util.List;
+
+import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.als.domain.MaintenanceTask;
-import org.eco.als.domain.bo.MaintenanceTaskBo;
 import org.eco.als.domain.vo.MaintenanceTaskVo;
-import org.eco.common.core.core.domain.model.LoginUser;
-import org.eco.common.core.core.page.PageResult;
+import org.eco.als.domain.bo.MaintenanceTaskBo;
 import org.eco.common.orm.core.service.IBaseService;
 import org.springframework.scheduling.annotation.Async;
-
-import java.util.List;
+import org.springframework.web.multipart.MultipartFile;
+import org.eco.common.core.core.page.PageResult;
 
 /**
- * 维修任务Service接口
+ * 维修信息Service接口
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 public interface IMaintenanceTaskService extends IBaseService<MaintenanceTask> {
     /**
-     * 查询维修任务
+     * 查询维修信息
      *
-     * @param id 维修任务主键
-     * @return 维修任务
+     * @param id 维修信息主键
+     * @return 维修信息
      */
     MaintenanceTaskVo selectById(Long id);
 
     /**
-     * 查询维修任务列表
+     * 查询维修信息列表
      *
-     * @param maintenanceTaskBo 维修任务Bo
-     * @return 维修任务集合
+     * @param maintenanceTaskBo 维修信息Bo
+     * @return 维修信息集合
      */
     List<MaintenanceTaskVo> selectList(MaintenanceTaskBo maintenanceTaskBo);
 
     /**
-     * 分页查询维修任务列表
+     * 分页查询维修信息列表
      *
-     * @param maintenanceTaskBo 维修任务Bo
-     * @return 分页维修任务集合
+     * @param maintenanceTaskBo 维修信息Bo
+     * @return 分页维修信息集合
      */
     PageResult<MaintenanceTaskVo> selectPage(MaintenanceTaskBo maintenanceTaskBo);
 
     /**
-     * 新增维修任务
+     * 新增维修信息
      *
-     * @param maintenanceTaskBo 维修任务Bo
+     * @param maintenanceTaskBo 维修信息Bo
      * @return 结果:true 操作成功,false 操作失败
      */
     boolean insert(MaintenanceTaskBo maintenanceTaskBo);
 
     /**
-     * 新增维修任务,前台提供主键值,一般用于导入的场合
+     * 新增维修信息,前台提供主键值,一般用于导入的场合
      *
-     * @param maintenanceTaskBo 维修任务Bo
+     * @param maintenanceTaskBo 维修信息Bo
      * @return 结果:true 操作成功,false 操作失败
      */
     boolean insertWithPk(MaintenanceTaskBo maintenanceTaskBo);
 
     /**
-     * 修改维修任务
+     * 修改维修信息
      *
-     * @param maintenanceTaskBo 维修任务Bo
+     * @param maintenanceTaskBo 维修信息Bo
      * @return 结果:true 更新成功,false 更新失败
      */
     boolean update(MaintenanceTaskBo maintenanceTaskBo);
 
     /**
-     * 批量删除维修任务
+     * 批量删除维修信息
      *
-     * @param ids 需要删除的维修任务主键集合
+     * @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 异步导出
      *

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

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

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

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

+ 6 - 6
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/DataImportServiceImpl.java

@@ -57,19 +57,19 @@ public class DataImportServiceImpl extends BaseServiceImpl<DataImportMapper, Dat
     private QueryWrapper buildQueryWrapper(DataImportBo dataImportBo) {
         QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
         queryWrapper.and(DATA_IMPORT.OSS_ID.eq
-                (dataImportBo.getOssId()));
+            (dataImportBo.getOssId()));
         queryWrapper.and(DATA_IMPORT.SOURCE.eq
-                (dataImportBo.getSource()));
+            (dataImportBo.getSource()));
         queryWrapper.and(DATA_IMPORT.SORTIE_NO.eq
-                (dataImportBo.getSortieNo()));
+            (dataImportBo.getSortieNo()));
         if (StringUtils.isNotBlank(dataImportBo.getAircraftId())) {
             queryWrapper.and(DATA_IMPORT.AIRCRAFT_ID.in
-                    (dataImportBo.getAircraftId().split(",")));
+                (dataImportBo.getAircraftId().split(",")));
         }
         queryWrapper.and(DATA_IMPORT.FLIGHT_DATE.eq
-                (dataImportBo.getFlightDate()));
+            (dataImportBo.getFlightDate()));
         queryWrapper.and(DATA_IMPORT.STATUS.eq
-                (dataImportBo.getStatus()));
+            (dataImportBo.getStatus()));
 
         return queryWrapper;
     }

+ 3 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FalseAlarmServiceImpl.java

@@ -52,11 +52,11 @@ public class FalseAlarmServiceImpl extends BaseServiceImpl<FalseAlarmMapper, Fal
     private QueryWrapper buildQueryWrapper(FalseAlarmBo falseAlarmBo) {
         QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
         queryWrapper.and(FALSE_ALARM.SORTIE_NO.eq
-                (falseAlarmBo.getSortieNo()));
+            (falseAlarmBo.getSortieNo()));
         queryWrapper.and(FALSE_ALARM.AIRCRAFT_ID.eq
-                (falseAlarmBo.getAircraftId()));
+            (falseAlarmBo.getAircraftId()));
         queryWrapper.and(FALSE_ALARM.STATUS.eq
-                (falseAlarmBo.getStatus()));
+            (falseAlarmBo.getStatus()));
 
         return queryWrapper;
     }

+ 70 - 30
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/MaintenanceTaskServiceImpl.java

@@ -7,12 +7,15 @@ import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.eco.als.domain.MaintenanceTask;
 import org.eco.als.domain.bo.MaintenanceTaskBo;
+import org.eco.als.domain.vo.MaintenanceTaskImportVo;
 import org.eco.als.domain.vo.MaintenanceTaskVo;
+import org.eco.als.listener.MaintenanceTaskImportListener;
 import org.eco.als.mapper.MaintenanceTaskMapper;
 import org.eco.als.service.IMaintenanceTaskService;
 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.StringUtils;
 import org.eco.common.excel.entity.ExcelResultRes;
 import org.eco.common.excel.service.IExcelService;
 import org.eco.common.orm.core.page.PageQuery;
@@ -20,17 +23,19 @@ import org.eco.common.orm.core.service.impl.BaseServiceImpl;
 import org.eco.system.service.IImportExportService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 
 import static org.eco.als.domain.table.MaintenanceTaskTableDef.MAINTENANCE_TASK;
 
 /**
- * 维修任务Service业务层处理
+ * 维修信息Service业务层处理
  *
  * @author wgk
- * @date 2024-07-24
+ * @date 2024-11-14
  */
 @Service
 @Slf4j
@@ -51,27 +56,46 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
 
     private QueryWrapper buildQueryWrapper(MaintenanceTaskBo maintenanceTaskBo) {
         QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
-        queryWrapper.and(MAINTENANCE_TASK.SORTIE_NO.eq
-            (maintenanceTaskBo.getSortieNo()));
-        queryWrapper.and(MAINTENANCE_TASK.AIRCRAFT_ID.eq
-            (maintenanceTaskBo.getAircraftId()));
-        queryWrapper.and(MAINTENANCE_TASK.SYSTEM_NAME.like
-            (maintenanceTaskBo.getSystemName()));
-        queryWrapper.and(MAINTENANCE_TASK.UNIT_NAME.like
-            (maintenanceTaskBo.getUnitName()));
-        queryWrapper.and(MAINTENANCE_TASK.HANDLER_DATE.eq
-            (maintenanceTaskBo.getHandlerDate()));
+        queryWrapper.and(MAINTENANCE_TASK.TASK_ID.eq
+            (maintenanceTaskBo.getTaskId()));
+        queryWrapper.and(MAINTENANCE_TASK.AIRCRAFT_CODE.eq
+            (maintenanceTaskBo.getAircraftCode()));
+        if (StringUtils.isNotBlank(maintenanceTaskBo.getAircraftType())) {
+            String[] airTypeIds = maintenanceTaskBo.getAircraftType().split(",");
+            queryWrapper.and(MAINTENANCE_TASK.AIRCRAFT_TYPE.eq
+                (airTypeIds));
+        }
+        queryWrapper.and(MAINTENANCE_TASK.DATA_TYPE.eq
+            (maintenanceTaskBo.getDataType()));
+        queryWrapper.and(MAINTENANCE_TASK.FAULT_CODE.eq
+            (maintenanceTaskBo.getFaultCode()));
+        queryWrapper.and(MAINTENANCE_TASK.FAULT_NAME.like
+            (maintenanceTaskBo.getFaultName()));
+        queryWrapper.and(MAINTENANCE_TASK.LOCATION.eq
+            (maintenanceTaskBo.getLocation()));
+        queryWrapper.and(MAINTENANCE_TASK.LEVEL.eq
+            (maintenanceTaskBo.getLevel()));
+        queryWrapper.and(MAINTENANCE_TASK.FAULT_DATE.eq
+            (maintenanceTaskBo.getFaultDate()));
+        queryWrapper.and(MAINTENANCE_TASK.FAULT_DESCRIPTION.eq
+            (maintenanceTaskBo.getFaultDescription()));
+        queryWrapper.and(MAINTENANCE_TASK.SYMPTOMS.eq
+            (maintenanceTaskBo.getSymptoms()));
+        queryWrapper.and(MAINTENANCE_TASK.FAULT_CAUSE.eq
+            (maintenanceTaskBo.getFaultCause()));
         queryWrapper.and(MAINTENANCE_TASK.STATUS.eq
             (maintenanceTaskBo.getStatus()));
+        queryWrapper.and(MAINTENANCE_TASK.REMARKS.eq
+            (maintenanceTaskBo.getRemarks()));
 
         return queryWrapper;
     }
 
     /**
-     * 查询维修任务
+     * 查询维修信息
      *
-     * @param id 维修任务主键
-     * @return 维修任务
+     * @param id 维修信息主键
+     * @return 维修信息
      */
     @Override
     public MaintenanceTaskVo selectById(Long id) {
@@ -81,10 +105,10 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
 
 
     /**
-     * 查询维修任务列表
+     * 查询维修信息列表
      *
-     * @param maintenanceTaskBo 维修任务Bo
-     * @return 维修任务集合
+     * @param maintenanceTaskBo 维修信息Bo
+     * @return 维修信息集合
      */
     @Override
     public List<MaintenanceTaskVo> selectList(MaintenanceTaskBo maintenanceTaskBo) {
@@ -93,10 +117,10 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
     }
 
     /**
-     * 分页查询维修任务列表
+     * 分页查询维修信息列表
      *
-     * @param maintenanceTaskBo 维修任务Bo
-     * @return 分页维修任务集合
+     * @param maintenanceTaskBo 维修信息Bo
+     * @return 分页维修信息集合
      */
     @Override
     public PageResult<MaintenanceTaskVo> selectPage(MaintenanceTaskBo maintenanceTaskBo) {
@@ -106,9 +130,9 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
     }
 
     /**
-     * 新增维修任务
+     * 新增维修信息
      *
-     * @param maintenanceTaskBo 维修任务Bo
+     * @param maintenanceTaskBo 维修信息Bo
      * @return 结果:true 操作成功,false 操作失败
      */
     @Override
@@ -119,9 +143,9 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
     }
 
     /**
-     * 新增维修任务,前台提供主键值,一般用于导入的场合
+     * 新增维修信息,前台提供主键值,一般用于导入的场合
      *
-     * @param maintenanceTaskBo 维修任务Bo
+     * @param maintenanceTaskBo 维修信息Bo
      * @return 结果:true 操作成功,false 操作失败
      */
     @Override
@@ -133,20 +157,36 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
     }
 
     /**
-     * 修改维修任务
+     * 修改维修信息
      *
-     * @param maintenanceTaskBo 维修任务Bo
+     * @param maintenanceTaskBo 维修信息Bo
      * @return 结果:true 更新成功,false 更新失败
      */
     @Override
     public boolean update(MaintenanceTaskBo maintenanceTaskBo) {
         MaintenanceTask maintenanceTask = MapstructUtils.convert(maintenanceTaskBo, MaintenanceTask.class);
         if (ObjectUtil.isNotNull(maintenanceTask) && ObjectUtil.isNotNull(maintenanceTask.getId())) {
-            return this.updateById(maintenanceTask);
+            boolean updated = this.updateById(maintenanceTask);
+            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, MaintenanceTaskImportVo.class, new MaintenanceTaskImportListener(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<MaintenanceTaskVo> listVo, String sheetName, LoginUser loginUser) {
         ExcelResultRes result = excelService.exportExcel(listVo, sheetName, MaintenanceTaskVo.class);
@@ -157,9 +197,9 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
     }
 
     /**
-     * 批量删除维修任务
+     * 批量删除维修信息
      *
-     * @param ids 需要删除的维修任务主键集合
+     * @param ids 需要删除的维修信息主键集合
      * @return 结果:true 删除成功,false 删除失败
      */
     @Transactional

+ 196 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/PersonnelAllocationServiceImpl.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.PersonnelAllocationMapper;
+import org.eco.als.domain.PersonnelAllocation;
+import org.eco.als.domain.bo.PersonnelAllocationBo;
+import org.eco.als.domain.vo.PersonnelAllocationVo;
+import org.eco.als.domain.vo.PersonnelAllocationImportVo;
+import org.eco.als.listener.PersonnelAllocationImportListener;
+import org.eco.als.service.IPersonnelAllocationService;
+
+import static org.eco.als.domain.table.PersonnelAllocationTableDef.PERSONNEL_ALLOCATION;
+
+/**
+ * 维修任务任务派遣Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Service
+@Slf4j
+public class PersonnelAllocationServiceImpl extends BaseServiceImpl<PersonnelAllocationMapper, PersonnelAllocation> implements IPersonnelAllocationService {
+    @Resource
+    private PersonnelAllocationMapper personnelAllocationMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(PERSONNEL_ALLOCATION);
+    }
+
+    private QueryWrapper buildQueryWrapper(PersonnelAllocationBo personnelAllocationBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(PERSONNEL_ALLOCATION.TASK_ID.eq
+            (personnelAllocationBo.getTaskId()));
+        queryWrapper.and(PERSONNEL_ALLOCATION.PERSONNEL.eq
+            (personnelAllocationBo.getPersonnel()));
+        queryWrapper.and(PERSONNEL_ALLOCATION.POSITION.eq
+            (personnelAllocationBo.getPosition()));
+        queryWrapper.and(PERSONNEL_ALLOCATION.QUANTITY.eq
+            (personnelAllocationBo.getQuantity()));
+        queryWrapper.and(PERSONNEL_ALLOCATION.DUTIES.eq
+            (personnelAllocationBo.getDuties()));
+        queryWrapper.and(PERSONNEL_ALLOCATION.REMARKS.eq
+            (personnelAllocationBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询维修任务任务派遣
+     *
+     * @param id 维修任务任务派遣主键
+     * @return 维修任务任务派遣
+     */
+    @Override
+    public PersonnelAllocationVo selectById(Long id) {
+        return this.getOneAs(query().where(PERSONNEL_ALLOCATION.ID.eq(id)), PersonnelAllocationVo.class);
+
+    }
+
+
+    /**
+     * 查询维修任务任务派遣列表
+     *
+     * @param personnelAllocationBo 维修任务任务派遣Bo
+     * @return 维修任务任务派遣集合
+     */
+    @Override
+    public List<PersonnelAllocationVo> selectList(PersonnelAllocationBo personnelAllocationBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(personnelAllocationBo);
+        return this.listAs(queryWrapper, PersonnelAllocationVo.class);
+    }
+
+    /**
+     * 分页查询维修任务任务派遣列表
+     *
+     * @param personnelAllocationBo 维修任务任务派遣Bo
+     * @return 分页维修任务任务派遣集合
+     */
+    @Override
+    public PageResult<PersonnelAllocationVo> selectPage(PersonnelAllocationBo personnelAllocationBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(personnelAllocationBo);
+        Page<PersonnelAllocationVo> page = this.pageAs(PageQuery.build(), queryWrapper, PersonnelAllocationVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增维修任务任务派遣
+     *
+     * @param personnelAllocationBo 维修任务任务派遣Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(PersonnelAllocationBo personnelAllocationBo) {
+        PersonnelAllocation personnelAllocation = MapstructUtils.convert(personnelAllocationBo, PersonnelAllocation.class);
+
+        return this.save(personnelAllocation);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增维修任务任务派遣,前台提供主键值,一般用于导入的场合
+     *
+     * @param personnelAllocationBo 维修任务任务派遣Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(PersonnelAllocationBo personnelAllocationBo) {
+        PersonnelAllocation personnelAllocation = MapstructUtils.convert(personnelAllocationBo, PersonnelAllocation.class);
+
+
+        return personnelAllocationMapper.insertWithPk(personnelAllocation) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改维修任务任务派遣
+     *
+     * @param personnelAllocationBo 维修任务任务派遣Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(PersonnelAllocationBo personnelAllocationBo) {
+        PersonnelAllocation personnelAllocation = MapstructUtils.convert(personnelAllocationBo, PersonnelAllocation.class);
+        if (ObjectUtil.isNotNull(personnelAllocation) && ObjectUtil.isNotNull(personnelAllocation.getId())) {
+            boolean updated = this.updateById(personnelAllocation);
+            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, PersonnelAllocationImportVo.class, new PersonnelAllocationImportListener(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<PersonnelAllocationVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, PersonnelAllocationVo.class);
+        boolean flag = importExportService.saveInfo(result, loginUser, "1");
+        if (flag) {
+            log.info("异步导出日志写入成功");
+        }
+    }
+
+    /**
+     * 批量删除维修任务任务派遣
+     *
+     * @param ids 需要删除的维修任务任务派遣主键集合
+     * @return 结果:true 删除成功,false 删除失败
+     */
+    @Transactional
+    @Override
+    public boolean deleteByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+    }
+
+}

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

@@ -0,0 +1,200 @@
+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.ResourceAllocationMapper;
+import org.eco.als.domain.ResourceAllocation;
+import org.eco.als.domain.bo.ResourceAllocationBo;
+import org.eco.als.domain.vo.ResourceAllocationVo;
+import org.eco.als.domain.vo.ResourceAllocationImportVo;
+import org.eco.als.listener.ResourceAllocationImportListener;
+import org.eco.als.service.IResourceAllocationService;
+
+import static org.eco.als.domain.table.ResourceAllocationTableDef.RESOURCE_ALLOCATION;
+
+/**
+ * 维修任务资源分配Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-11-14
+ */
+@Service
+@Slf4j
+public class ResourceAllocationServiceImpl extends BaseServiceImpl<ResourceAllocationMapper, ResourceAllocation> implements IResourceAllocationService {
+    @Resource
+    private ResourceAllocationMapper resourceAllocationMapper;
+
+    @Resource
+    private IExcelService excelService;
+
+    @Resource
+    private IImportExportService importExportService;
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(RESOURCE_ALLOCATION);
+    }
+
+    private QueryWrapper buildQueryWrapper(ResourceAllocationBo resourceAllocationBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(RESOURCE_ALLOCATION.TASK_ID.eq
+            (resourceAllocationBo.getTaskId()));
+        queryWrapper.and(RESOURCE_ALLOCATION.DEVICE_CODE.eq
+            (resourceAllocationBo.getDeviceCode()));
+        queryWrapper.and(RESOURCE_ALLOCATION.DEVICE_NAME.like
+            (resourceAllocationBo.getDeviceName()));
+        queryWrapper.and(RESOURCE_ALLOCATION.TYPE.eq
+            (resourceAllocationBo.getType()));
+        queryWrapper.and(RESOURCE_ALLOCATION.MODEL_NUMBER.eq
+            (resourceAllocationBo.getModelNumber()));
+        queryWrapper.and(RESOURCE_ALLOCATION.QUANTITY.eq
+            (resourceAllocationBo.getQuantity()));
+        queryWrapper.and(RESOURCE_ALLOCATION.PURPOSE.eq
+            (resourceAllocationBo.getPurpose()));
+        queryWrapper.and(RESOURCE_ALLOCATION.REMARKS.eq
+            (resourceAllocationBo.getRemarks()));
+
+        return queryWrapper;
+    }
+
+    /**
+     * 查询维修任务资源分配
+     *
+     * @param id 维修任务资源分配主键
+     * @return 维修任务资源分配
+     */
+    @Override
+    public ResourceAllocationVo selectById(Long id) {
+        return this.getOneAs(query().where(RESOURCE_ALLOCATION.ID.eq(id)), ResourceAllocationVo.class);
+
+    }
+
+
+    /**
+     * 查询维修任务资源分配列表
+     *
+     * @param resourceAllocationBo 维修任务资源分配Bo
+     * @return 维修任务资源分配集合
+     */
+    @Override
+    public List<ResourceAllocationVo> selectList(ResourceAllocationBo resourceAllocationBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(resourceAllocationBo);
+        return this.listAs(queryWrapper, ResourceAllocationVo.class);
+    }
+
+    /**
+     * 分页查询维修任务资源分配列表
+     *
+     * @param resourceAllocationBo 维修任务资源分配Bo
+     * @return 分页维修任务资源分配集合
+     */
+    @Override
+    public PageResult<ResourceAllocationVo> selectPage(ResourceAllocationBo resourceAllocationBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(resourceAllocationBo);
+        Page<ResourceAllocationVo> page = this.pageAs(PageQuery.build(), queryWrapper, ResourceAllocationVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增维修任务资源分配
+     *
+     * @param resourceAllocationBo 维修任务资源分配Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(ResourceAllocationBo resourceAllocationBo) {
+        ResourceAllocation resourceAllocation = MapstructUtils.convert(resourceAllocationBo, ResourceAllocation.class);
+
+        return this.save(resourceAllocation);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+    /**
+     * 新增维修任务资源分配,前台提供主键值,一般用于导入的场合
+     *
+     * @param resourceAllocationBo 维修任务资源分配Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insertWithPk(ResourceAllocationBo resourceAllocationBo) {
+        ResourceAllocation resourceAllocation = MapstructUtils.convert(resourceAllocationBo, ResourceAllocation.class);
+
+
+        return resourceAllocationMapper.insertWithPk(resourceAllocation) > 0;//前台传来主键值
+    }
+
+    /**
+     * 修改维修任务资源分配
+     *
+     * @param resourceAllocationBo 维修任务资源分配Bo
+     * @return 结果:true 更新成功,false 更新失败
+     */
+    @Override
+    public boolean update(ResourceAllocationBo resourceAllocationBo) {
+        ResourceAllocation resourceAllocation = MapstructUtils.convert(resourceAllocationBo, ResourceAllocation.class);
+        if (ObjectUtil.isNotNull(resourceAllocation) && ObjectUtil.isNotNull(resourceAllocation.getId())) {
+            boolean updated = this.updateById(resourceAllocation);
+            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, ResourceAllocationImportVo.class, new ResourceAllocationImportListener(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<ResourceAllocationVo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, ResourceAllocationVo.class);
+        boolean flag = importExportService.saveInfo(result, loginUser, "1");
+        if (flag) {
+            log.info("异步导出日志写入成功");
+        }
+    }
+
+    /**
+     * 批量删除维修任务资源分配
+     *
+     * @param ids 需要删除的维修任务资源分配主键集合
+     * @return 结果:true 删除成功,false 删除失败
+     */
+    @Transactional
+    @Override
+    public boolean deleteByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+    }
+
+}

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

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.eco.als.mapper.PersonnelAllocationMapper">
+
+</mapper>

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

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.eco.als.mapper.ResourceAllocationMapper">
+
+</mapper>