update:修改转办审核消息推送失败的bug;完善分组管理
This commit is contained in:
+1
-4
@@ -100,10 +100,7 @@ public class SysGroupController {
|
|||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@ApiOperation(value = "分组管理-列表查询", notes = "分组管理-列表查询")
|
@ApiOperation(value = "分组管理-列表查询", notes = "分组管理-列表查询")
|
||||||
public Result<Object> list() {
|
public Result<Object> list() {
|
||||||
LambdaQueryWrapper<SysGroup> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
List<SysGroup> list = sysGroupService.queryList();
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
||||||
lambdaQueryWrapper.eq(SysGroup::getCreateBy, loginUser.getUsername());
|
|
||||||
List<SysGroup> list = sysGroupService.list(lambdaQueryWrapper);
|
|
||||||
return Result.OK(list);
|
return Result.OK(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.modules.system.entity.SysGroup;
|
import com.jero.modules.system.entity.SysGroup;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 用户分组表 Mapper 接口
|
* 用户分组表 Mapper 接口
|
||||||
@@ -18,4 +20,6 @@ public interface SysGroupMapper extends BaseMapper<SysGroup> {
|
|||||||
IPage<SysGroup> queryPageList(Page<SysGroup> page,SysGroup sysGroup);
|
IPage<SysGroup> queryPageList(Page<SysGroup> page,SysGroup sysGroup);
|
||||||
|
|
||||||
SysGroup queryOne(String id);
|
SysGroup queryOne(String id);
|
||||||
|
|
||||||
|
List<SysGroup> queryList(SysGroup sysGroup);
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-2
@@ -10,7 +10,11 @@
|
|||||||
sg.create_time,
|
sg.create_time,
|
||||||
count(sug.id) as count,
|
count(sug.id) as count,
|
||||||
GROUP_CONCAT(sug.user_id) as ids,
|
GROUP_CONCAT(sug.user_id) as ids,
|
||||||
GROUP_CONCAT(CONCAT(su.realname, '(', su.username, ')') ORDER BY su.realname, su.username) as userNames
|
GROUP_CONCAT(CONCAT(su.realname, '(', su.username, ')') ORDER BY su.realname, su.username) as userNames,
|
||||||
|
CASE
|
||||||
|
WHEN sg.create_by = #{sysGroup.currentUserName} THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END as is_admin_created
|
||||||
from sys_group sg
|
from sys_group sg
|
||||||
LEFT JOIN sys_user_group sug on sg.id = sug.group_id
|
LEFT JOIN sys_user_group sug on sg.id = sug.group_id
|
||||||
LEFT JOIN sys_user su on sug.user_id = su.id
|
LEFT JOIN sys_user su on sug.user_id = su.id
|
||||||
@@ -33,7 +37,7 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
group by sg.id,sg.group_name
|
group by sg.id,sg.group_name
|
||||||
order by sg.create_time desc
|
order by is_admin_created desc, sg.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryOne" resultType="com.jero.modules.system.entity.SysGroup">
|
<select id="queryOne" resultType="com.jero.modules.system.entity.SysGroup">
|
||||||
@@ -50,4 +54,20 @@
|
|||||||
LEFT JOIN sys_user su on sug.user_id = su.id
|
LEFT JOIN sys_user su on sug.user_id = su.id
|
||||||
where sg.id = #{id}
|
where sg.id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryList" resultType="com.jero.modules.system.entity.SysGroup">
|
||||||
|
select
|
||||||
|
sg.*,
|
||||||
|
CASE
|
||||||
|
WHEN sg.create_by = #{currentUserName} THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END as is_admin_created
|
||||||
|
from sys_group sg
|
||||||
|
<where>
|
||||||
|
<if test="isAdmin != 1">
|
||||||
|
sg.create_by = #{currentUserName}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by is_admin_created desc, sg.create_time desc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.modules.system.entity.SysGroup;
|
import com.jero.modules.system.entity.SysGroup;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -26,4 +27,7 @@ public interface ISysGroupService extends IService<SysGroup> {
|
|||||||
IPage<SysGroup> queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req);
|
IPage<SysGroup> queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req);
|
||||||
|
|
||||||
SysGroup queryOne(String id);
|
SysGroup queryOne(String id);
|
||||||
|
|
||||||
|
List<SysGroup> queryList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -128,4 +128,16 @@ public class SysGroupServiceImpl extends ServiceImpl<SysGroupMapper, SysGroup> i
|
|||||||
return Result.OK("操作成功");
|
return Result.OK("操作成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysGroup> queryList() {
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
SysGroup sysGroup = new SysGroup();
|
||||||
|
if (loginUser.getRoleIds().contains("admin") || loginUser.getRoleIds().contains("superAdmin")){
|
||||||
|
sysGroup.setIsAdmin("1");
|
||||||
|
}else {
|
||||||
|
sysGroup.setIsAdmin("0");
|
||||||
|
}
|
||||||
|
sysGroup.setCurrentUserName(loginUser.getUsername());
|
||||||
|
return sysGroupMapper.queryList(sysGroup);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-20
@@ -256,30 +256,25 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
|
|||||||
logMessage(JSON.toJSONString(instanceDto), instanceDto.getTitle(), jsonResponse, "/feishu/synchronizeApprovalInstance", Constant.FEISHU_PENDING);
|
logMessage(JSON.toJSONString(instanceDto), instanceDto.getTitle(), jsonResponse, "/feishu/synchronizeApprovalInstance", Constant.FEISHU_PENDING);
|
||||||
// 使用审批机器人推送消息
|
// 使用审批机器人推送消息
|
||||||
String taskStatus = instanceDto.getTaskStatus();
|
String taskStatus = instanceDto.getTaskStatus();
|
||||||
String taskIds = instanceDto.getTaskIds();
|
|
||||||
LambdaQueryWrapper<ProcessApprovalRecord> lambdaQueryWrapper = new LambdaQueryWrapper();
|
LambdaQueryWrapper<ProcessApprovalRecord> lambdaQueryWrapper = new LambdaQueryWrapper();
|
||||||
lambdaQueryWrapper.eq(ProcessApprovalRecord::getTaskId,taskIds);
|
lambdaQueryWrapper.eq(ProcessApprovalRecord::getTaskId, instanceDto.getTaskIds()).or()
|
||||||
|
.eq(ProcessApprovalRecord::getTransferTaskId, instanceDto.getTaskIds());
|
||||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(lambdaQueryWrapper, false);
|
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(lambdaQueryWrapper, false);
|
||||||
String feishuMsgId = processApprovalRecord.getFeishuMsgId();
|
String feishuMsgId = processApprovalRecord.getFeishuMsgId();
|
||||||
if (StringUtils.isBlank(feishuMsgId)) {
|
if (StringUtils.isBlank(feishuMsgId) || instanceDto.getTaskIds().contains("_")) {
|
||||||
// 如果该条审核记录没有飞书消息id,证明是同步待办
|
// 飞书消息为空或者是转办的情况下,都需要进行待办消息的推送
|
||||||
BotApprovalMessageDto botApprovalMessageDto = new BotApprovalMessageDto();
|
if ("PENDING".equals(instanceDto.getTaskStatus())) {
|
||||||
botApprovalMessageDto.setTemplateId("1008");
|
BotApprovalMessageDto botApprovalMessageDto = buildBotApprovalMessageDto(instanceDto, approvalsInstanceVo);
|
||||||
botApprovalMessageDto.setApprovalName(instanceDto.getTitle());
|
String msgId = sendApprovalMessageByBot(botApprovalMessageDto);
|
||||||
botApprovalMessageDto.setReceivedUserId(approvalsInstanceVo.getTask_list().get(0).getUser_id());
|
// 将msgId存入审核记录表
|
||||||
botApprovalMessageDto.setApplicantUserId(approvalsInstanceVo.getUser_id());
|
LambdaUpdateWrapper<ProcessApprovalRecord> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||||
botApprovalMessageDto.setTitleUserId(approvalsInstanceVo.getUser_id());
|
lambdaUpdateWrapper.eq(ProcessApprovalRecord::getTaskId, instanceDto.getTaskIds()).or()
|
||||||
botApprovalMessageDto.setContent1(instanceDto.getTitle());
|
.eq(ProcessApprovalRecord::getTransferTaskId, instanceDto.getTaskIds());
|
||||||
botApprovalMessageDto.setPcUrl(approvalsInstanceVo.getTask_list().get(0).getLinks().getPc_link());
|
lambdaUpdateWrapper.set(ProcessApprovalRecord::getFeishuMsgId,msgId);
|
||||||
botApprovalMessageDto.setMobileUrl(approvalsInstanceVo.getTask_list().get(0).getLinks().getMobile_link());
|
processApprovalRecordService.update(lambdaUpdateWrapper);
|
||||||
String msgId = sendApprovalMessageByBot(botApprovalMessageDto);
|
}
|
||||||
// 将msgId存入审核记录表
|
|
||||||
LambdaUpdateWrapper<ProcessApprovalRecord> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
||||||
lambdaUpdateWrapper.eq(ProcessApprovalRecord::getTaskId,instanceDto.getTaskIds());
|
|
||||||
lambdaUpdateWrapper.set(ProcessApprovalRecord::getFeishuMsgId,msgId);
|
|
||||||
processApprovalRecordService.update(lambdaUpdateWrapper);
|
|
||||||
}else {
|
}else {
|
||||||
// 如果该条审核记录有飞书id ,说明是同步已办
|
// 如果该条审核记录有飞书id ,说明是同步已办,进行审核消息状态的更新
|
||||||
ApprovalsUpdateMessageVo approvalsUpdateMessageVo = new ApprovalsUpdateMessageVo();
|
ApprovalsUpdateMessageVo approvalsUpdateMessageVo = new ApprovalsUpdateMessageVo();
|
||||||
approvalsUpdateMessageVo.setMessage_id(feishuMsgId);
|
approvalsUpdateMessageVo.setMessage_id(feishuMsgId);
|
||||||
approvalsUpdateMessageVo.setStatus(taskStatus);
|
approvalsUpdateMessageVo.setStatus(taskStatus);
|
||||||
@@ -291,6 +286,19 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BotApprovalMessageDto buildBotApprovalMessageDto(InstanceDto instanceDto, ApprovalsInstanceVo approvalsInstanceVo) {
|
||||||
|
BotApprovalMessageDto botApprovalMessageDto = new BotApprovalMessageDto();
|
||||||
|
botApprovalMessageDto.setTemplateId("1008");
|
||||||
|
botApprovalMessageDto.setApprovalName(instanceDto.getTitle());
|
||||||
|
botApprovalMessageDto.setReceivedUserId(approvalsInstanceVo.getTask_list().get(0).getUser_id());
|
||||||
|
botApprovalMessageDto.setApplicantUserId(approvalsInstanceVo.getUser_id());
|
||||||
|
botApprovalMessageDto.setTitleUserId(approvalsInstanceVo.getUser_id());
|
||||||
|
botApprovalMessageDto.setContent1(instanceDto.getTitle());
|
||||||
|
botApprovalMessageDto.setPcUrl(approvalsInstanceVo.getTask_list().get(0).getLinks().getPc_link());
|
||||||
|
botApprovalMessageDto.setMobileUrl(approvalsInstanceVo.getTask_list().get(0).getLinks().getMobile_link());
|
||||||
|
return botApprovalMessageDto;
|
||||||
|
}
|
||||||
|
|
||||||
private ApprovalsInstanceVo buildApprovalsInstanceVo(InstanceDto instanceDto) throws Exception {
|
private ApprovalsInstanceVo buildApprovalsInstanceVo(InstanceDto instanceDto) throws Exception {
|
||||||
// 转换userId为飞书Id
|
// 转换userId为飞书Id
|
||||||
// 发起人的id
|
// 发起人的id
|
||||||
|
|||||||
Reference in New Issue
Block a user