Merge branch 'feature/REQ-1634' into 'dev'

+通过ID撤销待办

See merge request universal/infrastructure/backend/msg-center-plat!89
This commit is contained in:
邬宇 2023-11-28 02:56:51 +00:00
commit 161288b7b6
7 changed files with 85 additions and 46 deletions

View File

@ -4,20 +4,12 @@ import cn.axzo.msg.center.domain.entity.PendingMessageRecord;
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.enums.BizCategoryEnum;
import cn.axzo.msg.center.service.enums.BizFinalStateEnum;
import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.enums.*;
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
import cn.axzo.msg.center.utils.DateFormatUtil;
import cn.axzo.msg.center.utils.MessageRouterUtil;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@ -132,6 +124,10 @@ public class PendingMessageDTO implements Serializable {
* 路由参数
*/
private String routerParam;
/**
* 是否历史待办
*/
private Boolean isOld;
public static PendingMessageDTO from(PendingMessageRecord pendingMessageRecord) {
// 代办发起者信息
@ -174,6 +170,7 @@ public class PendingMessageDTO implements Serializable {
.updateTime(DateFormatUtil.toLocalDateTime(pendingMessageRecord.getUpdateAt()))
.routerParam(pendingMessageRecord.getRouterParams())
.bizFinalState(pendingMessageRecord.getBizFinalState())
.isOld(pendingMessageRecord.getIsOld())
.build();
}
@ -205,6 +202,7 @@ public class PendingMessageDTO implements Serializable {
.detailRouter(MessageRouterUtil.fetchBizDetailRouter(this.msgTemplateRouter, terminalType).orElse(null))
.buttonRouters(MessageRouterUtil.fetchMessageRouterButtons(this.msgTemplateRouter, terminalType))
.bizFinalStateIcon(Optional.ofNullable(bizFinalState).map(BizFinalStateEnum::getIcon).orElse(null))
.isOld(this.isOld)
.build();
}

View File

@ -137,4 +137,12 @@ public interface PendingMessageNewService {
* @return 成功返回 {@code true} 失败返回 {@code false}
*/
Boolean revokeByTemplateCodeBizCode(CompletePendingMessageRequest param);
/**
* 通过ID撤销代办
*
* @param param
* @return 成功返回 {@code true} 失败返回 {@code false}
*/
Boolean revokeById(RevokePendingMessageByIdRequest param);
}

View File

@ -388,6 +388,17 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
.update();
}
@Override
public Boolean revokeById(RevokePendingMessageByIdRequest param) {
log.info("the [{}] record is RevokePendingMessageByIdRequest.", param);
return pendingMessageRecordDao.lambdaUpdate()
.set(PendingMessageRecord::getState, PendingMessageStateEnum.RETRACT)
.eq(PendingMessageRecord::getId, param.getId())
.eq(PendingMessageRecord::getState, PendingMessageStateEnum.HAS_BEEN_SENT)
.eq(PendingMessageRecord::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.update();
}
private PendingMessageDTO convert(PendingMessageRecord pendingMessageRecord, List<MessageTemplateDTO> messageTemplates) {
PendingMessageDTO pendingMessage = PendingMessageDTO.from(pendingMessageRecord);
// 对应模板的路由策略

View File

@ -0,0 +1,25 @@
package cn.axzo.msg.center.service.pending.request;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @author haiyangjin
* @date 2023/11/16
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RevokePendingMessageByIdRequest {
/**
* 关联业务主键
*/
@NotNull(message = "消息ID不能为空")
private Long id;
}

View File

@ -7,11 +7,7 @@ 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;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.*;
import java.io.Serializable;
import java.util.List;
@ -136,6 +132,10 @@ public class PendingMessageResponse implements Serializable {
* 业务终态的印章图片地址
*/
private String bizFinalStateIcon;
/**
* 是否历史待办
*/
private Boolean isOld;
@Override
public String toString() {

View File

@ -2,37 +2,27 @@
<!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 pending_message_record WHERE DATE(create_at) = DATE(#{selectDate})
AND template_code IN<foreach collection="pendingCalendarCodeDTO.constructionCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND executor_person_id=#{personId}
ORDER BY create_at DESC
<!--select * from (
SELECT * FROM (SELECT * FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> DATE(#{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) = DATE(#{selectDate})
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) = DATE(#{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) = DATE(#{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 * from (
SELECT * from (SELECT *,TRUE AS isOld FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT')
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.allCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY create_at ASC) old_pending_message
union ALL
select * from (SELECT *,FALSE AS isOld FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.constructionCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY state,create_at DESC) new_pending_message
union all
SELECT * FROM (SELECT *,FALSE AS isOld FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.punchInCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY state,create_at DESC) new_pending_message1
union all
SELECT * FROM(SELECT *,FALSE AS isOld FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.clockInCodes" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach> ORDER BY state,create_at DESC) new_pending_message2
)ccc
</select>
</mapper>

View File

@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Transient;
import java.io.Serializable;
import java.util.Date;
@ -145,6 +146,12 @@ public class PendingMessageRecord extends BaseEntityExt<PendingMessageRecord> im
*/
private String failCause;
/**
* 是否历史待办
*/
@Transient
private Boolean isOld;
@Override
public String toString() {
return JSON.toJSONString(this);