Browse Source

电子发放

xuzhancheng 2 weeks ago
parent
commit
560e5bbec0
11 changed files with 263 additions and 15 deletions
  1. 11 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilerelectronicreportauditrecord/BoilerElectronicReportAuditRecordController.java
  2. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilerelectronicreportauditrecord/vo/BoilerElectronicReportAuditRecordPageReqVO.java
  3. 9 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilerelectronicreportauditrecord/vo/BoilerElectronicReportAuditRecordRespVO.java
  4. 11 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeelectronicreportauditrecord/PipeElectronicReportAuditRecordController.java
  5. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeelectronicreportauditrecord/vo/PipeElectronicReportAuditRecordPageReqVO.java
  6. 9 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeelectronicreportauditrecord/vo/PipeElectronicReportAuditRecordRespVO.java
  7. 7 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilerelectronicreportauditrecord/BoilerElectronicReportAuditRecordService.java
  8. 101 2
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilerelectronicreportauditrecord/BoilerElectronicReportAuditRecordServiceImpl.java
  9. 6 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  10. 7 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeelectronicreportauditrecord/PipeElectronicReportAuditRecordService.java
  11. 90 2
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeelectronicreportauditrecord/PipeElectronicReportAuditRecordServiceImpl.java

+ 11 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilerelectronicreportauditrecord/BoilerElectronicReportAuditRecordController.java

@@ -53,6 +53,14 @@ public class BoilerElectronicReportAuditRecordController {
         return success(true);
     }
 
+    @PostMapping("/electronicReportAudit")
+    @Operation(summary = "锅炉电子报告审核")
+    @PreAuthorize("@ss.hasPermission('pressure2:boiler-electronic-report-audit-record:update')")
+    public CommonResult<Boolean> electronicReportAudit(@Valid @RequestBody BoilerElectronicReportAuditRecordSaveReqVO auditReqVO) {
+        boilerElectronicReportAuditRecordService.electronicReportAudit(auditReqVO);
+        return success(true);
+    }
+
     @DeleteMapping("/delete")
     @Operation(summary = "删除锅炉电子报告审核记录")
     @Parameter(name = "id", description = "编号", required = true)
@@ -75,8 +83,7 @@ public class BoilerElectronicReportAuditRecordController {
     @Operation(summary = "获得锅炉电子报告审核记录分页")
     @PreAuthorize("@ss.hasPermission('pressure2:boiler-electronic-report-audit-record:query')")
     public CommonResult<PageResult<BoilerElectronicReportAuditRecordRespVO>> getBoilerElectronicReportAuditRecordPage(@Valid BoilerElectronicReportAuditRecordPageReqVO pageReqVO) {
-        PageResult<BoilerElectronicReportAuditRecordDO> pageResult = boilerElectronicReportAuditRecordService.getBoilerElectronicReportAuditRecordPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, BoilerElectronicReportAuditRecordRespVO.class));
+        return success(boilerElectronicReportAuditRecordService.getBoilerElectronicReportAuditRecordPage(pageReqVO));
     }
 
     @GetMapping("/export-excel")
@@ -86,10 +93,10 @@ public class BoilerElectronicReportAuditRecordController {
     public void exportBoilerElectronicReportAuditRecordExcel(@Valid BoilerElectronicReportAuditRecordPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<BoilerElectronicReportAuditRecordDO> list = boilerElectronicReportAuditRecordService.getBoilerElectronicReportAuditRecordPage(pageReqVO).getList();
+        List<BoilerElectronicReportAuditRecordRespVO> list = boilerElectronicReportAuditRecordService.getBoilerElectronicReportAuditRecordPage(pageReqVO).getList();
         // 导出 Excel
         ExcelUtils.write(response, "锅炉电子报告审核记录.xls", "数据", BoilerElectronicReportAuditRecordRespVO.class,
-                        BeanUtils.toBean(list, BoilerElectronicReportAuditRecordRespVO.class));
+                        list);
     }
 
 }

+ 6 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilerelectronicreportauditrecord/vo/BoilerElectronicReportAuditRecordPageReqVO.java

@@ -58,6 +58,12 @@ public class BoilerElectronicReportAuditRecordPageReqVO extends PageParam {
     @Schema(description = "审核人", example = "19924")
     private String reportAuditId;
 
+    @Schema(description = "任务单号")
+    private String orderNo;
+
+    @Schema(description = "任务单ids")
+    private List<String> orderIds;
+
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;

+ 9 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilerelectronicreportauditrecord/vo/BoilerElectronicReportAuditRecordRespVO.java

@@ -54,6 +54,9 @@ public class BoilerElectronicReportAuditRecordRespVO {
     @ExcelProperty("提交人")
     private String submitId;
 
+    @Schema(description = "提交人名称")
+    private String submitName;
+
     @Schema(description = "提交时间")
     @ExcelProperty("提交时间")
     private LocalDateTime submitTime;
@@ -70,6 +73,12 @@ public class BoilerElectronicReportAuditRecordRespVO {
     @ExcelProperty("审核人")
     private String reportAuditId;
 
+    @Schema(description = "审核人名称")
+    private String reportAuditName;
+
+    @Schema(description = "任务单号")
+    private String orderNo;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 11 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeelectronicreportauditrecord/PipeElectronicReportAuditRecordController.java

@@ -53,6 +53,14 @@ public class PipeElectronicReportAuditRecordController {
         return success(true);
     }
 
+    @PostMapping("/electronicReportAudit")
+    @Operation(summary = "管道电子报告审核")
+    @PreAuthorize("@ss.hasPermission('pressure2:pipe-electronic-report-audit-record:update')")
+    public CommonResult<Boolean> electronicReportAudit(@Valid @RequestBody PipeElectronicReportAuditRecordSaveReqVO auditReqVO) {
+        pipeElectronicReportAuditRecordService.electronicReportAudit(auditReqVO);
+        return success(true);
+    }
+
     @DeleteMapping("/delete")
     @Operation(summary = "删除管道电子报告审核记录")
     @Parameter(name = "id", description = "编号", required = true)
@@ -75,8 +83,7 @@ public class PipeElectronicReportAuditRecordController {
     @Operation(summary = "获得管道电子报告审核记录分页")
     @PreAuthorize("@ss.hasPermission('pressure2:pipe-electronic-report-audit-record:query')")
     public CommonResult<PageResult<PipeElectronicReportAuditRecordRespVO>> getPipeElectronicReportAuditRecordPage(@Valid PipeElectronicReportAuditRecordPageReqVO pageReqVO) {
-        PageResult<PipeElectronicReportAuditRecordDO> pageResult = pipeElectronicReportAuditRecordService.getPipeElectronicReportAuditRecordPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, PipeElectronicReportAuditRecordRespVO.class));
+        return success(pipeElectronicReportAuditRecordService.getPipeElectronicReportAuditRecordPage(pageReqVO));
     }
 
     @GetMapping("/export-excel")
@@ -86,10 +93,10 @@ public class PipeElectronicReportAuditRecordController {
     public void exportPipeElectronicReportAuditRecordExcel(@Valid PipeElectronicReportAuditRecordPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<PipeElectronicReportAuditRecordDO> list = pipeElectronicReportAuditRecordService.getPipeElectronicReportAuditRecordPage(pageReqVO).getList();
+        List<PipeElectronicReportAuditRecordRespVO> list = pipeElectronicReportAuditRecordService.getPipeElectronicReportAuditRecordPage(pageReqVO).getList();
         // 导出 Excel
         ExcelUtils.write(response, "管道电子报告审核记录.xls", "数据", PipeElectronicReportAuditRecordRespVO.class,
-                        BeanUtils.toBean(list, PipeElectronicReportAuditRecordRespVO.class));
+                        list);
     }
 
 }

+ 6 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeelectronicreportauditrecord/vo/PipeElectronicReportAuditRecordPageReqVO.java

@@ -58,6 +58,12 @@ public class PipeElectronicReportAuditRecordPageReqVO extends PageParam {
     @Schema(description = "审核人", example = "21585")
     private String reportAuditId;
 
+    @Schema(description = "任务单号")
+    private String orderNo;
+
+    @Schema(description = "任务单ids")
+    private List<String> orderIds;
+
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;

+ 9 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeelectronicreportauditrecord/vo/PipeElectronicReportAuditRecordRespVO.java

@@ -54,6 +54,9 @@ public class PipeElectronicReportAuditRecordRespVO {
     @ExcelProperty("提交人")
     private String submitId;
 
+    @Schema(description = "提交人名称")
+    private String submitName;
+
     @Schema(description = "提交时间")
     @ExcelProperty("提交时间")
     private LocalDateTime submitTime;
@@ -70,6 +73,12 @@ public class PipeElectronicReportAuditRecordRespVO {
     @ExcelProperty("审核人")
     private String reportAuditId;
 
+    @Schema(description = "审核人名称")
+    private String reportAuditName;
+
+    @Schema(description = "任务单号")
+    private String orderNo;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 7 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilerelectronicreportauditrecord/BoilerElectronicReportAuditRecordService.java

@@ -51,6 +51,12 @@ public interface BoilerElectronicReportAuditRecordService extends IService<Boile
      * @param pageReqVO 分页查询
      * @return 锅炉电子报告审核记录分页
      */
-    PageResult<BoilerElectronicReportAuditRecordDO> getBoilerElectronicReportAuditRecordPage(BoilerElectronicReportAuditRecordPageReqVO pageReqVO);
+    PageResult<BoilerElectronicReportAuditRecordRespVO> getBoilerElectronicReportAuditRecordPage(BoilerElectronicReportAuditRecordPageReqVO pageReqVO);
+
+    /**
+     * 锅炉电子报告审核
+     * @param auditReqVO 入参
+     */
+    void electronicReportAudit(@Valid BoilerElectronicReportAuditRecordSaveReqVO auditReqVO);
 
 }

+ 101 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilerelectronicreportauditrecord/BoilerElectronicReportAuditRecordServiceImpl.java

@@ -1,5 +1,19 @@
 package cn.start.tz.module.pressure2.service.boilerelectronicreportauditrecord;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.start.tz.framework.common.exception.ErrorCode;
+import cn.start.tz.framework.common.util.json.JsonUtils;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.module.bpm.api.task.BpmUserGroupApi;
+import cn.start.tz.module.bpm.api.task.dto.BpmUserGroupDTO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorderissuereport.vo.BoilerTaskOrderIssueReportVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
+import cn.start.tz.module.pressure2.service.boilertaskorderissuereport.BoilerTaskOrderIssueReportService;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import jakarta.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -7,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import cn.start.tz.module.pressure2.controller.admin.boilerelectronicreportauditrecord.vo.*;
 import cn.start.tz.module.pressure2.dal.dataobject.boilerelectronicreportauditrecord.BoilerElectronicReportAuditRecordDO;
 import cn.start.tz.framework.common.pojo.PageResult;
@@ -16,6 +32,7 @@ import cn.start.tz.framework.common.util.object.BeanUtils;
 import cn.start.tz.module.pressure2.dal.mysql.boilerelectronicreportauditrecord.BoilerElectronicReportAuditRecordMapper;
 
 import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.*;
 
 /**
@@ -30,6 +47,18 @@ public class BoilerElectronicReportAuditRecordServiceImpl extends ServiceImpl<Bo
     @Resource
     private BoilerElectronicReportAuditRecordMapper boilerElectronicReportAuditRecordMapper;
 
+    @Resource
+    private BpmUserGroupApi bpmUserGroupApi;
+
+    @Resource
+    private BoilerTaskOrderIssueReportService boilerTaskOrderIssueReportService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Resource
+    private BoilerTaskOrderMapper boilerTaskOrderMapper;
+
     @Override
     public String createBoilerElectronicReportAuditRecord(BoilerElectronicReportAuditRecordSaveReqVO createReqVO) {
         // 插入
@@ -68,8 +97,78 @@ public class BoilerElectronicReportAuditRecordServiceImpl extends ServiceImpl<Bo
     }
 
     @Override
-    public PageResult<BoilerElectronicReportAuditRecordDO> getBoilerElectronicReportAuditRecordPage(BoilerElectronicReportAuditRecordPageReqVO pageReqVO) {
-        return boilerElectronicReportAuditRecordMapper.selectPage(pageReqVO);
+    public PageResult<BoilerElectronicReportAuditRecordRespVO> getBoilerElectronicReportAuditRecordPage(BoilerElectronicReportAuditRecordPageReqVO pageReqVO) {
+        if (StringUtils.isNotEmpty(pageReqVO.getOrderNo())) {
+            LambdaQueryWrapperX<BoilerTaskOrderDO> queryWrapperX = new LambdaQueryWrapperX<>();
+            queryWrapperX.like(BoilerTaskOrderDO::getOrderNo, pageReqVO.getOrderNo());
+            List<BoilerTaskOrderDO> taskOrderDOS = boilerTaskOrderMapper.selectList(queryWrapperX);
+            if (CollUtil.isNotEmpty(taskOrderDOS)) {
+                List<String> orderIds = taskOrderDOS.stream().map(BoilerTaskOrderDO::getId).toList();
+                pageReqVO.setOrderIds(orderIds);
+            } else {
+                return PageResult.empty();
+            }
+        }
+        PageResult<BoilerElectronicReportAuditRecordDO> pageResult = boilerElectronicReportAuditRecordMapper.selectPage(pageReqVO);
+        PageResult<BoilerElectronicReportAuditRecordRespVO> result = BeanUtils.toBean(pageResult, BoilerElectronicReportAuditRecordRespVO.class);
+        if (ObjectUtil.isNotEmpty(result) && CollUtil.isNotEmpty(result.getList())) {
+            List<String> orderIds = result.getList().stream().map(BoilerElectronicReportAuditRecordRespVO::getOrderId).toList();
+            List<BoilerTaskOrderDO> taskOrderDOS = boilerTaskOrderMapper.selectByIds(orderIds);
+            List<String> allUserIds = result.getList().stream().flatMap(vo -> Stream.of(vo.getSubmitId(), vo.getReportAuditId())).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+            Map<String, AdminUserRespDTO> userMap = adminUserApi.getUserMap(allUserIds);
+            result.getList().forEach(x -> {
+                AdminUserRespDTO submitUser = userMap.get(x.getSubmitId());
+                if (ObjectUtil.isNotEmpty(submitUser)) {
+                    x.setSubmitName(submitUser.getNickname());
+                }
+                AdminUserRespDTO auditUser = userMap.get(x.getReportAuditId());
+                if (ObjectUtil.isNotEmpty(auditUser)) {
+                    x.setReportAuditName(auditUser.getNickname());
+                }
+                if (CollUtil.isNotEmpty(taskOrderDOS)) {
+                    List<BoilerTaskOrderDO> list = taskOrderDOS.stream().filter(taskOrder -> taskOrder.getId().equals(x.getOrderId())).toList();
+                    if (CollUtil.isNotEmpty(list)) {
+                        x.setOrderNo(list.get(0).getOrderNo());
+                    }
+                }
+            });
+        }
+        return result;
+    }
+
+    /**
+     * 锅炉电子报告审核
+     * @param auditReqVO 入参
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void electronicReportAudit(BoilerElectronicReportAuditRecordSaveReqVO auditReqVO) {
+        BoilerElectronicReportAuditRecordDO boilerElectronicReportAuditRecordDO = boilerElectronicReportAuditRecordMapper.selectById(auditReqVO.getId());
+        if (ObjectUtil.isEmpty(boilerElectronicReportAuditRecordDO)) {
+            throw exception(new ErrorCode(1001, "锅炉电子报告审核记录不存在"));
+        }
+
+        String userId = getLoginUserId();
+
+        BpmUserGroupDTO bpmUserGroupDTO = new BpmUserGroupDTO();
+        bpmUserGroupDTO.setCategory(1100);
+        PageResult<BpmUserGroupDTO> bpmUserGroupPage = bpmUserGroupApi.getBpmUserGroup(bpmUserGroupDTO).getCheckedData();
+        if (ObjectUtil.isEmpty(bpmUserGroupPage) || CollUtil.isEmpty(bpmUserGroupPage.getList()) || CollUtil.isEmpty(bpmUserGroupPage.getList().get(0).getUserIds())) {
+            throw exception(new ErrorCode(1001, "电子报告审核人分组尚未配置"));
+        }
+
+        if (!bpmUserGroupPage.getList().get(0).getUserIds().contains(userId)) {
+            throw exception(new ErrorCode(1001, "当前用户不存在审核分组中,无法审核"));
+        }
+        boilerElectronicReportAuditRecordDO.setRejectiveDist(auditReqVO.getRejectiveDist());
+        boilerElectronicReportAuditRecordDO.setAuditStatus(auditReqVO.getAuditStatus());
+        boilerElectronicReportAuditRecordDO.setReportAuditId(userId);
+        boilerElectronicReportAuditRecordMapper.updateById(boilerElectronicReportAuditRecordDO);
+        //审核通过后出具报告
+        if (Integer.valueOf(1).equals(auditReqVO.getAuditStatus())) {
+            BoilerTaskOrderIssueReportVO boilerTaskOrderIssueReportVO = JsonUtils.parseObject(boilerElectronicReportAuditRecordDO.getIssueReportObjectJson(), BoilerTaskOrderIssueReportVO.class);
+            boilerTaskOrderIssueReportService.taskOrderIssueReport(boilerTaskOrderIssueReportVO);
+        }
     }
 
 }

+ 6 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java

@@ -122,6 +122,7 @@ import cn.start.tz.module.pressure2.dal.mysql.reporttemplate.ReportTemplateMappe
 import cn.start.tz.module.pressure2.service.boilerconnectrecordreport.BoilerConnectRecordReportService;
 import cn.start.tz.module.pressure2.service.boilertaskorderfileversion.BoilerTaskOrderFileVersionService;
 import cn.start.tz.module.pressure2.service.appointmentconfirmrefuseyearitem.AppointmentConfirmRefuseYearItemService;
+import cn.start.tz.module.pressure2.service.boilertaskorderissuereport.BoilerTaskOrderIssueReportService;
 import cn.start.tz.module.pressure2.service.boilertaskorderitempart.BoilerTaskOrderItemPartService;
 import cn.start.tz.module.pressure2.service.boilertaskorderitemreport.BoilerTaskOrderItemReportService;
 import cn.start.tz.module.pressure2.service.boilertaskorderitemreportversion.BoilerTaskOrderItemReportVersionService;
@@ -6078,6 +6079,10 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         return true;
     }
 
+    @Resource
+    @Lazy
+    BoilerTaskOrderIssueReportService boilerTaskOrderIssueReportService;
+
     @Override
     public Boolean updatePayStatus(UpdatePayStatusDTO payInfo){
         String orderNo = payInfo.getOrderNo();
@@ -6132,7 +6137,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             List<BoilerTaskOrderItemDO> taskOrderItemDOList = boilerTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemDO>().
                     eq(BoilerTaskOrderItemDO::getOrderId, boilerTaskOrderDO.getId()).
                     ne(BoilerTaskOrderItemDO::getTaskStatus, TaskOrderStatusEnum.CANCEL.getStatus()));
-//            taskOrderIssueReportService.autoIssueTaskOrderReport(boilerTaskOrderDO, taskOrderItemDOList);
+            boilerTaskOrderIssueReportService.autoIssueTaskOrderReport(boilerTaskOrderDO, taskOrderItemDOList);
         }
         return true;
     }

+ 7 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeelectronicreportauditrecord/PipeElectronicReportAuditRecordService.java

@@ -51,6 +51,12 @@ public interface PipeElectronicReportAuditRecordService extends IService<PipeEle
      * @param pageReqVO 分页查询
      * @return 管道电子报告审核记录分页
      */
-    PageResult<PipeElectronicReportAuditRecordDO> getPipeElectronicReportAuditRecordPage(PipeElectronicReportAuditRecordPageReqVO pageReqVO);
+    PageResult<PipeElectronicReportAuditRecordRespVO> getPipeElectronicReportAuditRecordPage(PipeElectronicReportAuditRecordPageReqVO pageReqVO);
+
+    /**
+     * 管道电子报告审核
+     * @param auditReqVO 入参
+     */
+    void electronicReportAudit(@Valid PipeElectronicReportAuditRecordSaveReqVO auditReqVO);
 
 }

+ 90 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeelectronicreportauditrecord/PipeElectronicReportAuditRecordServiceImpl.java

@@ -1,5 +1,16 @@
 package cn.start.tz.module.pressure2.service.pipeelectronicreportauditrecord;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.start.tz.framework.common.exception.ErrorCode;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.module.bpm.api.task.BpmUserGroupApi;
+import cn.start.tz.module.bpm.api.task.dto.BpmUserGroupDTO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import jakarta.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -7,6 +18,8 @@ import org.springframework.transaction.annotation.Transactional;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import cn.start.tz.module.pressure2.controller.admin.pipeelectronicreportauditrecord.vo.*;
 import cn.start.tz.module.pressure2.dal.dataobject.pipeelectronicreportauditrecord.PipeElectronicReportAuditRecordDO;
 import cn.start.tz.framework.common.pojo.PageResult;
@@ -16,6 +29,7 @@ import cn.start.tz.framework.common.util.object.BeanUtils;
 import cn.start.tz.module.pressure2.dal.mysql.pipeelectronicreportauditrecord.PipeElectronicReportAuditRecordMapper;
 
 import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.*;
 
 /**
@@ -30,6 +44,15 @@ public class PipeElectronicReportAuditRecordServiceImpl extends ServiceImpl<Pipe
     @Resource
     private PipeElectronicReportAuditRecordMapper pipeElectronicReportAuditRecordMapper;
 
+    @Resource
+    private BpmUserGroupApi bpmUserGroupApi;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
     @Override
     public String createPipeElectronicReportAuditRecord(PipeElectronicReportAuditRecordSaveReqVO createReqVO) {
         // 插入
@@ -68,8 +91,73 @@ public class PipeElectronicReportAuditRecordServiceImpl extends ServiceImpl<Pipe
     }
 
     @Override
-    public PageResult<PipeElectronicReportAuditRecordDO> getPipeElectronicReportAuditRecordPage(PipeElectronicReportAuditRecordPageReqVO pageReqVO) {
-        return pipeElectronicReportAuditRecordMapper.selectPage(pageReqVO);
+    public PageResult<PipeElectronicReportAuditRecordRespVO> getPipeElectronicReportAuditRecordPage(PipeElectronicReportAuditRecordPageReqVO pageReqVO) {
+        if (StringUtils.isNotEmpty(pageReqVO.getOrderNo())) {
+            LambdaQueryWrapperX<PipeTaskOrderDO> queryWrapperX = new LambdaQueryWrapperX<>();
+            queryWrapperX.like(PipeTaskOrderDO::getOrderNo, pageReqVO.getOrderNo());
+            List<PipeTaskOrderDO> taskOrderDOS = pipeTaskOrderMapper.selectList(queryWrapperX);
+            if (CollUtil.isNotEmpty(taskOrderDOS)) {
+                List<String> orderIds = taskOrderDOS.stream().map(PipeTaskOrderDO::getId).toList();
+                pageReqVO.setOrderIds(orderIds);
+            } else {
+                return PageResult.empty();
+            }
+        }
+        PageResult<PipeElectronicReportAuditRecordDO> pageResult = pipeElectronicReportAuditRecordMapper.selectPage(pageReqVO);
+        PageResult<PipeElectronicReportAuditRecordRespVO> result = BeanUtils.toBean(pageResult, PipeElectronicReportAuditRecordRespVO.class);
+        if (ObjectUtil.isNotEmpty(result) && CollUtil.isNotEmpty(result.getList())) {
+            List<String> orderIds = result.getList().stream().map(PipeElectronicReportAuditRecordRespVO::getOrderId).toList();
+            List<PipeTaskOrderDO> taskOrderDOS = pipeTaskOrderMapper.selectByIds(orderIds);
+            List<String> allUserIds = result.getList().stream().flatMap(vo -> Stream.of(vo.getSubmitId(), vo.getReportAuditId())).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+            Map<String, AdminUserRespDTO> userMap = adminUserApi.getUserMap(allUserIds);
+            result.getList().forEach(x -> {
+                AdminUserRespDTO submitUser = userMap.get(x.getSubmitId());
+                if (ObjectUtil.isNotEmpty(submitUser)) {
+                    x.setSubmitName(submitUser.getNickname());
+                }
+                AdminUserRespDTO auditUser = userMap.get(x.getReportAuditId());
+                if (ObjectUtil.isNotEmpty(auditUser)) {
+                    x.setReportAuditName(auditUser.getNickname());
+                }
+                if (CollUtil.isNotEmpty(taskOrderDOS)) {
+                    List<PipeTaskOrderDO> list = taskOrderDOS.stream().filter(taskOrder -> taskOrder.getId().equals(x.getOrderId())).toList();
+                    if (CollUtil.isNotEmpty(list)) {
+                        x.setOrderNo(list.get(0).getOrderNo());
+                    }
+                }
+            });
+        }
+        return result;
+    }
+
+    /**
+     * 管道电子报告审核
+     * @param auditReqVO 入参
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void electronicReportAudit(PipeElectronicReportAuditRecordSaveReqVO auditReqVO) {
+        PipeElectronicReportAuditRecordDO pipeElectronicReportAuditRecordDO = pipeElectronicReportAuditRecordMapper.selectById(auditReqVO.getId());
+        if (ObjectUtil.isEmpty(pipeElectronicReportAuditRecordDO)) {
+            throw exception(new ErrorCode(1001, "管道电子报告审核记录不存在"));
+        }
+
+        String userId = getLoginUserId();
+
+        BpmUserGroupDTO bpmUserGroupDTO = new BpmUserGroupDTO();
+        bpmUserGroupDTO.setCategory(1100);
+        PageResult<BpmUserGroupDTO> bpmUserGroupPage = bpmUserGroupApi.getBpmUserGroup(bpmUserGroupDTO).getCheckedData();
+        if (ObjectUtil.isEmpty(bpmUserGroupPage) || CollUtil.isEmpty(bpmUserGroupPage.getList()) || CollUtil.isEmpty(bpmUserGroupPage.getList().get(0).getUserIds())) {
+            throw exception(new ErrorCode(1001, "电子报告审核人分组尚未配置"));
+        }
+
+        if (!bpmUserGroupPage.getList().get(0).getUserIds().contains(userId)) {
+            throw exception(new ErrorCode(1001, "当前用户不存在审核分组中,无法审核"));
+        }
+        pipeElectronicReportAuditRecordDO.setRejectiveDist(auditReqVO.getRejectiveDist());
+        pipeElectronicReportAuditRecordDO.setAuditStatus(auditReqVO.getAuditStatus());
+        pipeElectronicReportAuditRecordDO.setReportAuditId(userId);
+        pipeElectronicReportAuditRecordMapper.updateById(pipeElectronicReportAuditRecordDO);
     }
 
 }