Merge branch 'feature/REQ-1634' into 'dev'
Feature/req 1634 See merge request universal/infrastructure/backend/msg-center-plat!77
This commit is contained in:
commit
7a6fe352d8
@ -0,0 +1,37 @@
|
||||
package cn.axzo.msg.center.inside.notices.config;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* 待办日历模版配置
|
||||
* @author cold_blade
|
||||
* @date 2023/8/31
|
||||
* @version 1.0
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
@RefreshScope
|
||||
@Configuration
|
||||
@ConfigurationProperties(prefix = "calendar.template")
|
||||
public class PendingCalendarCodeConfig {
|
||||
|
||||
private List<String> constructionCodes;
|
||||
private List<String> clockInCodes;
|
||||
private List<String> punchInCodes;
|
||||
|
||||
public List<String> getCalendarAllCodes() {
|
||||
return Arrays.asList(constructionCodes, clockInCodes, punchInCodes)
|
||||
.stream()
|
||||
.flatMap(List::stream)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
@ -8,13 +8,7 @@ import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam;
|
||||
import cn.axzo.msg.center.message.service.PendingMessageNewService;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.client.PendingMessageClient;
|
||||
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.PendingMessageCountUncompletedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.*;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
|
||||
@ -61,6 +55,11 @@ public class PendingMessageNewController implements PendingMessageClient {
|
||||
return CommonResponse.success(pendingMessageNewService.pageQuery(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<PendingMessageResponse>> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request) {
|
||||
return CommonResponse.success(pendingMessageNewService.getPendingMessageByAppWorker(request));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Page<MessageDetailRes>> compatiblePageQuery(PendingMessagePageRequest request) {
|
||||
return CommonResponse.success(pendingMessageNewService.compatiblePageQuery(request));
|
||||
|
||||
@ -194,6 +194,7 @@ public class PendingMessageDTO implements Serializable {
|
||||
.subBizCode(this.subBizCode)
|
||||
.bizDesc(this.bizDesc)
|
||||
.bizFlag(this.bizFlag)
|
||||
.state(this.getState())
|
||||
.bizCategory(this.bizCategory)
|
||||
.workspaceId(this.workspaceId)
|
||||
.workspaceName(this.workspaceName)
|
||||
|
||||
@ -6,10 +6,7 @@ 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.service.enums.TerminalTypeEnum;
|
||||
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.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.*;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
|
||||
import cn.azxo.framework.common.model.Page;
|
||||
@ -60,6 +57,14 @@ public interface PendingMessageNewService {
|
||||
*/
|
||||
Page<PendingMessageResponse> pageQuery(PendingMessagePageRequest request);
|
||||
|
||||
/**
|
||||
* 代办列表分页查询
|
||||
*
|
||||
* @param request 分页查询相关参数
|
||||
* @return 代办列表
|
||||
*/
|
||||
List<PendingMessageResponse> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request);
|
||||
|
||||
/**
|
||||
* 代办列表分页查询
|
||||
*
|
||||
|
||||
@ -15,12 +15,7 @@ import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@ -367,6 +367,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
|
||||
.in(CollectionUtils.isNotEmpty(request.getCategories()), MessageBaseTemplate::getMsgCategory,
|
||||
request.getCategories())
|
||||
.eq(Objects.nonNull(request.getStatus()), MessageBaseTemplate::getStatus, request.getStatus())
|
||||
.orderByDesc(MessageBaseTemplate::getCreateAt)
|
||||
.page(pageRequest);
|
||||
}
|
||||
|
||||
|
||||
@ -15,45 +15,24 @@ import cn.axzo.msg.center.common.exception.ServiceException;
|
||||
import cn.axzo.msg.center.common.utils.PageHelperUtil;
|
||||
import cn.axzo.msg.center.common.utils.PlaceholderResolver;
|
||||
import cn.axzo.msg.center.dal.PendingMessageRecordDao;
|
||||
import cn.axzo.msg.center.dal.mapper.PendingMessageRecordMapper;
|
||||
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.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.inside.notices.config.PendingCalendarCodeConfig;
|
||||
import cn.axzo.msg.center.message.domain.dto.*;
|
||||
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.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.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.CompletePendingMessageByIdRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
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.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
|
||||
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.axzo.msg.center.utils.*;
|
||||
import cn.azxo.framework.common.model.Page;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@ -68,14 +47,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
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.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -92,11 +64,13 @@ import java.util.stream.Collectors;
|
||||
public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
|
||||
private final PendingMessageRecordDao pendingMessageRecordDao;
|
||||
private final PendingMessageRecordMapper pendingMessageRecordMapper;
|
||||
private final MessageGroupNodeService messageGroupNodeService;
|
||||
private final MessageTemplateNewService messageTemplateNewService;
|
||||
private final MessageTemplateGroupService messageTemplateGroupService;
|
||||
private final WorkspaceApi workspaceApi;
|
||||
private final OrganizationalNodePractitionerWideApi organizationalNodePractitionerWideApi;
|
||||
private final PendingCalendarCodeConfig calendarCodeConfig;
|
||||
|
||||
@Override
|
||||
public List<PendingMessageStatisticDTO> groupStatistic(MessageGroupNodeStatisticParam param) {
|
||||
@ -191,6 +165,23 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
return Page.toPage(request.getPage(), request.getPageSize(), result.getTotal(), responseRecords);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PendingMessageResponse> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request) {
|
||||
List<PendingMessageResponse> result = new ArrayList<>();
|
||||
PendingCalendarCodeDTO calendarCodeDTO = buildCalendarCodesDTO(calendarCodeConfig);
|
||||
List<PendingMessageRecord> pendingMessageRecords = pendingMessageRecordMapper.queryByTemplateCodes(calendarCodeDTO,request.getWorkspaceId(),request.getSelectDate());
|
||||
List<MessageTemplateDTO> messageTemplates = messageTemplateNewService.listByTemplateCodes(calendarCodeConfig.getCalendarAllCodes());
|
||||
result = pendingMessageRecords.stream()
|
||||
.map(e -> convert(e, messageTemplates).toResponse(request.getTerminalType()))
|
||||
.collect(Collectors.toList());
|
||||
// 构建分页结构返回
|
||||
return result;
|
||||
}
|
||||
|
||||
private PendingCalendarCodeDTO buildCalendarCodesDTO(PendingCalendarCodeConfig calendarCodeConfig) {
|
||||
return new PendingCalendarCodeDTO(calendarCodeConfig.getConstructionCodes(),calendarCodeConfig.getClockInCodes(),calendarCodeConfig.getPunchInCodes(),calendarCodeConfig.getCalendarAllCodes());
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public Page<MessageDetailRes> compatiblePageQuery(PendingMessagePageRequest request) {
|
||||
@ -328,8 +319,30 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
@Override
|
||||
public Boolean completeById(CompletePendingMessageByIdRequest param) {
|
||||
log.info("the [{}] record is updated complete by id.", param);
|
||||
String bizExtParam = null;
|
||||
if(StringUtils.isNotBlank(param.getBizExtParams())){
|
||||
MessageTemplateDTO msgTemplate = messageTemplateNewService
|
||||
.queryEnableTemplateByCode(param.getTemplateCode())
|
||||
.orElseThrow(() -> new ServiceException("not found message template."));
|
||||
// 获取模板卡片信息
|
||||
List<MessageCardContentItemDTO> rawCardContentItems = msgTemplate.getMsgCardContentItems();
|
||||
List<MessageCardContentItemDTO> cardContentItems = rawCardContentItems;
|
||||
if (CollectionUtils.isNotEmpty(rawCardContentItems)) {
|
||||
// 克隆,避免修改入参
|
||||
cardContentItems = cardContentItems.stream()
|
||||
.map(MessageCardContentItemDTO::deepClone)
|
||||
.collect(Collectors.toList());
|
||||
cardContentItems.forEach(e -> {
|
||||
String value = PlaceholderResolver.getDefaultResolver()
|
||||
.resolveByMap(e.getValue(), JSON.parseObject(param.getBizExtParams()));
|
||||
e.setValue(value);
|
||||
});
|
||||
bizExtParam = JSON.toJSONString(cardContentItems);
|
||||
}
|
||||
}
|
||||
return pendingMessageRecordDao.lambdaUpdate()
|
||||
.set(PendingMessageRecord::getState, PendingMessageStateEnum.COMPLETED)
|
||||
.set(StringUtils.isNotBlank(bizExtParam),PendingMessageRecord::getBizExtParam,bizExtParam)
|
||||
.eq(PendingMessageRecord::getId, param.getId())
|
||||
.eq(PendingMessageRecord::getState, PendingMessageStateEnum.HAS_BEEN_SENT)
|
||||
.eq(PendingMessageRecord::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
@ -625,7 +638,23 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
String title = PlaceholderResolver
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getTitle(), bizExtParam);
|
||||
String content = PlaceholderResolver
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getContent(), bizExtParam);
|
||||
.getDefaultResolver().resolveByMap(msgTemplate.getContent(), bizExtParam);;
|
||||
// 获取模板卡片信息
|
||||
List<MessageCardContentItemDTO> rawCardContentItems = msgTemplate.getMsgCardContentItems();
|
||||
List<MessageCardContentItemDTO> cardContentItems = rawCardContentItems;
|
||||
if (CollectionUtils.isNotEmpty(rawCardContentItems) && Objects.nonNull(record.getBizExtParam())
|
||||
&& !record.getBizExtParam().isEmpty()) {
|
||||
// 克隆,避免修改入参
|
||||
cardContentItems = cardContentItems.stream()
|
||||
.map(MessageCardContentItemDTO::deepClone)
|
||||
.collect(Collectors.toList());
|
||||
cardContentItems.forEach(e -> {
|
||||
String value = PlaceholderResolver.getDefaultResolver()
|
||||
.resolveByMap(e.getValue(), JSON.parseObject(record.getBizExtParam()));
|
||||
e.setValue(value);
|
||||
});
|
||||
record.setBizExtParam(JSON.toJSONString(cardContentItems));
|
||||
}
|
||||
record.setTitle(title);
|
||||
record.setContent(content);
|
||||
record.setTemplateCode(msgTemplate.getCode());
|
||||
|
||||
@ -3,13 +3,7 @@ package cn.axzo.msg.center.service.pending.client;
|
||||
import cn.axzo.msg.center.api.response.MessageDetailRes;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.client.fallback.PendingMessageClientFallback;
|
||||
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.PendingMessageCountUncompletedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.*;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
|
||||
@ -66,6 +60,15 @@ public interface PendingMessageClient {
|
||||
@PostMapping(value = "/pending-message/record/page", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<Page<PendingMessageResponse>> pageQuery(@RequestBody @Valid PendingMessagePageRequest request);
|
||||
|
||||
/**
|
||||
* 指定几种代办模型列表分页查询
|
||||
*
|
||||
* @param request 分页查询相关参数
|
||||
* @return 代办列表
|
||||
*/
|
||||
@PostMapping(value = "/pending-message/getPendingMessageByAppWorker", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<List<PendingMessageResponse>> getPendingMessageByAppWorker(@RequestBody @Valid PendingMessageFixedTemplatePageRequest request);
|
||||
|
||||
/**
|
||||
* 代办列表分页查询
|
||||
*
|
||||
|
||||
@ -3,13 +3,7 @@ package cn.axzo.msg.center.service.pending.client.fallback;
|
||||
import cn.axzo.msg.center.api.response.MessageDetailRes;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.pending.client.PendingMessageClient;
|
||||
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.PendingMessageCountUncompletedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePageRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessagePushRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PendingMessageStatisticRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.*;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponse;
|
||||
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
|
||||
@ -49,6 +43,12 @@ public class PendingMessageClientFallback implements PendingMessageClient {
|
||||
return CommonResponse.error("fall back while page querying pending message");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<PendingMessageResponse>> getPendingMessageByAppWorker(PendingMessageFixedTemplatePageRequest request) {
|
||||
log.error("fall back while page queryByTemplateCodes pending message. req:{}", request);
|
||||
return CommonResponse.error("fall back while page queryByTemplateCodes pending message");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<Page<MessageDetailRes>> compatiblePageQuery(PendingMessagePageRequest request) {
|
||||
log.error("fall back while page querying pending message. req:{}", request);
|
||||
|
||||
@ -21,4 +21,15 @@ public class CompletePendingMessageByIdRequest {
|
||||
*/
|
||||
@NotNull(message = "消息ID不能为空")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 业务扩展参数,JSON字符串格式
|
||||
*/
|
||||
private String bizExtParams;
|
||||
|
||||
/**
|
||||
* 模板编码
|
||||
*/
|
||||
private String templateCode;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,72 @@
|
||||
package cn.axzo.msg.center.service.pending.request;
|
||||
|
||||
import cn.axzo.basics.common.page.PageRequest;
|
||||
import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.IdentityTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* 代办记录分页查询参数的数模型
|
||||
* @author cold_blade
|
||||
* @date 2023/9/23
|
||||
* @version 1.0
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class PendingMessageFixedTemplatePageRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 7172093131252325437L;
|
||||
/**
|
||||
* 当前登录账户的自然id(前端不care)
|
||||
*/
|
||||
@NotNull(message = "personId is required")
|
||||
private Long personId;
|
||||
/**
|
||||
* 当前登录账户的身份id(前端不care)
|
||||
*/
|
||||
private Long identityId;
|
||||
/**
|
||||
* 当前登录账户的身份类型(前端不care)
|
||||
*/
|
||||
private IdentityTypeEnum identityType;
|
||||
/**
|
||||
* 应用终端
|
||||
*/
|
||||
private AppTerminalTypeEnum appTerminalType;
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
/**
|
||||
* 筛选时间
|
||||
*/
|
||||
@NotNull(message = "date is required")
|
||||
private Date selectDate;
|
||||
/**
|
||||
* 工作台id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
/**
|
||||
* APP终端类型(前端不care)
|
||||
* WEB: web端页面
|
||||
* MINI_PROGRAM: 安心筑小程序端页面
|
||||
* IOS: 原生IOS端页面
|
||||
* ANDROID: 原生Android端页面
|
||||
* WEB_VIEW: H5页面
|
||||
* WECHAT_MINI_PROGRAM: 微信小程序页面
|
||||
*/
|
||||
private TerminalTypeEnum terminalType;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return JSON.toJSONString(this);
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@ 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.enums.BizCategoryEnum;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@ -103,6 +104,10 @@ public class PendingMessageResponse implements Serializable {
|
||||
* 待办发起人的企业id
|
||||
*/
|
||||
private Long ouId;
|
||||
/**
|
||||
* 待办状态
|
||||
*/
|
||||
private PendingMessageStateEnum state;
|
||||
/**
|
||||
* 业务类型
|
||||
*/
|
||||
|
||||
@ -1,7 +1,12 @@
|
||||
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.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description
|
||||
@ -11,4 +16,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
* @version 1.0
|
||||
*/
|
||||
public interface PendingMessageRecordMapper extends BaseMapper<PendingMessageRecord> {
|
||||
List<PendingMessageRecord> queryByTemplateCodes(@Param("pendingCalendarCodeDTO") PendingCalendarCodeDTO pendingCalendarCodeDTO, @Param("workspaceId") Long workspaceId, @Param("selectDate") Date selectDate);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.axzo.msg.center.dal.mapper.PendingMessageRecordMapper">
|
||||
|
||||
<sql id="templateCodesSql">
|
||||
<foreach collection="templateCodes " item="item" open="(" separator="," close=")" index="index">
|
||||
'${item}'
|
||||
</foreach>
|
||||
</sql>
|
||||
|
||||
<select id="queryByTemplateCodes" resultType="cn.axzo.msg.center.domain.entity.PendingMessageRecord">
|
||||
select * from (
|
||||
SELECT * FROM (SELECT * FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> #{selectDate} AND state IN('HAS_BEEN_SENT')
|
||||
AND template_code IN('d1d4793c84e14d20ae1cbc399338efa3','367ba552bb374049a73e737ac3b8b08c')
|
||||
<if test="workspaceId != null"> AND org_id=#{workspaceId} </if>
|
||||
ORDER BY create_at ASC) old_pending_message
|
||||
UNION ALL
|
||||
SELECT * FROM(SELECT * FROM pending_message_record WHERE DATE(create_at) = #{selectDate} AND state IN
|
||||
<foreach collection="templateCodes " item="item" open="(" separator="," close=")" index="index">
|
||||
'${item}'
|
||||
</foreach>
|
||||
AND template_code IN('d1d4793c84e14d20ae1cbc399338efa3','367ba552bb374049a73e737ac3b8b08c') <if test="workspaceId != null"> AND org_id=#{workspaceId} </if> ORDER BY create_at DESC) new_pending_message
|
||||
UNION ALL
|
||||
SELECT * FROM(SELECT * FROM pending_message_record WHERE DATE(create_at) = #{selectDate} AND state IN('HAS_BEEN_SENT','COMPLETED')
|
||||
AND template_code IN('出厂打卡') <if test="workspaceId != null"> AND org_id=#{workspaceId} </if> ORDER BY create_at DESC) new_pending_message1
|
||||
UNION ALL
|
||||
SELECT * FROM(SELECT * FROM pending_message_record WHERE DATE(create_at) = #{selectDate} AND state IN('HAS_BEEN_SENT','COMPLETED')
|
||||
AND template_code IN('进场打卡') <if test="workspaceId != null"> AND org_id=#{workspaceId} </if> ORDER BY create_at DESC) new_pending_message2
|
||||
)cc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,15 @@
|
||||
package cn.axzo.msg.center.domain.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
public class PendingCalendarCodeDTO{
|
||||
private List<String> constructionCodes;
|
||||
private List<String> clockInCodes;
|
||||
private List<String> punchInCodes;
|
||||
private List<String> allCodes;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user