赵鹏 1 month ago
parent
commit
a8d41ba06d
  1. 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/enterprise/vo/EnterprisePageReqVO.java
  2. 5
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/taskinfo/TaskInfoController.java
  3. 9
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
  4. 7
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/enterprise/EnterpriseMapper.java
  5. 6
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java
  6. 11
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/TaskSendStartMessageJob.java
  7. 62
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
  8. 25
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/enterprise/EnterpriseServiceImpl.java
  9. 9
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/enterpriseinspections/EnterpriseInspectionsServiceImpl.java
  10. 11
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceImpl.java
  11. 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java
  12. 65
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
  13. 37
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/enterprise/EnterpriseMapper.xml
  14. 5
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/taskinfo/TaskInfoMapper.xml

1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/enterprise/vo/EnterprisePageReqVO.java

@ -101,4 +101,5 @@ public class EnterprisePageReqVO extends PageParam {
@Schema(description = "排除企业id")
private Long excludeEnterpriseId;
}

5
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/taskinfo/TaskInfoController.java

@ -189,7 +189,10 @@ public class TaskInfoController {
pageResult.getList().forEach(item->{
item.setPublishDep(dep.getName());
item.setCreateName(adminUserService.getUser(Long.valueOf(item.getCreator())).getRealName());
final AdminUserDO user1 = adminUserService.getUser(Long.valueOf(item.getCreator()));
if (user1 != null) {
item.setCreateName(user1.getRealName());
}
enterpriseInspectionsPageReqVO.setTaskId(item.getId());
List<EnterpriseInspectionsDO> enterpriseInspectionsides=enterpriseInspectionsService.getEnterpriseInspectionsList(enterpriseInspectionsPageReqVO);
EnterprisePageReqVO enterprisePageReqVO=new EnterprisePageReqVO();

9
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java

@ -77,6 +77,15 @@ public class UserController {
return success(true);
}
@DeleteMapping("/test_delete")
@Operation(summary = "测试时,删除用户所有信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:user:delete')")
public CommonResult<Boolean> testDeleteUser(@RequestParam("id") Long id) {
userService.testDeleteUser(id);
return success(true);
}
@PutMapping("/update-password")
@Operation(summary = "重置用户密码")
@PreAuthorize("@ss.hasPermission('system:user:update-password')")

7
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/enterprise/EnterpriseMapper.java

@ -6,8 +6,12 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.enterprise.EnterpriseDO;
import cn.iocoder.yudao.module.system.dal.dataobject.taskinfo.TaskInfoDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.system.controller.admin.enterprise.vo.*;
import org.apache.ibatis.annotations.Param;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
@ -72,4 +76,7 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
.inIfPresent(EnterpriseDO::getId,reqVO.getIds())
.orderByDesc(EnterpriseDO::getId));
}
IPage<EnterpriseDO> getAppPage(Page<EnterpriseDO> page, @Param("params") EnterprisePageReqVO pageReqVO);
}

6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java

@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import java.util.Collection;
@ -50,4 +51,9 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
return selectList(AdminUserDO::getDeptId, deptIds);
}
@Delete("delete from system_oauth2_access_token where user_id = #{userId}")
Long deleteOauth2AccessAuth(Long userId);
@Delete("delete from system_oauth2_refresh_token where user_id = #{userId}")
Long deleteOauth2RefreshAuth(Long userId);
}

11
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/TaskSendStartMessageJob.java

@ -76,9 +76,9 @@ public class TaskSendStartMessageJob implements JobHandler {
//执法任务更改状态
LambdaQueryWrapper<EnterpriseInspectionsDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EnterpriseInspectionsDO::getTaskId, x.getId());
wrapper.eq(EnterpriseInspectionsDO::getTaskId, x.getTaskId());
List<EnterpriseInspectionsDO> enterpriseInspectionsDOList = enterpriseInspectionsMapper.selectList(wrapper);
if(enterpriseInspectionsDOList!=null && enterpriseInspectionsDOList.size() > 0){
if(enterpriseInspectionsDOList!=null && enterpriseInspectionsDOList.size() > 0) {
List<EnterpriseInspectionsDO> list = new ArrayList<>();
for (EnterpriseInspectionsDO enterpriseInspectionsDO : enterpriseInspectionsDOList) {
//站内信发送通知
@ -88,16 +88,17 @@ public class TaskSendStartMessageJob implements JobHandler {
Map<String, Object> templateParams = new HashMap<>();
templateParams.put("title", beforeTaskInfo.getTitle());
templateParams.put("startTime", beforeTaskInfo.getStartDate());
templateParams.put("endTime", beforeTaskInfo.getEndDate());
templateParams.put("url", "sub/task/detail?taskId="+ enterpriseInspectionsDO.getTaskId());
notifyMessage.setTemplateParams(templateParams);
notifyMessageSendApi.sendSingleMessageToAdmin(notifyMessage);
notifyMessageSendApi.sendSingleMessageToMember(notifyMessage);
enterpriseInspectionsDO.setStatus(2);
list.add(enterpriseInspectionsDO);
}
enterpriseInspectionsMapper.updateBatch(list);
}
}
});

62
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java

@ -459,47 +459,31 @@ public class AdminAuthServiceImpl implements AdminAuthService {
AdminUserDO user = userService.getUser(loginUserId);
RoleNameAndSelectTypeVO roleNameAndSelectTypeVO = new RoleNameAndSelectTypeVO();
if (user != null) {
if (user.getPostIds() != null) {
if (user.getPostIds().contains(1L) || user.getPostIds().contains(2L)) {
// 全部权限,不需要设置任何条件
roleNameAndSelectTypeVO.setRoleName("director");
} else if (user.getPostIds().contains(4L)) {
// 本部门权限
roleNameAndSelectTypeVO.setRoleName("queue");
roleNameAndSelectTypeVO.setValue(user.getDeptId());
} else {
// 仅自己权限
roleNameAndSelectTypeVO.setRoleName("self");
roleNameAndSelectTypeVO.setValue(loginUserId);
roleNameAndSelectTypeVO.setDeptId(user.getDeptId());
}
} else {
//如果岗位不存在查询角色
LambdaQueryWrapper<UserRoleDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UserRoleDO::getUserId, loginUserId);
List<UserRoleDO> userRoleDO = userRoleMapper.selectList(wrapper);
if (userRoleDO == null) {
throw exception(ROLE_ERROR);
}
List<Long> collect = userRoleDO.stream().map(item -> item.getRoleId()).collect(Collectors.toList());
if (collect.contains(164l) || collect.contains(1l)) {
// 全部权限,不需要设置任何条件
roleNameAndSelectTypeVO.setRoleName("director");
} else if (collect.contains(163L)) {
// 本部门权限
roleNameAndSelectTypeVO.setRoleName("queue");
roleNameAndSelectTypeVO.setValue(user.getDeptId());
} else {
// 仅自己权限
roleNameAndSelectTypeVO.setRoleName("self");
roleNameAndSelectTypeVO.setValue(loginUserId);
roleNameAndSelectTypeVO.setDeptId(user.getDeptId());
}
//如果岗位不存在查询角色
LambdaQueryWrapper<UserRoleDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UserRoleDO::getUserId, loginUserId);
List<UserRoleDO> userRoleDO = userRoleMapper.selectList(wrapper);
if (userRoleDO == null) {
throw exception(ROLE_ERROR);
}
List<Long> collect = userRoleDO.stream().map(item -> item.getRoleId()).collect(Collectors.toList());
if (collect.contains(164l) || collect.contains(1l)) {
// 全部权限,不需要设置任何条件
roleNameAndSelectTypeVO.setRoleName("director");
} else if (collect.contains(163L)) {
// 本部门权限
roleNameAndSelectTypeVO.setRoleName("queue");
roleNameAndSelectTypeVO.setValue(user.getDeptId());
} else {
// 仅自己权限
roleNameAndSelectTypeVO.setRoleName("self");
roleNameAndSelectTypeVO.setValue(loginUserId);
roleNameAndSelectTypeVO.setDeptId(user.getDeptId());
}
} else {
throw exception(USER_NOT_EXISTS);
}

25
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/enterprise/EnterpriseServiceImpl.java

@ -29,6 +29,8 @@ import cn.iocoder.yudao.module.system.service.qualification.EnterpriseQualificat
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.tomcat.jni.FileInfo;
import org.checkerframework.checker.units.qual.A;
import org.springframework.stereotype.Service;
@ -279,27 +281,12 @@ public class EnterpriseServiceImpl implements EnterpriseService {
pageReqVO.setDepartmentId(typeVO.getValue());
}
final PageResult<EnterpriseDO> enterpriseDOPageResult = enterpriseMapper.selectPage(pageReqVO);
Page<EnterpriseDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
final IPage<EnterpriseDO> appPage = enterpriseMapper.getAppPage(page, pageReqVO);
return new PageResult<>(appPage.getRecords(), appPage.getTotal());
if (pageReqVO.getTagList() != null && pageReqVO.getTagList().size() > 0) {
LambdaQueryWrapper<EnterpriseTagDO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(EnterpriseTagDO::getTagId, pageReqVO.getTagList());
List<EnterpriseTagDO> enterpriseTagDOList = enterpriseTagMapper.selectList(wrapper);
//根据enterpriseTagDOList 筛选
List<EnterpriseDO> enterpriseDOList = new ArrayList<>();
for (EnterpriseDO enterpriseDO : enterpriseDOPageResult.getList()) {
for (EnterpriseTagDO enterpriseTagDO : enterpriseTagDOList) {
if (enterpriseTagDO.getEnterpriseId().equals(enterpriseDO.getId())) {
enterpriseDOList.add(enterpriseDO);
break;
}
}
}
enterpriseDOPageResult.setList(enterpriseDOList);
enterpriseDOPageResult.setTotal(Long.valueOf(enterpriseDOList.size()));
}
return enterpriseDOPageResult;
}
//审核状态
@Override

9
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/enterpriseinspections/EnterpriseInspectionsServiceImpl.java

@ -193,15 +193,6 @@ public class EnterpriseInspectionsServiceImpl implements EnterpriseInspectionsSe
}
}
// if ("queue".equals(typeVO.getRoleName())) {
// pageReqVO.setDepartmentId(typeVO.getValue());
// final List<AdminUserDO> adminUserDOS = adminUserMapper.selectList(new QueryWrapper<AdminUserDO>().eq("dept_id", typeVO.getValue()));
// if (adminUserDOS != null || adminUserDOS.size() > 0) {
// final List<Long> collect = adminUserDOS.stream().map(item -> item.getId()).collect(Collectors.toList());
// pageReqVO.setUserIds(collect);
// }
// }
//按照部门查询
if (pageReqVO.getDepartmentId() != null) {
final List<AdminUserDO> adminUserDOS = adminUserMapper.selectList(new QueryWrapper<AdminUserDO>().eq("dept_id", pageReqVO.getDepartmentId()));

11
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceImpl.java

@ -20,7 +20,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -98,7 +100,14 @@ public class HomeServiceImpl implements HomeService{
});
}
homeCountResVO.setCompletionRate(homeGroupCountVOS1);
//排序
final List<HomeListVO> sortCollect = homeGroupCountVOS1.stream().
sorted(Comparator.comparing(HomeListVO::getValue).reversed()).
collect(Collectors.toList());
log.info("sortCollect:{}", sortCollect);
homeCountResVO.setCompletionRate(sortCollect);
return homeCountResVO;
}

2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java

@ -230,4 +230,6 @@ public interface AdminUserService {
List<DeptUserReqVO> getSimpleUserZGList();
List<AdminUserDO> getSimpleEnterpriseUserList(Integer type);
void testDeleteUser(Long id);
}

65
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@ -23,12 +23,19 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
import cn.iocoder.yudao.module.system.controller.admin.userAuditlog.vo.UserAuditLogSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
import cn.iocoder.yudao.module.system.dal.dataobject.enterprise.EnterpriseDO;
import cn.iocoder.yudao.module.system.dal.dataobject.enterpriseinspections.EnterpriseInspectionsDO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserBindDO;
import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.dal.dataobject.userAuditlog.UserAuditLogDO;
import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
import cn.iocoder.yudao.module.system.dal.mysql.enterprise.EnterpriseMapper;
import cn.iocoder.yudao.module.system.dal.mysql.enterpriseinspections.EnterpriseInspectionsMapper;
import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserBindMapper;
import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
import cn.iocoder.yudao.module.system.dal.mysql.userAuditlog.UserAuditLogMapper;
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
@ -38,6 +45,7 @@ import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
import cn.iocoder.yudao.module.system.service.userAuditlog.UserAuditLogService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.annotations.VisibleForTesting;
import com.mzt.logapi.context.LogRecordContext;
import com.mzt.logapi.service.impl.DiffParseFunction;
@ -100,6 +108,15 @@ public class AdminUserServiceImpl implements AdminUserService {
private AdminUserMapper adminUserMapper;
@Resource
private UserRoleMapper userRoleMapper;
@Resource
private SocialUserBindMapper socialUserBindMapper;
@Resource
private SocialUserMapper socialUserMapper;
@Resource
private EnterpriseMapper enterpriseMapper;
@Resource
private EnterpriseInspectionsMapper enterpriseInspectionsMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@ -288,6 +305,23 @@ public class AdminUserServiceImpl implements AdminUserService {
permissionService.processUserDeleted(id);
// 2.2 删除用户岗位
userPostMapper.deleteByUserId(id);
// 2.3 删除社交用户
QueryWrapper<SocialUserDO> wrapper = new QueryWrapper<>();
wrapper.eq("user_id", id);
final SocialUserBindDO socialUserBindDO = socialUserBindMapper.selectById(wrapper);
socialUserMapper.deleteById(socialUserBindDO.getSocialUserId());
socialUserBindMapper.deleteById(socialUserBindDO.getId());
//2.4 删除 token 数据
adminUserMapper.deleteOauth2AccessAuth(id);
adminUserMapper.deleteOauth2RefreshAuth(id);
//2.5 删除 企业
QueryWrapper<EnterpriseDO> enterpriseDOQueryWrapper = new QueryWrapper<>();
enterpriseDOQueryWrapper.eq("user_id", id);
enterpriseMapper.delete(enterpriseDOQueryWrapper);
//2.6 执法
QueryWrapper<EnterpriseInspectionsDO> inspectionsDOQueryWrapper = new QueryWrapper<>();
inspectionsDOQueryWrapper.eq("user_id", id);
enterpriseInspectionsMapper.delete(inspectionsDOQueryWrapper);
// 3. 记录操作日志上下文
LogRecordContext.putVariable("user", user);
@ -622,6 +656,37 @@ public class AdminUserServiceImpl implements AdminUserService {
return adminUserMapper.selectList(wrapper);
}
@Override
public void testDeleteUser(Long id) {
// 1. 校验用户存在
AdminUserDO user = validateUserExists(id);
// 2.1 删除用户
userMapper.deleteById(id);
// 2.2 删除用户关联数据
permissionService.processUserDeleted(id);
// 2.2 删除用户岗位
userPostMapper.deleteByUserId(id);
// 2.3 删除社交用户
QueryWrapper<SocialUserBindDO> wrapper = new QueryWrapper<>();
wrapper.eq("user_id", id);
final SocialUserBindDO socialUserBindDO = socialUserBindMapper.selectOne(wrapper);
socialUserMapper.deleteById(socialUserBindDO.getSocialUserId());
socialUserBindMapper.deleteById(socialUserBindDO.getId());
//2.4 删除 token 数据
adminUserMapper.deleteOauth2AccessAuth(id);
adminUserMapper.deleteOauth2RefreshAuth(id);
//2.5 删除 企业
QueryWrapper<EnterpriseDO> enterpriseDOQueryWrapper = new QueryWrapper<>();
enterpriseDOQueryWrapper.eq("user_id", id);
enterpriseMapper.delete(enterpriseDOQueryWrapper);
//2.6 执法
QueryWrapper<EnterpriseInspectionsDO> inspectionsDOQueryWrapper = new QueryWrapper<>();
inspectionsDOQueryWrapper.eq("user_id", id);
enterpriseInspectionsMapper.delete(inspectionsDOQueryWrapper);
// 3. 记录操作日志上下文
LogRecordContext.putVariable("user", user);
}
public void bindSocialUser(Long userId, AuthUser authUser) {
// SocialUserDO socialUser = new SocialUserDO();
// socialUser.setUserId(userId);

37
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/enterprise/EnterpriseMapper.xml

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.enterprise.EnterpriseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getAppPage" resultType="cn.iocoder.yudao.module.system.dal.dataobject.enterprise.EnterpriseDO">
select DISTINCT e.*
from
enterprises e
left join enterprise_tag et on e.id = et.enterprise_id
left join tag_library tl on et.tag_id = tl.id
where
e.deleted = 0
<if test="params.region != null and params.region != ''">
and region = #{params.region}
</if>
<if test="params.userId != null and params.userId != ''">
and user_id = #{params.userId}
</if>
<if test="params.departmentId != null and params.departmentId != ''">
and department_id = #{params.departmentId}
</if>
<if test="params.tagList != null and params.tagList != ''">
and tl.id in
<foreach collection="params.tagList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>

5
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/taskinfo/TaskInfoMapper.xml

@ -68,7 +68,6 @@
</if>
SUM(CASE WHEN il.status = 2 THEN 1 ELSE 0 END) as finishCount,
COUNT(DISTINCT ei.id) as execCount,
COUNT(DISTINCT ei.id) AS totalCount , -- 计算每个 user_id 的总数
round( SUM(CASE WHEN il.status = 2 THEN 1 ELSE 0 END) /COUNT(DISTINCT ei.id) * 100,1) as completionRate
FROM
enterprise_inspections ei
@ -85,7 +84,7 @@
WHERE
ei.deleted = 0 AND e.deleted = 0 and ei.status = 2
<if test="deptId != null and deptId != ''">
and e.department_id = #{deptId} and su.real_name is not null
and e.department_id = #{deptId}
</if>
<if test="deptId == null">
and e.department_id != 100
@ -97,7 +96,7 @@
<if test="deptId == null">
e.department_id
</if>
order by finishCount
</select>
<select id="selectEnterpriseNum" resultType="cn.iocoder.yudao.module.system.controller.admin.home.vo.EnterpriseNumVO">
select

Loading…
Cancel
Save