Merge branch 'feature/REQ-1634' into 'dev'
+通过ID撤销待办 See merge request universal/infrastructure/backend/msg-center-plat!89
This commit is contained in:
commit
161288b7b6
@ -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.IdentityDTO;
|
||||||
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
|
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
|
||||||
import cn.axzo.msg.center.service.dto.PersonDTO;
|
import cn.axzo.msg.center.service.dto.PersonDTO;
|
||||||
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
import cn.axzo.msg.center.service.enums.*;
|
||||||
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.pending.response.PendingMessageResponse;
|
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||||
import cn.axzo.msg.center.utils.DateFormatUtil;
|
import cn.axzo.msg.center.utils.DateFormatUtil;
|
||||||
import cn.axzo.msg.center.utils.MessageRouterUtil;
|
import cn.axzo.msg.center.utils.MessageRouterUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.*;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -132,6 +124,10 @@ public class PendingMessageDTO implements Serializable {
|
|||||||
* 路由参数
|
* 路由参数
|
||||||
*/
|
*/
|
||||||
private String routerParam;
|
private String routerParam;
|
||||||
|
/**
|
||||||
|
* 是否历史待办
|
||||||
|
*/
|
||||||
|
private Boolean isOld;
|
||||||
|
|
||||||
public static PendingMessageDTO from(PendingMessageRecord pendingMessageRecord) {
|
public static PendingMessageDTO from(PendingMessageRecord pendingMessageRecord) {
|
||||||
// 代办发起者信息
|
// 代办发起者信息
|
||||||
@ -174,6 +170,7 @@ public class PendingMessageDTO implements Serializable {
|
|||||||
.updateTime(DateFormatUtil.toLocalDateTime(pendingMessageRecord.getUpdateAt()))
|
.updateTime(DateFormatUtil.toLocalDateTime(pendingMessageRecord.getUpdateAt()))
|
||||||
.routerParam(pendingMessageRecord.getRouterParams())
|
.routerParam(pendingMessageRecord.getRouterParams())
|
||||||
.bizFinalState(pendingMessageRecord.getBizFinalState())
|
.bizFinalState(pendingMessageRecord.getBizFinalState())
|
||||||
|
.isOld(pendingMessageRecord.getIsOld())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,6 +202,7 @@ public class PendingMessageDTO implements Serializable {
|
|||||||
.detailRouter(MessageRouterUtil.fetchBizDetailRouter(this.msgTemplateRouter, terminalType).orElse(null))
|
.detailRouter(MessageRouterUtil.fetchBizDetailRouter(this.msgTemplateRouter, terminalType).orElse(null))
|
||||||
.buttonRouters(MessageRouterUtil.fetchMessageRouterButtons(this.msgTemplateRouter, terminalType))
|
.buttonRouters(MessageRouterUtil.fetchMessageRouterButtons(this.msgTemplateRouter, terminalType))
|
||||||
.bizFinalStateIcon(Optional.ofNullable(bizFinalState).map(BizFinalStateEnum::getIcon).orElse(null))
|
.bizFinalStateIcon(Optional.ofNullable(bizFinalState).map(BizFinalStateEnum::getIcon).orElse(null))
|
||||||
|
.isOld(this.isOld)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -137,4 +137,12 @@ public interface PendingMessageNewService {
|
|||||||
* @return 成功返回 {@code true} 失败返回 {@code false}
|
* @return 成功返回 {@code true} 失败返回 {@code false}
|
||||||
*/
|
*/
|
||||||
Boolean revokeByTemplateCodeBizCode(CompletePendingMessageRequest param);
|
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();
|
.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) {
|
private PendingMessageDTO convert(PendingMessageRecord pendingMessageRecord, List<MessageTemplateDTO> messageTemplates) {
|
||||||
PendingMessageDTO pendingMessage = PendingMessageDTO.from(pendingMessageRecord);
|
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.BizCategoryEnum;
|
||||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.*;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -136,6 +132,10 @@ public class PendingMessageResponse implements Serializable {
|
|||||||
* 业务终态的印章图片地址
|
* 业务终态的印章图片地址
|
||||||
*/
|
*/
|
||||||
private String bizFinalStateIcon;
|
private String bizFinalStateIcon;
|
||||||
|
/**
|
||||||
|
* 是否历史待办
|
||||||
|
*/
|
||||||
|
private Boolean isOld;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
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">
|
<!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">
|
<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 id="queryByTemplateCodes" resultType="cn.axzo.msg.center.domain.entity.PendingMessageRecord">
|
||||||
SELECT * FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate})
|
select * from (
|
||||||
AND template_code IN<foreach collection="pendingCalendarCodeDTO.constructionCodes" index="index" item="item" open="(" separator="," close=")">
|
SELECT * from (SELECT *,TRUE AS isOld FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT')
|
||||||
#{item}
|
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.allCodes" index="index" item="item" open="(" separator="," close=")">
|
||||||
</foreach>
|
#{item}
|
||||||
AND executor_person_id=#{personId}
|
</foreach> ORDER BY create_at ASC) old_pending_message
|
||||||
ORDER BY create_at DESC
|
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=")">
|
||||||
<!--select * from (
|
#{item}
|
||||||
SELECT * FROM (SELECT * FROM pending_message_record WHERE DATE(create_at) <![CDATA[<]]> DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT')
|
</foreach> ORDER BY state,create_at DESC) new_pending_message
|
||||||
AND template_code IN('d1d4793c84e14d20ae1cbc399338efa3','367ba552bb374049a73e737ac3b8b08c')
|
union all
|
||||||
<if test="workspaceId != null"> AND org_id=#{workspaceId} </if>
|
SELECT * FROM (SELECT *,FALSE AS isOld FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
|
||||||
ORDER BY create_at ASC) old_pending_message
|
AND executor_person_id=#{personId} AND template_code IN<foreach collection="pendingCalendarCodeDTO.punchInCodes" index="index" item="item" open="(" separator="," close=")">
|
||||||
UNION ALL
|
#{item}
|
||||||
SELECT * FROM(SELECT * FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate})
|
</foreach> ORDER BY state,create_at DESC) new_pending_message1
|
||||||
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
|
||||||
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')
|
||||||
SELECT * FROM(SELECT * 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=")">
|
||||||
AND template_code IN('出厂打卡') <if test="workspaceId != null"> AND org_id=#{workspaceId} </if> ORDER BY create_at DESC) new_pending_message1
|
#{item}
|
||||||
UNION ALL
|
</foreach> ORDER BY state,create_at DESC) new_pending_message2
|
||||||
SELECT * FROM(SELECT * FROM pending_message_record WHERE DATE(create_at) = DATE(#{selectDate}) AND state IN('HAS_BEEN_SENT','COMPLETED')
|
)ccc
|
||||||
AND template_code IN('进场打卡') <if test="workspaceId != null"> AND org_id=#{workspaceId} </if> ORDER BY create_at DESC) new_pending_message2
|
|
||||||
)cc-->
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.springframework.data.annotation.Transient;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -145,6 +146,12 @@ public class PendingMessageRecord extends BaseEntityExt<PendingMessageRecord> im
|
|||||||
*/
|
*/
|
||||||
private String failCause;
|
private String failCause;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否历史待办
|
||||||
|
*/
|
||||||
|
@Transient
|
||||||
|
private Boolean isOld;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return JSON.toJSONString(this);
|
return JSON.toJSONString(this);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user