陈昶聿
10 天以前 144f9e4fce6a6d3bc01e2e6c723762d74e8d694a
【丽水】getCurrentUserServiceSubtaskCount 和 patItem对不上总数
已修改2个文件
51 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -843,39 +843,38 @@
    @ApiOperation("获取当前用户随访数量统计")
    @PostMapping("/getCurrentUserServiceSubtaskCount")
    public Map<String, Object> getCurrentUserServiceSubtaskCount() {
        Map<String, Object> map = new HashMap<>();
        SysUser sysUser = SecurityUtils.getLoginUser().getUser();
        SysUserDept sysUserDept = new SysUserDept();
        sysUserDept.setUserId(sysUser.getUserId());
        sysUserDept.setOrgid(sysUser.getOrgid());
        sysUserDept.setCampusid(sysUser.getCampusid());
        sysUserDept.setDeptType("1");
        List<Map<String, Object>> deptCodesMap = sysUser.getBelongDepts();
        List<Map<String, Object>> wardCodesMap = sysUser.getBelongWards();
        List<String> deptCodes = deptCodesMap.stream()
                        .map(item -> item.get("deptCode"))
                        .filter(obj -> obj != null) // 剔除null
                        .map(Object::toString)
                        .collect(Collectors.toList());
        List<String> wardCodes = wardCodesMap.stream()
        LoginUser loginUser = SecurityUtils.getLoginUser();
        if (loginUser == null || loginUser.getUser() == null) {
            return new HashMap<>();
        }
        SysUser sysUser = loginUser.getUser();
        List<String> deptCodes = CollectionUtils.emptyIfNull(sysUser.getBelongDepts()).stream()
                .map(item -> item.get("deptCode"))
                .filter(Objects::nonNull) // 剔除null
                .map(Object::toString)
                .collect(Collectors.toList());
        List<String> wardCodes = CollectionUtils.emptyIfNull(sysUser.getBelongWards()).stream()
                .map(item -> item.get("districtCode"))
                .filter(obj -> obj != null) // 剔除null
                .filter(Objects::nonNull) // 剔除null
                .map(Object::toString)
                .collect(Collectors.toList());
        ServiceSubtaskEntity entity = new ServiceSubtaskEntity();
        entity.setOrgid(sysUser.getOrgid());
        entity.setLeaveldeptcodes(deptCodes);
        entity.setLeavehospitaldistrictcodes(wardCodes);
        if (ObjectUtils.isNotEmpty(sysUser)) {
            if (!("admin").equals(sysUser.getUserName())) {
                if (CollectionUtils.isNotEmpty(deptCodes) && CollectionUtils.isNotEmpty(wardCodes)) {
                    map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
                }
            } else {
                map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
            }
        // admin 查看全院;非 admin 只要配置了科室或病区任一维度即可查询(SQL 中为 OR 关系)
        boolean isAdmin = "admin".equals(sysUser.getUserName());
        if (isAdmin || CollectionUtils.isNotEmpty(deptCodes) || CollectionUtils.isNotEmpty(wardCodes)) {
            return serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
        }
        return map;
        // 非 admin 且未配置任何科室/病区权限时,返回默认 0 值,避免前端取不到 key
        Map<String, Object> empty = new HashMap<>();
        empty.put("pendingVisitCount", 0);
        empty.put("failedVisitCount", 0);
        empty.put("abnormalVisitCount", 0);
        empty.put("warnningVisitCount", 0);
        empty.put("allVisitCount", 0);
        return empty;
    }
    @ApiOperation("获取当前用户宣教数量统计")
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2854,7 +2854,7 @@
        </if>
        <if test="(leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0)
                or (leaveldeptcodes != null and leaveldeptcodes.size() > 0)">
            AND(
            AND (
            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                leavehospitaldistrictcode IN
                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("