From 5e4fa7de3da13febb392ed4ce6edf58a89360f10 Mon Sep 17 00:00:00 2001 From: wangxy <1356089412@qq.com> Date: Wed, 7 Aug 2024 16:03:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BA=BA=E5=91=98=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/count/SysUsernumController.java | 73 ++++++++++++++----- .../system/domain/count/UserCountDTO.java | 33 +++++++++ .../ruoyi/system/mapper/SysUserMapper.java | 4 + .../ruoyi/system/service/ISysUserService.java | 4 + .../service/impl/SysUserServiceImpl.java | 6 ++ .../resources/mapper/system/SysUserMapper.xml | 14 ++++ 6 files changed, 116 insertions(+), 18 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/count/UserCountDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/count/SysUsernumController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/count/SysUsernumController.java index 28c87d2..0cf92d9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/count/SysUsernumController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/count/SysUsernumController.java @@ -3,6 +3,7 @@ package com.ruoyi.web.controller.system.count; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; @@ -17,6 +18,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.domain.count.UserCountDTO; import com.ruoyi.system.service.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -25,8 +27,10 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -52,28 +56,27 @@ public class SysUsernumController extends BaseController { @RequiresPermissions("system:usernum:view") @GetMapping() - public String user() - { + public String user() { return prefix + "/usernum"; } /** * 用户列表 + * * @param user * @return */ @RequiresPermissions("system:usernum:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(SysUser user,SysDept dept) - { + public TableDataInfo list(SysUser user, SysDept dept) { startPage(); List<SysUser> sysuser = new ArrayList<>(); List<SysUser> list = userService.selectUserGroupBydept(user); List<SysDept> sysDepts = deptService.selectDeptList(dept); - for (SysDept Dept : sysDepts){ - for ( SysUser user1 : list){ - if (Dept.getDeptName().equals(user1.getDept().getDeptName())){ + for (SysDept Dept : sysDepts) { + for (SysUser user1 : list) { + if (Dept.getDeptName().equals(user1.getDept().getDeptName())) { sysuser.add(user1); } } @@ -83,6 +86,7 @@ public class SysUsernumController extends BaseController { /** * 导出用户 + * * @param user * @return */ @@ -90,8 +94,7 @@ public class SysUsernumController extends BaseController { @RequiresPermissions("system:usernum:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(SysUser user) - { + public AjaxResult export(SysUser user) { List<SysUser> list = userService.selectUserList(user); ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); return util.exportExcel(list, "用户统计数据"); @@ -102,25 +105,59 @@ public class SysUsernumController extends BaseController { */ @RequiresPermissions("system:usernum:detail") @GetMapping("/print/{deptId}") - public String print(@PathVariable("deptId")Long deptId, SysUser user,ModelMap mmap) - - { + public String print(@PathVariable("deptId") Long deptId, SysUser user, ModelMap mmap) { List<SysUser> list = userService.lambdaQuery().eq(SysUser::getDeptId, deptId) - .eq(SysUser::getDelFlag,0) - .ne(SysUser::getUserId,1) + .eq(SysUser::getDelFlag, 0) + .ne(SysUser::getUserId, 1) .list(); list.forEach(sysuser -> { List<SysUserPost> postList = sysUserPostService.lambdaQuery(). eq(SysUserPost::getUserId, sysuser.getUserId()).list(); List<Long> postIds = postList.stream().map(SysUserPost::getPostId).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(postIds)){ + if (CollUtil.isNotEmpty(postIds)) { List<SysPost> sysPostList = postService.lambdaQuery().in(SysPost::getPostId, postIds).list(); - sysuser.setPosts( Convert.toList(SysPostVO.class, sysPostList)); + sysuser.setPosts(Convert.toList(SysPostVO.class, sysPostList)); } }); mmap.put("list", list); - mmap.put("dept",deptService.selectDeptById(deptId)); - mmap.put("sysuser",getSysUser()); + mmap.put("dept", deptService.selectDeptById(deptId)); + mmap.put("sysuser", getSysUser()); return prefix + "/print"; } + + + private List<String> sharType = Arrays.asList("已登记", "已申报", "已审核", "已离职"); + + + /** + * + * 统计人员已登记、已申报、已审核、已离职 + * @return com.ruoyi.common.core.domain.AjaxResult + */ + @PostMapping("/countUser") + @ResponseBody + public AjaxResult countUser() { + UserCountDTO userCountDTO = userService.selectCountUser(); + List<JSONObject> datas = sharType.stream() + .map(name -> { + AtomicReference<Object> value = new AtomicReference<>(0L); + if("已登记".equals(name)){ + value.set(userCountDTO.getYdj()); + }else if("已申报".equals(name)){ + value.set(userCountDTO.getYsb()); + }else if("已审核".equals(name)){ + value.set(userCountDTO.getYsh()); + }else{ + value.set(userCountDTO.getYlz()); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("name", name); + jsonObject.put("value", value.get()); + return jsonObject; + }) + .collect(Collectors.toList()); + return AjaxResult.success(datas); + } + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/count/UserCountDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/count/UserCountDTO.java new file mode 100644 index 0000000..1d78184 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/count/UserCountDTO.java @@ -0,0 +1,33 @@ +package com.ruoyi.system.domain.count; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * packageName com.ruoyi.system.domain.userexam.dto.response + * + * @author wangxy + * @version JDK 8 + * @className ExamCountDTO + * @date 2024/8/7 + * @description 用户统计 + */ +@Data +@ApiModel(value="用户统计", description="用户统计") +public class UserCountDTO implements Serializable { + + @ApiModelProperty(value = "已登记") + private Integer ydj; + + @ApiModelProperty(value = "已申报") + private Integer ysb; + + @ApiModelProperty(value = "已审核") + private Integer ysh; + + @ApiModelProperty(value = "已离职") + private Integer ylz; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 6290b5f..fa6b4cd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -5,6 +5,7 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.domain.count.UserCountDTO; /** * 用户表 数据层 @@ -126,4 +127,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> * @return 结果 */ public SysUser checkEmailUnique(String email); + + + public UserCountDTO selectCountUser(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index f86a733..1518b43 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.domain.count.UserCountDTO; /** * 用户 业务层 @@ -226,4 +227,7 @@ public interface ISysUserService extends IService<SysUser> * @return 结果 */ public int changeStatus(SysUser user); + + + public UserCountDTO selectCountUser(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index aed3c9c..9c1e71b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -7,6 +7,7 @@ import javax.validation.Validator; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.system.domain.count.UserCountDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -581,4 +582,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper,SysUser> imple public boolean save(SysUser entity) { return super.save(entity); } + + @Override + public UserCountDTO selectCountUser() { + return userMapper.selectCountUser(); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index d8d9171..bac3282 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -313,5 +313,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" now() ) </insert> + + + <select id="selectCountUser" resultType="com.ruoyi.system.domain.count.UserCountDTO"> + SELECT + SUM (CASE WHEN examine = 2 THEN 1 ELSE 0 END) AS ydj, + SUM (CASE WHEN examine = 3 THEN 1 ELSE 0 END) AS ysb, + SUM (CASE WHEN examine = 0 THEN 1 ELSE 0 END) AS ysh, + (SELECT SUM (CASE WHEN leavestate = 1 THEN 1 ELSE 0 END) + FROM td_leave t where t.user_id=s.user_id) as ylz + FROM ${prefix}sys_user s + </select> + + + </mapper> \ No newline at end of file