|
|
@@ -290,64 +290,48 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
* @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);
|
|
|
- updateOrderItemRatifyFinish(pipeTaskOrderItemReportDO.getId());
|
|
|
+ // 从OA评论中提取最近两个"同意"或"已阅"的评论,分别作为审核人和审批人
|
|
|
+ String approvalId = null;
|
|
|
+ String approvalName = null;
|
|
|
+ LocalDateTime approvalTime = null;
|
|
|
+ String ratifyId = null;
|
|
|
+ String ratifyName = null;
|
|
|
+ LocalDateTime ratifyTime = null;
|
|
|
+
|
|
|
+ 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();
|
|
|
+
|
|
|
+ // 最近一条评论对应审核人(approval)
|
|
|
+ ExternalOACommentInfoRes approval = !approvalComments.isEmpty() ? approvalComments.get(0) : null;
|
|
|
+ // 第二条评论对应审批人(ratify)
|
|
|
+ ExternalOACommentInfoRes ratify = approvalComments.size() > 1 ? approvalComments.get(1) : null;
|
|
|
+
|
|
|
+ if (approval != null) {
|
|
|
+ List<AdminUserRespDTO> userListByNickname = adminUserApi.getUserListByNickname(approval.getUserName()).getCheckedData();
|
|
|
+ if (!userListByNickname.isEmpty()) {
|
|
|
+ AdminUserRespDTO approvalUser = userListByNickname.get(0);
|
|
|
+ approvalId = approvalUser.getId();
|
|
|
+ approvalName = approvalUser.getNickname();
|
|
|
+ approvalTime = approval.getCreateDate();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ratify != null) {
|
|
|
+ List<AdminUserRespDTO> userListByNickname1 = adminUserApi.getUserListByNickname(ratify.getUserName()).getCheckedData();
|
|
|
+ if (!userListByNickname1.isEmpty()) {
|
|
|
+ AdminUserRespDTO ratifyUser = userListByNickname1.get(0);
|
|
|
+ ratifyId = ratifyUser.getId();
|
|
|
+ ratifyName = ratifyUser.getNickname();
|
|
|
+ ratifyTime = ratify.getCreateDate();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用重载方法,传入从OA评论中提取的审核人和审批人信息
|
|
|
+ updateOrderItemRatifyFinish(pipeTaskOrderItemReportDO.getId(), approvalId, approvalName, approvalTime, ratifyId, ratifyName, ratifyTime);
|
|
|
}
|
|
|
|
|
|
public void orderItemRollback(String id, ExternalOARes externalOARes) {
|
|
|
@@ -420,33 +404,41 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
* @param id 报告id
|
|
|
*/
|
|
|
public void updateOrderItemRatifyFinish(String id) {
|
|
|
+ String userId = getLoginUserId();
|
|
|
+ AdminUserRespDTO userRespDTO = adminUserApi.getUser(userId).getData();
|
|
|
+ updateOrderItemRatifyFinish(id, userId, userRespDTO != null ? userRespDTO.getNickname() : null, LocalDateTime.now(), null, null, null);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 办结报告(轮询调用,从OA评论中获取审核人和审批人)
|
|
|
+ */
|
|
|
+ public void updateOrderItemRatifyFinish(String id, String approvalId, String approvalName, LocalDateTime approvalTime,
|
|
|
+ String ratifyId, String ratifyName, LocalDateTime ratifyTime) {
|
|
|
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) {
|
|
|
+ // 设置审核人信息
|
|
|
+ if (approvalId != null) {
|
|
|
+ updateObj.setApprovalId(approvalId);
|
|
|
+ updateObj.setApprovalName(approvalName);
|
|
|
+ updateObj.setApprovalTime(approvalTime != null ? approvalTime : LocalDateTime.now());
|
|
|
+ }
|
|
|
+ // 设置审批人信息
|
|
|
+ if (ratifyId != null) {
|
|
|
+ updateObj.setRatifyId(ratifyId);
|
|
|
+ updateObj.setRatifyName(ratifyName);
|
|
|
+ updateObj.setRatifyTime(ratifyTime != null ? ratifyTime : LocalDateTime.now());
|
|
|
+ } else {
|
|
|
+ updateObj.setRatifyTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (taskOrderItemReportDO.getApprovalTime() == null && updateObj.getApprovalTime() == null) {
|
|
|
updateObj.setApprovalTime(updateObj.getRatifyTime());
|
|
|
}
|
|
|
|
|
|
@@ -607,7 +599,7 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
// 任务单办结
|
|
|
pipeTaskOrderDO.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
|
|
|
- pushTaskOrderService.pushFinanceSystem(pipeTaskOrderDO);
|
|
|
+// pushTaskOrderService.pushFinanceSystem(pipeTaskOrderDO);
|
|
|
});
|
|
|
|
|
|
//生成任务单下所有设备报告
|
|
|
@@ -624,7 +616,7 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
|
|
|
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::getRatifyId, ratifyId);
|
|
|
updateBySubReport.set(PipeTaskOrderItemReportDO::getRatifyName, updateObj.getRatifyName());
|
|
|
updateBySubReport.set(PipeTaskOrderItemReportDO::getRatifyTime, updateObj.getRatifyTime());
|
|
|
taskOrderItemReportMapper.update(updateBySubReport);
|