diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java index 578eac4b..baaf867d 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java @@ -100,10 +100,7 @@ public class SysGroupController { @GetMapping("/list") @ApiOperation(value = "分组管理-列表查询", notes = "分组管理-列表查询") public Result list() { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - lambdaQueryWrapper.eq(SysGroup::getCreateBy, loginUser.getUsername()); - List list = sysGroupService.list(lambdaQueryWrapper); + List list = sysGroupService.queryList(); return Result.OK(list); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java index e896e459..1e888813 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.system.entity.SysGroup; +import java.util.List; + /** *

* 用户分组表 Mapper 接口 @@ -18,4 +20,6 @@ public interface SysGroupMapper extends BaseMapper { IPage queryPageList(Page page,SysGroup sysGroup); SysGroup queryOne(String id); + + List queryList(SysGroup sysGroup); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml index 1b363af0..b12b5cf7 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml @@ -10,7 +10,11 @@ sg.create_time, count(sug.id) as count, 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 LEFT JOIN sys_user_group sug on sg.id = sug.group_id LEFT JOIN sys_user su on sug.user_id = su.id @@ -33,7 +37,7 @@ group by sg.id,sg.group_name - order by sg.create_time desc + order by is_admin_created desc, sg.create_time desc + + diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java index aa869adb..9eb11d5b 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.modules.system.entity.SysGroup; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** *

@@ -26,4 +27,7 @@ public interface ISysGroupService extends IService { IPage queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req); SysGroup queryOne(String id); + + List queryList(); + } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java index f37431f6..3c8c3ead 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java @@ -128,4 +128,16 @@ public class SysGroupServiceImpl extends ServiceImpl i return Result.OK("操作成功"); } + @Override + public List 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); + } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java index a8f76e99..4147ca59 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java @@ -256,30 +256,25 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { logMessage(JSON.toJSONString(instanceDto), instanceDto.getTitle(), jsonResponse, "/feishu/synchronizeApprovalInstance", Constant.FEISHU_PENDING); // 使用审批机器人推送消息 String taskStatus = instanceDto.getTaskStatus(); - String taskIds = instanceDto.getTaskIds(); LambdaQueryWrapper 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); String feishuMsgId = processApprovalRecord.getFeishuMsgId(); - if (StringUtils.isBlank(feishuMsgId)) { - // 如果该条审核记录没有飞书消息id,证明是同步待办 - 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()); - String msgId = sendApprovalMessageByBot(botApprovalMessageDto); - // 将msgId存入审核记录表 - LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); - lambdaUpdateWrapper.eq(ProcessApprovalRecord::getTaskId,instanceDto.getTaskIds()); - lambdaUpdateWrapper.set(ProcessApprovalRecord::getFeishuMsgId,msgId); - processApprovalRecordService.update(lambdaUpdateWrapper); + if (StringUtils.isBlank(feishuMsgId) || instanceDto.getTaskIds().contains("_")) { + // 飞书消息为空或者是转办的情况下,都需要进行待办消息的推送 + if ("PENDING".equals(instanceDto.getTaskStatus())) { + BotApprovalMessageDto botApprovalMessageDto = buildBotApprovalMessageDto(instanceDto, approvalsInstanceVo); + String msgId = sendApprovalMessageByBot(botApprovalMessageDto); + // 将msgId存入审核记录表 + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(ProcessApprovalRecord::getTaskId, instanceDto.getTaskIds()).or() + .eq(ProcessApprovalRecord::getTransferTaskId, instanceDto.getTaskIds()); + lambdaUpdateWrapper.set(ProcessApprovalRecord::getFeishuMsgId,msgId); + processApprovalRecordService.update(lambdaUpdateWrapper); + } }else { - // 如果该条审核记录有飞书id ,说明是同步已办 + // 如果该条审核记录有飞书id ,说明是同步已办,进行审核消息状态的更新 ApprovalsUpdateMessageVo approvalsUpdateMessageVo = new ApprovalsUpdateMessageVo(); approvalsUpdateMessageVo.setMessage_id(feishuMsgId); 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 { // 转换userId为飞书Id // 发起人的id