+相同发起人整合

This commit is contained in:
wuyu 2023-12-09 16:40:04 +08:00
parent 3536a764f8
commit 5e26189f32
2 changed files with 57 additions and 13 deletions

View File

@ -20,23 +20,52 @@ import cn.axzo.msg.center.domain.dto.PendingCalendarCodeDTO;
import cn.axzo.msg.center.domain.entity.PendingMessageRecord;
import cn.axzo.msg.center.domain.enums.NativeTypeEnum;
import cn.axzo.msg.center.inside.notices.config.PendingCalendarCodeConfig;
import cn.axzo.msg.center.message.domain.dto.*;
import cn.axzo.msg.center.message.domain.dto.GroupTreeNodePathDTO;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateDTO;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO;
import cn.axzo.msg.center.message.domain.dto.PendingMessageDTO;
import cn.axzo.msg.center.message.domain.dto.PendingMessageStatisticDTO;
import cn.axzo.msg.center.message.domain.param.MessageGroupNodeStatisticParam;
import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam;
import cn.axzo.msg.center.message.service.MessageGroupNodeService;
import cn.axzo.msg.center.message.service.MessageTemplateGroupService;
import cn.axzo.msg.center.message.service.MessageTemplateNewService;
import cn.axzo.msg.center.message.service.PendingMessageNewService;
import cn.axzo.msg.center.service.dto.*;
import cn.axzo.msg.center.service.enums.*;
import cn.axzo.msg.center.service.pending.request.*;
import cn.axzo.msg.center.notices.common.enums.IsDeletedEnum;
import cn.axzo.msg.center.service.dto.ButtonRouterDTO;
import cn.axzo.msg.center.service.dto.DetailRouterDTO;
import cn.axzo.msg.center.service.dto.IdentityDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.dto.PersonDTO;
import cn.axzo.msg.center.service.dto.QueryOrderByDTO;
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
import cn.axzo.msg.center.service.enums.BizFinalStateEnum;
import cn.axzo.msg.center.service.enums.IdentityTypeEnum;
import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum;
import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
import cn.axzo.msg.center.service.enums.PendingMessageRoleCategoryEnum;
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.pending.request.CompletePendingBySubCodeRequest;
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest;
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageFixedTemplatePageRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
import cn.axzo.msg.center.service.pending.request.RevokePendingMessageByIdRequest;
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO;
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
import cn.axzo.msg.center.utils.*;
import cn.axzo.msg.center.utils.DateFormatUtil;
import cn.axzo.msg.center.utils.JSONObjectUtil;
import cn.axzo.msg.center.utils.MessageCardUtil;
import cn.axzo.msg.center.utils.MessageRouterUtil;
import cn.axzo.msg.center.utils.OrderFieldParseUtil;
import cn.axzo.msg.center.utils.UUIDUtil;
import cn.azxo.framework.common.model.Page;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.func.Func1;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -52,10 +81,18 @@ import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @description
@ -129,6 +166,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
&& Objects.nonNull(request.getOuId()), PendingMessageRecord::getOuId, request.getOuId())
.eq(Objects.nonNull(pendingMessageState), PendingMessageRecord::getState, pendingMessageState)
.eq(Objects.nonNull(bizFinalState), PendingMessageRecord::getBizFinalState, bizFinalState)
.eq(PendingMessageRecord::getIsDelete, IsDeletedEnum.NO.getCode())
.eq(Objects.nonNull(request.getWorkspaceId()), PendingMessageRecord::getOrgId, request.getWorkspaceId());
if (StringUtils.isNotBlank(request.getTitle())) {
query.and(v -> v.like(PendingMessageRecord::getTitle, request.getTitle())
@ -157,18 +195,18 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize());
}
query.in(PendingMessageRecord::getTemplateCode, templateCodes);
query.groupBy(PendingMessageRecord::getBizCode);
// 构建排序条件
buildSortCondition(query, request.getOrderFields(), pendingMessageState);
IPage<PendingMessageRecord> page = request.toPage();
IPage<PendingMessageRecord> result = query.page(page);
templateCodes = result.getRecords().stream().map(PendingMessageRecord::getTemplateCode)
List<PendingMessageRecord> pendingMessageRecords = pendingMessageRecordMapper.selectPageWithCustomSql(query.getWrapper());
templateCodes = pendingMessageRecords.stream().map(PendingMessageRecord::getTemplateCode)
.collect(Collectors.toList());
List<MessageTemplateDTO> messageTemplates = messageTemplateNewService.listByTemplateCodes(templateCodes);
List<PendingMessageResponse> responseRecords = result.getRecords().stream()
List<PendingMessageResponse> responseRecords = pendingMessageRecords.stream()
.map(e -> convert(e, messageTemplates).toResponse(request.getTerminalType()))
.collect(Collectors.toList());
return Page.toPage(request.getPage(), request.getPageSize(), result.getTotal(), responseRecords);
return Page.toPage(request.getPage(), request.getPageSize(), pendingMessageRecords.stream().count(), responseRecords);
}
@Override

View File

@ -2,8 +2,11 @@ package cn.axzo.msg.center.dal.mapper;
import cn.axzo.msg.center.domain.dto.PendingCalendarCodeDTO;
import cn.axzo.msg.center.domain.entity.PendingMessageRecord;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Date;
import java.util.List;
@ -18,5 +21,8 @@ import java.util.List;
public interface PendingMessageRecordMapper extends BaseMapper<PendingMessageRecord> {
List<PendingMessageRecord> queryByTemplateCodes(@Param("pendingCalendarCodeDTO") PendingCalendarCodeDTO pendingCalendarCodeDTO, @Param("workspaceId") Long workspaceId,
@Param("selectDate") Date selectDate, @Param("personId") Long personId,@Param("isNowDay") Boolean isNowDay);
@Select("SELECT pmr.*,GROUP_CONCAT(pmr.executor_name) AS executorName FROM pending_message_record pmr ${ew.customSqlSegment}")
List<PendingMessageRecord> selectPageWithCustomSql(@Param(Constants.WRAPPER) Wrapper<PendingMessageRecord> wrapper);
}