+通过ID撤销待办
This commit is contained in:
parent
7443aea9f1
commit
31d181ff88
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
// 对应模板的路由策略
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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() {
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user