|
|
@@ -1,9 +1,16 @@
|
|
|
package cn.start.tz.module.pressure2.service.pipetaskorderitemreport;
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.start.tz.framework.common.exception.ErrorCode;
|
|
|
import cn.start.tz.framework.common.pojo.CommonResult;
|
|
|
+import cn.start.tz.framework.common.util.QRCodeUtil;
|
|
|
+import cn.start.tz.framework.common.util.date.DateUtils;
|
|
|
+import cn.start.tz.framework.env.core.enums.EnvEnum;
|
|
|
import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
+import cn.start.tz.module.infra.api.file.FileApi;
|
|
|
+import cn.start.tz.module.pressure.enums.EquipmentCheckTypeEnum;
|
|
|
+import cn.start.tz.module.pressure.enums.TaskOrderItemReportTypeEnum;
|
|
|
import cn.start.tz.module.pressure.enums.TaskOrderStatusEnum;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderSyncReportVO;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.InspectionOpinionApprovalVo;
|
|
|
@@ -11,32 +18,46 @@ import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.ReportUp
|
|
|
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.equippipe.EquipPipeDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.equippipecheckhistory.EquipPipeCheckHistoryDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportrecord.PipeTaskOrderItemReportRecordDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.equippipecheckhistory.EquipPipeCheckHistoryMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportrecord.PipeTaskOrderItemReportRecordMapper;
|
|
|
+import cn.start.tz.module.pressure2.framework.thread.CommonThread;
|
|
|
import cn.start.tz.module.pressure2.service.externalOA.ExternalOAService;
|
|
|
import cn.start.tz.module.pressure2.service.externalOA.vo.ExternalOACommentInfoRes;
|
|
|
import cn.start.tz.module.pressure2.service.externalOA.vo.ExternalOACommentRes;
|
|
|
import cn.start.tz.module.pressure2.service.externalOA.vo.ExternalOARes;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
|
|
|
+import cn.start.tz.module.pressure2.service.pipetaskorderissuereport.PipeTaskOrderIssueReportService;
|
|
|
+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.dto.ReportDto;
|
|
|
+import cn.start.tz.module.pressure2.service.taskordernontaxapply.TaskOrderNonTaxApplyService;
|
|
|
+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.dto.AdminUserRespDTO;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import jodd.util.StringUtil;
|
|
|
import lombok.extern.log4j.Log4j2;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
|
|
import cn.start.tz.module.pressure2.controller.admin.pipetaskorderitemreport.vo.*;
|
|
|
@@ -47,8 +68,11 @@ import cn.start.tz.framework.common.util.object.BeanUtils;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
|
|
|
|
|
|
import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
+import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
|
|
+import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
import static cn.start.tz.module.pressure.enums.ErrorCodeConstants.REPORT_INSPECTION_OPINION_RECTIFY;
|
|
|
import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.*;
|
|
|
+import static java.time.LocalDate.now;
|
|
|
|
|
|
/**
|
|
|
* 管道任务单设备关联报告 Service 实现类
|
|
|
@@ -124,9 +148,9 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
if (Integer.valueOf(0).equals(reqVo.getApprovalType())) {
|
|
|
status = 4;
|
|
|
updateWrapper.set(PipeTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
- }else if(Integer.valueOf(2).equals(reqVo.getApprovalType())){
|
|
|
- status =5;
|
|
|
- updateWrapper.set(PipeTaskOrderItemReportDO::getTaskStatus,TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
+ } else if (Integer.valueOf(2).equals(reqVo.getApprovalType())) {
|
|
|
+ status = 5;
|
|
|
+ updateWrapper.set(PipeTaskOrderItemReportDO::getTaskStatus, TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
} else {
|
|
|
if (StringUtil.isEmpty(reqVo.getRejectionReason())) {
|
|
|
throw exception(new ErrorCode(10070, "拒绝原因不能为空"));
|
|
|
@@ -143,7 +167,7 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
@Override
|
|
|
public void orderItemReportUpload(ReportUploadVO reportUploadVO) {
|
|
|
|
|
|
- reportUploadVO.getItems().forEach(item->{
|
|
|
+ reportUploadVO.getItems().forEach(item -> {
|
|
|
pipeTaskOrderItemReportMapper.update(new LambdaUpdateWrapper<PipeTaskOrderItemReportDO>()
|
|
|
.eq(PipeTaskOrderItemReportDO::getId, item.getReportId())
|
|
|
.set(PipeTaskOrderItemReportDO::getImage, item.getImage())
|
|
|
@@ -198,7 +222,7 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
|
|
|
} else if ("结束".equals(externalOAComment.getData().getState())) {
|
|
|
// 修改报告状态
|
|
|
- updateReportStatus(pipeTaskOrderItemReportDO,comments);
|
|
|
+ updateReportStatus(pipeTaskOrderItemReportDO, comments);
|
|
|
} else if ("退回".equals(externalOAComment.getData().getState())) {
|
|
|
// 退回
|
|
|
// boilerTaskOrderItemReportDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
|
|
|
@@ -237,7 +261,7 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
pipeTaskOrderItemReportRecordDO.setCreateTime(comment.getCreateDate());
|
|
|
pipeTaskOrderItemReportRecordDO.setCreator(comment.getUserName());
|
|
|
|
|
|
- if (comment.getComment().contains("【") && comment.getComment().contains("】")){
|
|
|
+ if (comment.getComment().contains("【") && comment.getComment().contains("】")) {
|
|
|
String substring = comment.getComment().substring(comment.getComment().indexOf("【") + 1, comment.getComment().indexOf("】"));
|
|
|
pipeTaskOrderItemReportRecordDO.setResult(switch (substring) {
|
|
|
case "已阅" -> 300;
|
|
|
@@ -262,66 +286,67 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
* 修改报告状态
|
|
|
*
|
|
|
* @param pipeTaskOrderItemReportDO 报告
|
|
|
- * @param comments OA 流程评论列表
|
|
|
+ * @param comments OA 流程评论列表
|
|
|
*/
|
|
|
public void updateReportStatus(PipeTaskOrderItemReportDO pipeTaskOrderItemReportDO, List<ExternalOACommentInfoRes> comments) {
|
|
|
- pipeTaskOrderItemReportDO.setTaskStatus(cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
-
|
|
|
- // 拿到两个最近同意或者已阅的评论
|
|
|
- List<ExternalOACommentInfoRes> approvalComments = comments.stream()
|
|
|
- .filter(comment -> comment.getComment() != null &&
|
|
|
- (comment.getComment().contains("同意") || comment.getComment().contains("已阅")))
|
|
|
- .sorted(Comparator.comparing(ExternalOACommentInfoRes::getCreateDate).reversed())
|
|
|
- .limit(2)
|
|
|
- .toList();
|
|
|
-
|
|
|
- ExternalOACommentInfoRes approval = !approvalComments.isEmpty() ? approvalComments.get(0) : null;
|
|
|
- ExternalOACommentInfoRes ratify = approvalComments.size() > 1 ? approvalComments.get(1) : null;
|
|
|
-
|
|
|
- // 通过名字找到 user
|
|
|
- if (approval != null) {
|
|
|
- List<AdminUserRespDTO> userListByNickname = adminUserApi.getUserListByNickname(approval.getUserName()).getCheckedData();
|
|
|
- if (!userListByNickname.isEmpty()) {
|
|
|
- AdminUserRespDTO approvalUser = userListByNickname.get(0);
|
|
|
- pipeTaskOrderItemReportDO.setApprovalId(approvalUser.getId());
|
|
|
- pipeTaskOrderItemReportDO.setApprovalName(approvalUser.getNickname());
|
|
|
- pipeTaskOrderItemReportDO.setApprovalTime(approval.getCreateDate());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (ratify != null) {
|
|
|
- List<AdminUserRespDTO> userListByNickname1 = adminUserApi.getUserListByNickname(ratify.getUserName()).getCheckedData();
|
|
|
- if (!userListByNickname1.isEmpty()) {
|
|
|
- AdminUserRespDTO ratifyUser = userListByNickname1.get(0);
|
|
|
- pipeTaskOrderItemReportDO.setRatifyId(ratifyUser.getId());
|
|
|
- pipeTaskOrderItemReportDO.setRatifyName(ratifyUser.getNickname());
|
|
|
- pipeTaskOrderItemReportDO.setRatifyTime(ratify.getCreateDate());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- taskOrderItemReportMapper.updateById(pipeTaskOrderItemReportDO);
|
|
|
-
|
|
|
- BoilerTaskOrderSyncReportVO syncReportVO = new BoilerTaskOrderSyncReportVO();
|
|
|
- syncReportVO.setRefId(pipeTaskOrderItemReportDO.getId());
|
|
|
- if (pipeTaskOrderItemReportDO.getReportTemplateId() != null){
|
|
|
- syncReportVO.setReportType("report");
|
|
|
- pipeTaskOrderService.syncReportData(syncReportVO);
|
|
|
- }
|
|
|
- if (pipeTaskOrderItemReportDO.getResultTemplateId() != null) {
|
|
|
- syncReportVO.setReportType("result");
|
|
|
- pipeTaskOrderService.syncReportData(syncReportVO);
|
|
|
- }
|
|
|
-
|
|
|
- //TODO:结构调整
|
|
|
-// pipeTaskOrderItemMapper.update(
|
|
|
-// new LambdaUpdateWrapper<PipeTaskOrderItemDO>()
|
|
|
-// .set(PipeTaskOrderItemDO::getTaskStatus, cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.FINISH_CONFIRM.getStatus())
|
|
|
-// .eq(PipeTaskOrderItemDO::getId, pipeTaskOrderItemReportDO.getOrderItemId())
|
|
|
-// );
|
|
|
- // 修改任务单状态为完成
|
|
|
- PipeTaskOrderDO pipeTaskOrderDO = pipeTaskOrderMapper.selectById(pipeTaskOrderItemReportDO.getOrderId());
|
|
|
- pipeTaskOrderDO.setTaskStatus(cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.FINISH_CONFIRM.getStatus());
|
|
|
- pipeTaskOrderMapper.updateById(pipeTaskOrderDO);
|
|
|
+// pipeTaskOrderItemReportDO.setTaskStatus(cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
+//
|
|
|
+// // 拿到两个最近同意或者已阅的评论
|
|
|
+// List<ExternalOACommentInfoRes> approvalComments = comments.stream()
|
|
|
+// .filter(comment -> comment.getComment() != null &&
|
|
|
+// (comment.getComment().contains("同意") || comment.getComment().contains("已阅")))
|
|
|
+// .sorted(Comparator.comparing(ExternalOACommentInfoRes::getCreateDate).reversed())
|
|
|
+// .limit(2)
|
|
|
+// .toList();
|
|
|
+//
|
|
|
+// ExternalOACommentInfoRes approval = !approvalComments.isEmpty() ? approvalComments.get(0) : null;
|
|
|
+// ExternalOACommentInfoRes ratify = approvalComments.size() > 1 ? approvalComments.get(1) : null;
|
|
|
+//
|
|
|
+// // 通过名字找到 user
|
|
|
+// if (approval != null) {
|
|
|
+// List<AdminUserRespDTO> userListByNickname = adminUserApi.getUserListByNickname(approval.getUserName()).getCheckedData();
|
|
|
+// if (!userListByNickname.isEmpty()) {
|
|
|
+// AdminUserRespDTO approvalUser = userListByNickname.get(0);
|
|
|
+// pipeTaskOrderItemReportDO.setApprovalId(approvalUser.getId());
|
|
|
+// pipeTaskOrderItemReportDO.setApprovalName(approvalUser.getNickname());
|
|
|
+// pipeTaskOrderItemReportDO.setApprovalTime(approval.getCreateDate());
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (ratify != null) {
|
|
|
+// List<AdminUserRespDTO> userListByNickname1 = adminUserApi.getUserListByNickname(ratify.getUserName()).getCheckedData();
|
|
|
+// if (!userListByNickname1.isEmpty()) {
|
|
|
+// AdminUserRespDTO ratifyUser = userListByNickname1.get(0);
|
|
|
+// pipeTaskOrderItemReportDO.setRatifyId(ratifyUser.getId());
|
|
|
+// pipeTaskOrderItemReportDO.setRatifyName(ratifyUser.getNickname());
|
|
|
+// pipeTaskOrderItemReportDO.setRatifyTime(ratify.getCreateDate());
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// taskOrderItemReportMapper.updateById(pipeTaskOrderItemReportDO);
|
|
|
+//
|
|
|
+// BoilerTaskOrderSyncReportVO syncReportVO = new BoilerTaskOrderSyncReportVO();
|
|
|
+// syncReportVO.setRefId(pipeTaskOrderItemReportDO.getId());
|
|
|
+// if (pipeTaskOrderItemReportDO.getReportTemplateId() != null) {
|
|
|
+// syncReportVO.setReportType("report");
|
|
|
+// pipeTaskOrderService.syncReportData(syncReportVO);
|
|
|
+// }
|
|
|
+// if (pipeTaskOrderItemReportDO.getResultTemplateId() != null) {
|
|
|
+// syncReportVO.setReportType("result");
|
|
|
+// pipeTaskOrderService.syncReportData(syncReportVO);
|
|
|
+// }
|
|
|
+//
|
|
|
+// //TODO:结构调整
|
|
|
+//// pipeTaskOrderItemMapper.update(
|
|
|
+//// new LambdaUpdateWrapper<PipeTaskOrderItemDO>()
|
|
|
+//// .set(PipeTaskOrderItemDO::getTaskStatus, cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.FINISH_CONFIRM.getStatus())
|
|
|
+//// .eq(PipeTaskOrderItemDO::getId, pipeTaskOrderItemReportDO.getOrderItemId())
|
|
|
+//// );
|
|
|
+// // 修改任务单状态为完成
|
|
|
+// PipeTaskOrderDO pipeTaskOrderDO = pipeTaskOrderMapper.selectById(pipeTaskOrderItemReportDO.getOrderId());
|
|
|
+// pipeTaskOrderDO.setTaskStatus(cn.start.tz.module.pressure2.enums.TaskOrderStatusEnum.FINISH_CONFIRM.getStatus());
|
|
|
+// pipeTaskOrderMapper.updateById(pipeTaskOrderDO);
|
|
|
+ updateOrderItemRatifyFinish(pipeTaskOrderItemReportDO.getId());
|
|
|
}
|
|
|
|
|
|
public void orderItemRollback(String id, ExternalOARes externalOARes) {
|
|
|
@@ -364,5 +389,245 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
// }
|
|
|
}
|
|
|
|
|
|
+ @Resource
|
|
|
+ private FileApi fileApi;
|
|
|
+
|
|
|
+ @Value("${spring.profiles.active}")
|
|
|
+ private String env;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EquipPipeMapper equipPipeMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ObjectMapper objectMapper;
|
|
|
+ @Resource
|
|
|
+ private EquipPipeCheckHistoryMapper equipPipeCheckHistoryMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderIssueReportService pipeTaskOrderIssueReportService;
|
|
|
+ @Resource
|
|
|
+ private CommonThread commonThread;
|
|
|
+ @Resource
|
|
|
+ private PushTaskOrderService pushTaskOrderService;
|
|
|
+ @Resource
|
|
|
+ private TaskOrderNonTaxApplyService taskOrderNonTaxApplyService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 报告审批通过
|
|
|
+ *
|
|
|
+ * @param id 报告id
|
|
|
+ */
|
|
|
+ public void updateOrderItemRatifyFinish(String id) {
|
|
|
+ PipeTaskOrderItemReportDO taskOrderItemReportDO = taskOrderItemReportMapper.selectById(id);
|
|
|
+ if (ObjectUtil.isEmpty(taskOrderItemReportDO)) {
|
|
|
+ throw exception(new ErrorCode(1001, "任务单设备关联报告不存在"));
|
|
|
+ }
|
|
|
+ String userId = getLoginUserId();
|
|
|
+ if (Boolean.FALSE.equals(taskOrderItemReportDO.getIsRatify())) {
|
|
|
+ if (!userId.equals(taskOrderItemReportDO.getRatifyId()) && !userId.equals(taskOrderItemReportDO.getApprovalId())) {
|
|
|
+ throw exception(new ErrorCode(1001, "当前账号无法执行此记录的【审批】操作。"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!userId.equals(taskOrderItemReportDO.getRatifyId())) {
|
|
|
+ throw exception(new ErrorCode(1001, "当前账号无法执行此记录的【审批】操作。"));
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ AdminUserRespDTO userRespDTO = adminUserApi.getUser(userId).getData();
|
|
|
+ PipeTaskOrderItemReportDO updateObj = new PipeTaskOrderItemReportDO();
|
|
|
+ updateObj.setId(id);
|
|
|
+ if (userRespDTO != null) {
|
|
|
+ updateObj.setRatifyName(userRespDTO.getNickname());
|
|
|
+ }
|
|
|
+ updateObj.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
+ updateObj.setRatifyId(userId);
|
|
|
+ updateObj.setRatifyTime(LocalDateTime.now());
|
|
|
+ updateObj.setReturnReason("");
|
|
|
+
|
|
|
+ if (taskOrderItemReportDO.getApprovalTime() == null) {
|
|
|
+ updateObj.setApprovalTime(updateObj.getRatifyTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (TaskOrderItemReportTypeEnum.MAIN_REPORT.getType().equals(taskOrderItemReportDO.getReportType())) {
|
|
|
+ // 生成报告qrCode
|
|
|
+ String orderItemId = taskOrderItemReportDO.getOrderItemId();
|
|
|
+ String type = "0";
|
|
|
+ String url = String.format("https://yudao-h5.hofo.co/mp/pagesSub/reportInfoList/index?id=%s&type=%s", orderItemId, type);
|
|
|
+ if (EnvEnum.UAT.getEnvName().equals(env)) {
|
|
|
+ url = String.format("https://tjt.gzsei.cn/mp/pagesSub/reportInfoList/index?id=%s&type=%s", orderItemId, type);
|
|
|
+ }
|
|
|
+ byte[] qrCodeBytes = QRCodeUtil.generateQRCodeToBytes(url);
|
|
|
+ String file = fileApi.createFile(taskOrderItemReportDO.getOrderItemId() + ".png", null, qrCodeBytes);
|
|
|
+// updateObj.setQrCodeUrl(file);
|
|
|
+ }
|
|
|
+
|
|
|
+ taskOrderItemReportMapper.updateById(updateObj);
|
|
|
+
|
|
|
+ // 流转记录
|
|
|
+ PipeTaskOrderItemReportRecordDO taskOrderItemReportRecordDO = new PipeTaskOrderItemReportRecordDO();
|
|
|
+ taskOrderItemReportRecordDO.setReportId(id);
|
|
|
+ taskOrderItemReportRecordDO.setProcess(TaskOrderStatusEnum.REPORT_RATIFY.getStatus());
|
|
|
+ taskOrderItemReportRecordDO.setResult(100);
|
|
|
+ pipeTaskOrderItemReportRecordMapper.insert(taskOrderItemReportRecordDO);
|
|
|
+
|
|
|
+// TaskOrderItemReportDO taskOrderItemReportDO = taskOrderItemReportMapper.selectById(orderItemRatifyVO.getId());
|
|
|
+ if (taskOrderItemReportDO.getReportType() != null && taskOrderItemReportDO.getReportType() == 100) {
|
|
|
+ // 任务完成
|
|
|
+ PipeTaskOrderItemDO updateOrderItem = new PipeTaskOrderItemDO();
|
|
|
+ updateOrderItem.setId(taskOrderItemReportDO.getOrderItemId());
|
|
|
+ updateOrderItem.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
+ pipeTaskOrderItemMapper.updateById(updateOrderItem);
|
|
|
+
|
|
|
+ PipeTaskOrderItemDO taskOrderItemTmp = pipeTaskOrderItemMapper.selectById(taskOrderItemReportDO.getOrderItemId());
|
|
|
+
|
|
|
+ List<PipeTaskOrderItemDO> pipeTaskOrderItemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemDO>().
|
|
|
+ eq(PipeTaskOrderItemDO::getOrderId, taskOrderItemTmp.getOrderId()).
|
|
|
+ ne(PipeTaskOrderItemDO::getTaskStatus, TaskOrderStatusEnum.CANCEL.getStatus()));
|
|
|
+
|
|
|
+ PipeTaskOrderDO pipeTaskOrderDO = pipeTaskOrderMapper.selectById(taskOrderItemTmp.getOrderId());
|
|
|
+
|
|
|
+ //任务单办结后重置容器设备排期状态
|
|
|
+ EquipPipeDO equipPipeDO = new EquipPipeDO();
|
|
|
+ equipPipeDO.setId(taskOrderItemTmp.getEquipId());
|
|
|
+ if (EquipmentCheckTypeEnum.PERIODICAL_SURVEY.getType().equals(pipeTaskOrderDO.getCheckType())) {
|
|
|
+// equipPipeDO.setIsScheduling(false);
|
|
|
+// equipPipeDO.setIsExpiredScheduling(false);
|
|
|
+
|
|
|
+ // 获取主报告信息, taskOrderItemReportDO
|
|
|
+ String prepareJson = taskOrderItemReportDO.getPrepareJson();
|
|
|
+ try {
|
|
|
+ Map<String, String> map = objectMapper.readValue(prepareJson, Map.class);
|
|
|
+
|
|
|
+ String lastCheckReportNo = taskOrderItemReportDO.getReportNo();
|
|
|
+ LocalDate nextCheckDate = DateUtils.parseDateWithMultipleFormats(map.get("nextCheckDate"));
|
|
|
+ LocalDate nextCheckYearDate2 = DateUtils.parseDateWithMultipleFormats(map.get("nextCheckYearDate"));
|
|
|
+// equipPipeDO.setNextCheckDate(nextCheckDate);
|
|
|
+// equipPipeDO.setNextYearCheckDate(nextCheckYearDate2);
|
|
|
+//
|
|
|
+// equipPipeDO.setCavityStructure(map.get("cavityStructure"));
|
|
|
+// equipPipeDO.setLastCheckSafetyStatus(map.get("lastCheckSafetyStatus"));
|
|
|
+//
|
|
|
+// equipPipeDO.setLastCheckAllowWorkPressure(map.get("lastCheckAllowWorkPressure"));
|
|
|
+// equipPipeDO.setLastCheckAllowWorkMedium(map.get("lastCheckAllowWorkMedium"));
|
|
|
+// equipPipeDO.setLastCheckAllowWorkTemperature(map.get("lastCheckAllowWorkTemperature"));
|
|
|
+// equipPipeDO.setLastCheckConclusion(map.get("reportConclusion"));
|
|
|
+// equipPipeDO.setLastCheckProblem(map.get("checkProblem"));
|
|
|
+// equipPipeDO.setLastCheckReportNo(lastCheckReportNo);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw exception0(1001, "获取主报告结论失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (EquipmentCheckTypeEnum.OVERDUE_INSPECTION.getType().equals(pipeTaskOrderDO.getCheckType())) {
|
|
|
+// equipPipeDO.setIsExceedTimeLimit(true);
|
|
|
+ }
|
|
|
+ } else if (EquipmentCheckTypeEnum.ANNUAL_INSPECTION.getType().equals(pipeTaskOrderDO.getCheckType())) {
|
|
|
+// equipPipeDO.setIsYearScheduling(false);
|
|
|
+
|
|
|
+ // 获取主报告信息, taskOrderItemReportDO
|
|
|
+ String prepareJson = taskOrderItemReportDO.getPrepareJson();
|
|
|
+ try {
|
|
|
+ Map<String, String> map = objectMapper.readValue(prepareJson, Map.class);
|
|
|
+ String lastCheckReportNo = taskOrderItemReportDO.getReportNo();
|
|
|
+//
|
|
|
+// LocalDate nextCheckDate = DateUtils.parseDateWithMultipleFormats(map.get("nextCheckDate"));
|
|
|
+// LocalDate nextCheckYearDate2 = DateUtils.parseDateWithMultipleFormats(map.get("nextYearCheckDate2"));
|
|
|
+// equipPipeDO.setNextCheckDate(nextCheckDate);
|
|
|
+// equipPipeDO.setNextYearCheckDate(nextCheckYearDate2);
|
|
|
+//
|
|
|
+// equipPipeDO.setCavityStructure(map.get("cavityStructure"));
|
|
|
+//
|
|
|
+// equipPipeDO.setLastYearCheckConclusionPressure(map.get("lastYearCheckConclusionPressure"));
|
|
|
+// equipPipeDO.setLastYearCheckConclusionMedium(map.get("lastYearCheckConclusionMedium"));
|
|
|
+// equipPipeDO.setLastYearCheckConclusionTemperature(map.get("lastYearCheckConclusionTemperature"));
|
|
|
+// equipPipeDO.setLastYearCheckConclusion(map.get("reportConclusion"));
|
|
|
+// equipPipeDO.setLastYearCheckProblem(map.get("checkProblem"));
|
|
|
+//
|
|
|
+// equipPipeDO.setLastYearCheckReportNo(lastCheckReportNo);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ // throw exception0(1001,"获取主报告结论失败");
|
|
|
+ log.error("获取主报告结论失败", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Integer.valueOf(200).equals(pipeTaskOrderDO.getCheckType())) {
|
|
|
+ //当主报告完成审核后更新所有子报告的审核人(年检的审批后)
|
|
|
+ LambdaUpdateWrapper<PipeTaskOrderItemReportDO> updateBySubReport = new LambdaUpdateWrapper<>();
|
|
|
+ updateBySubReport.eq(PipeTaskOrderItemReportDO::getOrderItemId, taskOrderItemReportDO.getOrderItemId());
|
|
|
+ updateBySubReport.eq(PipeTaskOrderItemReportDO::getReportType, TaskOrderItemReportTypeEnum.SUB_REPORT.getType());
|
|
|
+ updateBySubReport.set(PipeTaskOrderItemReportDO::getApprovalId, taskOrderItemReportDO.getApprovalId());
|
|
|
+ updateBySubReport.set(PipeTaskOrderItemReportDO::getApprovalName, taskOrderItemReportDO.getApprovalName());
|
|
|
+ updateBySubReport.set(PipeTaskOrderItemReportDO::getApprovalTime, LocalDateTime.now());
|
|
|
+ taskOrderItemReportMapper.update(updateBySubReport);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ equipPipeMapper.updateById(equipPipeDO);
|
|
|
+ //todo 推送公众号催费消息
|
|
|
+
|
|
|
+ Long count = equipPipeCheckHistoryMapper.selectCount(new LambdaQueryWrapperX<EquipPipeCheckHistoryDO>().
|
|
|
+ eq(EquipPipeCheckHistoryDO::getOrderId, pipeTaskOrderDO.getId()).
|
|
|
+ eq(EquipPipeCheckHistoryDO::getEquipId, equipPipeDO.getId())
|
|
|
+ );
|
|
|
+ if (count == null || count == 0) {
|
|
|
+ EquipPipeCheckHistoryDO historyDO = new EquipPipeCheckHistoryDO();
|
|
|
+
|
|
|
+ historyDO.setCheckType(pipeTaskOrderDO.getCheckType());
|
|
|
+ historyDO.setProgress(100);
|
|
|
+ historyDO.setCheckDate(pipeTaskOrderDO.getCheckDate());
|
|
|
+ historyDO.setOrderId(pipeTaskOrderDO.getId());
|
|
|
+ historyDO.setEquipId(equipPipeDO.getId());
|
|
|
+
|
|
|
+ historyDO.setDeptId(pipeTaskOrderDO.getDeptId());
|
|
|
+ historyDO.setIsFirst(false);
|
|
|
+ equipPipeCheckHistoryMapper.insert(historyDO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Boolean isAllFinish = pipeTaskOrderItemDOList.stream().allMatch(item -> item.getTaskStatus() == TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue());
|
|
|
+ if (isAllFinish && pipeTaskOrderItemDOList != null && !pipeTaskOrderItemDOList.isEmpty()) {
|
|
|
+ PipeTaskOrderItemDO pipeTaskOrderItemDO = pipeTaskOrderItemDOList.get(0);
|
|
|
+ // 任务完成
|
|
|
+ PipeTaskOrderDO updateOrder = new PipeTaskOrderDO();
|
|
|
+ updateOrder.setId(pipeTaskOrderItemDO.getOrderId());
|
|
|
+ updateOrder.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
+ updateOrder.setConfirmDate(now());
|
|
|
+ pipeTaskOrderMapper.updateById(updateOrder);
|
|
|
+
|
|
|
+ //任务单办结后添加任务单非税开单申请
|
|
|
+ try {
|
|
|
+ taskOrderNonTaxApplyService.create(new TaskOrderNonTaxApplyCreateVO().setOrderId(pipeTaskOrderItemDO.getOrderId()));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ CompletableFuture.runAsync(() -> {
|
|
|
+ // 任务单办结
|
|
|
+ pipeTaskOrderDO.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
+ pushTaskOrderService.pushFinanceSystem(pipeTaskOrderDO);
|
|
|
+ });
|
|
|
+
|
|
|
+ //生成任务单下所有设备报告
|
|
|
+ commonThread.runWithOutResult(() -> pipeTaskOrderIssueReportService.createIssueUrl(pipeTaskOrderDO.getId()));
|
|
|
+
|
|
|
+ //合同收费/属于免征则直接发送报告
|
|
|
+ if (Integer.valueOf(200).equals(pipeTaskOrderDO.getFeeType()) || Integer.valueOf(300).equals(pipeTaskOrderDO.getFeeNature())) {
|
|
|
+ pipeTaskOrderIssueReportService.autoIssueTaskOrderReport(pipeTaskOrderDO, pipeTaskOrderItemDOList);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //当主报告完成审批后更新所有子报告的审批人
|
|
|
+ LambdaUpdateWrapper<PipeTaskOrderItemReportDO> updateBySubReport = new LambdaUpdateWrapper<>();
|
|
|
+ updateBySubReport.eq(PipeTaskOrderItemReportDO::getOrderItemId, taskOrderItemReportDO.getOrderItemId());
|
|
|
+ updateBySubReport.eq(PipeTaskOrderItemReportDO::getReportType, TaskOrderItemReportTypeEnum.SUB_REPORT.getType());
|
|
|
+ updateBySubReport.set(PipeTaskOrderItemReportDO::getRatifyId, userId);
|
|
|
+ updateBySubReport.set(PipeTaskOrderItemReportDO::getRatifyName, updateObj.getRatifyName());
|
|
|
+ updateBySubReport.set(PipeTaskOrderItemReportDO::getRatifyTime, updateObj.getRatifyTime());
|
|
|
+ taskOrderItemReportMapper.update(updateBySubReport);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|