|
@@ -11,19 +11,14 @@ import cn.start.tz.module.infra.api.file.FileApi;
|
|
|
import cn.start.tz.module.pressure.enums.EquipmentCheckTypeEnum;
|
|
import cn.start.tz.module.pressure.enums.EquipmentCheckTypeEnum;
|
|
|
import cn.start.tz.module.pressure.enums.TaskOrderItemReportTypeEnum;
|
|
import cn.start.tz.module.pressure.enums.TaskOrderItemReportTypeEnum;
|
|
|
import cn.start.tz.module.pressure.enums.TaskOrderStatusEnum;
|
|
import cn.start.tz.module.pressure.enums.TaskOrderStatusEnum;
|
|
|
-import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BatchRecheckOrderItemVO;
|
|
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.InspectionOpinionApprovalVo;
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.InspectionOpinionApprovalVo;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.ReportUploadVO;
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.ReportUploadVO;
|
|
|
-import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.TaskOrderMainCheckVO;
|
|
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportrecord.BoilerTaskOrderItemReportRecordDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportrecord.BoilerTaskOrderItemReportRecordDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.equipboilercheckhistory.EquipBoilerCheckHistoryDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.equipboilercheckhistory.EquipBoilerCheckHistoryDO;
|
|
|
-import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
|
|
|
|
|
-import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
|
|
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
|
|
|
-import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportrecord.BoilerTaskOrderItemReportRecordDO;
|
|
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.reporttemplate.ReportTemplateDO;
|
|
import cn.start.tz.module.pressure2.dal.dataobject.reporttemplate.ReportTemplateDO;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
|
|
@@ -39,7 +34,6 @@ import cn.start.tz.module.pressure2.service.externalOA.vo.ExternalOARes;
|
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderissuereport.BoilerTaskOrderIssueReportService;
|
|
import cn.start.tz.module.pressure2.service.boilertaskorderissuereport.BoilerTaskOrderIssueReportService;
|
|
|
import cn.start.tz.module.pressure2.service.pushtaskorder.PushTaskOrderService;
|
|
import cn.start.tz.module.pressure2.service.pushtaskorder.PushTaskOrderService;
|
|
|
import cn.start.tz.module.pressure2.service.synchronization.SynchronizationService;
|
|
import cn.start.tz.module.pressure2.service.synchronization.SynchronizationService;
|
|
|
-import cn.start.tz.module.pressure2.service.synchronization.dto.ReportDto;
|
|
|
|
|
import cn.start.tz.module.pressure2.service.taskordernontaxapply.TaskOrderNonTaxApplyService;
|
|
import cn.start.tz.module.pressure2.service.taskordernontaxapply.TaskOrderNonTaxApplyService;
|
|
|
import cn.start.tz.module.pressure2.service.taskordernontaxapply.vo.TaskOrderNonTaxApplyCreateVO;
|
|
import cn.start.tz.module.pressure2.service.taskordernontaxapply.vo.TaskOrderNonTaxApplyCreateVO;
|
|
|
import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
import cn.start.tz.module.system.api.user.AdminUserApi;
|
|
@@ -57,7 +51,6 @@ import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
@@ -67,9 +60,7 @@ import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
|
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitemreport.vo.*;
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitemreport.vo.*;
|
|
|
-import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
|
|
|
|
|
import cn.start.tz.framework.common.pojo.PageResult;
|
|
import cn.start.tz.framework.common.pojo.PageResult;
|
|
|
-import cn.start.tz.framework.common.pojo.PageParam;
|
|
|
|
|
import cn.start.tz.framework.common.util.object.BeanUtils;
|
|
import cn.start.tz.framework.common.util.object.BeanUtils;
|
|
|
|
|
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
|
|
@@ -315,9 +306,12 @@ public class BoilerTaskOrderItemReportServiceImpl extends ServiceImpl<BoilerTask
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public void updateReport() {
|
|
public void updateReport() {
|
|
|
- // 找出全部审核中的
|
|
|
|
|
|
|
+ // 找出全部审核中和审批中的
|
|
|
List<BoilerTaskOrderItemReportDO> boilerTaskOrderItemReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
|
|
List<BoilerTaskOrderItemReportDO> boilerTaskOrderItemReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
|
|
|
- .eq(BoilerTaskOrderItemReportDO::getTaskStatus, cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.REPORT_APPROVAL.getStatus()).isNotNull(BoilerTaskOrderItemReportDO::getSummaryId));
|
|
|
|
|
|
|
+ .in(BoilerTaskOrderItemReportDO::getTaskStatus, List.of(
|
|
|
|
|
+ cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.REPORT_APPROVAL.getStatus(),
|
|
|
|
|
+ cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.REPORT_RATIFY.getStatus()))
|
|
|
|
|
+ .isNotNull(BoilerTaskOrderItemReportDO::getSummaryId));
|
|
|
boilerTaskOrderItemReportDOS.parallelStream().forEach(boilerTaskOrderItemReportDO -> {
|
|
boilerTaskOrderItemReportDOS.parallelStream().forEach(boilerTaskOrderItemReportDO -> {
|
|
|
try {
|
|
try {
|
|
|
log.info("开始处理,{}", boilerTaskOrderItemReportDO);
|
|
log.info("开始处理,{}", boilerTaskOrderItemReportDO);
|
|
@@ -477,7 +471,11 @@ public class BoilerTaskOrderItemReportServiceImpl extends ServiceImpl<BoilerTask
|
|
|
);
|
|
);
|
|
|
// 找到最新的一个记录
|
|
// 找到最新的一个记录
|
|
|
BoilerTaskOrderItemReportRecordDO latestRecord = boilerTaskOrderItemReportRecordDOS.isEmpty() ? null : boilerTaskOrderItemReportRecordDOS.get(0);
|
|
BoilerTaskOrderItemReportRecordDO latestRecord = boilerTaskOrderItemReportRecordDOS.isEmpty() ? null : boilerTaskOrderItemReportRecordDOS.get(0);
|
|
|
- // 添加时间晚于最新的记录的记录
|
|
|
|
|
|
|
+ // 添加时间晚于最新的记录的记录,并实时更新审核/审批状态
|
|
|
|
|
+ AtomicBoolean needUpdateReport = new AtomicBoolean(false);
|
|
|
|
|
+ LambdaUpdateWrapper<BoilerTaskOrderItemReportDO> reportUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ reportUpdateWrapper.eq(BoilerTaskOrderItemReportDO::getId, boilerTaskOrderItemReportDO.getId());
|
|
|
|
|
+
|
|
|
List<BoilerTaskOrderItemReportRecordDO> newComments = comments.stream()
|
|
List<BoilerTaskOrderItemReportRecordDO> newComments = comments.stream()
|
|
|
.filter(comment -> latestRecord == null || comment.getCreateDate().isAfter(latestRecord.getCreateTime()))
|
|
.filter(comment -> latestRecord == null || comment.getCreateDate().isAfter(latestRecord.getCreateTime()))
|
|
|
.map(comment -> {
|
|
.map(comment -> {
|
|
@@ -507,6 +505,44 @@ public class BoilerTaskOrderItemReportServiceImpl extends ServiceImpl<BoilerTask
|
|
|
return boilerTaskOrderItemReportRecordDO;
|
|
return boilerTaskOrderItemReportRecordDO;
|
|
|
}).toList();
|
|
}).toList();
|
|
|
taskOrderItemReportRecordMapper.insertBatch(newComments);
|
|
taskOrderItemReportRecordMapper.insertBatch(newComments);
|
|
|
|
|
+
|
|
|
|
|
+ // 根据NODE_NAME实时更新报告的审核人/审批人信息
|
|
|
|
|
+ // 找最新的"审核人"节点的【同意】或【已阅】评论
|
|
|
|
|
+ comments.stream()
|
|
|
|
|
+ .filter(c -> c.getComment() != null
|
|
|
|
|
+ && (c.getComment().contains("【同意】") || c.getComment().contains("【已阅】"))
|
|
|
|
|
+ && !"common.toolbar.stepBack.label".equals(c.getExtAtt3())
|
|
|
|
|
+ && "审核人".equals(c.getNodeName()))
|
|
|
|
|
+ .max(Comparator.comparing(ExternalOACommentInfoRes::getCreateDate))
|
|
|
|
|
+ .ifPresent(approval -> {
|
|
|
|
|
+ List<AdminUserRespDTO> userList = adminUserApi.getUserListByNickname(approval.getUserName()).getCheckedData();
|
|
|
|
|
+ if (!userList.isEmpty()) {
|
|
|
|
|
+ reportUpdateWrapper.set(BoilerTaskOrderItemReportDO::getApprovalId, userList.get(0).getId());
|
|
|
|
|
+ reportUpdateWrapper.set(BoilerTaskOrderItemReportDO::getApprovalTime, approval.getCreateDate());
|
|
|
|
|
+ reportUpdateWrapper.set(BoilerTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_RATIFY.getStatus());
|
|
|
|
|
+ needUpdateReport.set(true);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 找最新的"审批人"节点的【同意】或【已阅】评论
|
|
|
|
|
+ comments.stream()
|
|
|
|
|
+ .filter(c -> c.getComment() != null
|
|
|
|
|
+ && (c.getComment().contains("【同意】") || c.getComment().contains("【已阅】"))
|
|
|
|
|
+ && !"common.toolbar.stepBack.label".equals(c.getExtAtt3())
|
|
|
|
|
+ && "审批人".equals(c.getNodeName()))
|
|
|
|
|
+ .max(Comparator.comparing(ExternalOACommentInfoRes::getCreateDate))
|
|
|
|
|
+ .ifPresent(ratify -> {
|
|
|
|
|
+ List<AdminUserRespDTO> userList = adminUserApi.getUserListByNickname(ratify.getUserName()).getCheckedData();
|
|
|
|
|
+ if (!userList.isEmpty()) {
|
|
|
|
|
+ reportUpdateWrapper.set(BoilerTaskOrderItemReportDO::getRatifyId, userList.get(0).getId());
|
|
|
|
|
+ reportUpdateWrapper.set(BoilerTaskOrderItemReportDO::getRatifyTime, ratify.getCreateDate());
|
|
|
|
|
+ needUpdateReport.set(true);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if (needUpdateReport.get()) {
|
|
|
|
|
+ taskOrderItemReportMapper.update(reportUpdateWrapper);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|