ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -844,29 +844,31 @@ @PostMapping("/getCurrentUserServiceSubtaskCount") public Map<String, Object> getCurrentUserServiceSubtaskCount() { Map<String, Object> map = new HashMap<>(); LoginUser loginUser = getLoginUser(); SysUser sysUser = loginUser.getUser(); 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<SysUserDept> sysUserDepts = sysUserDeptService.selectSysUserDeptList(sysUserDept); SysUserDept sysUserWard = new SysUserDept(); sysUserWard.setUserId(sysUser.getUserId()); sysUserWard.setOrgid(sysUser.getOrgid()); sysUserWard.setCampusid(sysUser.getCampusid()); sysUserWard.setDeptType("2"); List<SysUserDept> sysUserWards = sysUserDeptService.selectSysUserDeptList(sysUserWard); List<String> deptCodes = sysUserDepts.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()); List<String> wardCodes = sysUserWards.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()); 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() .map(item -> item.get("districtCode")) .filter(obj -> obj != null) // 剔除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 (ObjectUtils.isNotEmpty(sysUserWards) && ObjectUtils.isNotEmpty(sysUserDepts)) { if (CollectionUtils.isNotEmpty(deptCodes) && CollectionUtils.isNotEmpty(wardCodes)) { map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity); } } else { smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -406,17 +406,21 @@ </if> </if> <if test="deptOrDistrict==2"> AND (1=1 <if test="leavehospitaldistrictcodes != null"> AND leavehospitaldistrictcode IN AND ( <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> leavehospitaldistrictcode IN <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")"> #{leavehospitaldistrictcode} </foreach> </if> <if test=" leaveldeptcodes != null"> OR deptcode IN <if test="(leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0) and (leaveldeptcodes != null and leaveldeptcodes.size() > 0)"> OR </if> <if test=" leaveldeptcodes != null and leaveldeptcodes.size() > 0"> deptcode IN <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")"> #{leaveldeptcode} @@ -2637,17 +2641,21 @@ </if> </if> <if test="deptOrDistrict==2"> AND (1=1 AND ( <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> AND leavehospitaldistrictcode IN leavehospitaldistrictcode IN <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")"> #{leavehospitaldistrictcode} </foreach> </if> <if test="(leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0) and (leaveldeptcodes != null and leaveldeptcodes.size() > 0)"> OR </if> <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0"> OR deptcode IN deptcode IN <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")"> #{leaveldeptcode} @@ -2844,20 +2852,28 @@ <if test="campusid != null and campusid != ''"> and campusid = #{campusid} </if> <if test="(leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0) or (leaveldeptcodes != null and leaveldeptcodes.size() > 0)"> AND( <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> AND leavehospitaldistrictcode IN leavehospitaldistrictcode IN <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")"> #{leavehospitaldistrictcode} </foreach> </if> <if test="(leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0) and (leaveldeptcodes != null and leaveldeptcodes.size() > 0)"> OR </if> <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0"> AND deptcode IN deptcode IN <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")"> #{leaveldeptcode} </foreach> </if>) </if> </select>