|
|
@@ -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);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|