Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2026-02-06 17:49:52 +08:00
5 changed files with 173 additions and 0 deletions
@@ -0,0 +1,23 @@
package org.jeecg.modules.system.bean.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ScopeUserQuery {
/**
* 所属机构
*/
@Schema(title = "所属机构")
private String orgCode;
/**
* 昵称
*/
@Schema(title = "昵称")
private String realName;
/**
* 工号
*/
@Schema(title = "工号")
private String workNo;
}
@@ -0,0 +1,70 @@
package org.jeecg.modules.system.bean.response;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ScopeUserVO {
/**
* 用户id
*/
@Schema(title = "用户id")
private String userId;
/**
* 所属单位code
*/
@Schema(title = "所属单位code")
private String orgCode;
/**
* 所属单位名称
*/
@Schema(title = "所属单位名称")
private String orgName;
/**
* 所属部门code
*/
@Schema(title = "所属部门code")
private String departCode;
/**
* 所属部门名称
*/
@Schema(title = "所属部门名称")
private String departName;
/**
* 姓名
*/
@Schema(title = "姓名")
private String realName;
/**
* 工号
*/
@Schema(title = "工号")
private String workNo;
/**
* 性别
*/
@Schema(title = "性别")
private Integer sex;
/**
* 年龄
*/
@Schema(title = "年龄")
private Integer age;
/**
* 身高
*/
@Schema(title = "身高")
private BigDecimal height;
/**
* 体重
*/
@Schema(title = "体重")
private BigDecimal weight;
/**
* BMI
*/
@Schema(title = "BMI")
private BigDecimal bmi;
}
@@ -35,9 +35,12 @@ import org.jeecg.common.system.vo.SysUserModel;
import org.jeecg.common.util.*;
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
import org.jeecg.modules.base.service.BaseCommonService;
import org.jeecg.modules.system.bean.request.ScopeUserQuery;
import org.jeecg.modules.system.bean.response.ScopeUserVO;
import org.jeecg.modules.system.bean.response.UserBmiGroupInfo;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.manager.UserCacheManager;
import org.jeecg.modules.system.message.model.po.SysMessageNotice;
import org.jeecg.modules.system.model.DepartIdModel;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.service.*;
@@ -2315,4 +2318,17 @@ public class SysUserController {
Result<List<UserBmiGroupInfo>> userInfoMap(@RequestBody List<String> idCards){
return Result.ok(sysUserService.userInfoMap(idCards));
}
/**
* 筛选用户
* @param query 条件
* @return 返回
*/
@GetMapping("scopeUserList")
Result<IPage<ScopeUserVO>> scopeUserList(ScopeUserQuery query,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize){
Page<ScopeUserVO> page = new Page<>(pageNo, pageSize);
return Result.ok(sysUserService.scopeUserList(query,page));
}
}
@@ -24,6 +24,8 @@ import org.jeecg.common.system.bean.response.GroupUser;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.system.vo.SysUserCacheInfo;
import org.jeecg.common.system.vo.SysUserModel;
import org.jeecg.modules.system.bean.request.ScopeUserQuery;
import org.jeecg.modules.system.bean.response.ScopeUserVO;
import org.jeecg.modules.system.bean.response.UserBmiGroupInfo;
import org.jeecg.modules.system.entity.EmpImportNewVO;
import org.jeecg.modules.system.entity.SysRoleIndex;
@@ -646,4 +648,6 @@ public interface ISysUserService extends IService<SysUser> {
List<UserBase> getUserInfoByTypeCode(String findCode);
List<UserBase> findUserByParam(String findCode);
IPage<ScopeUserVO> scopeUserList(ScopeUserQuery query,IPage<ScopeUserVO> page);
}
@@ -17,6 +17,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.query.MPJLambdaQueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@@ -66,6 +68,8 @@ import org.jeecg.modules.imports.service.ICommonImportsInfoService;
import org.jeecg.modules.manager.ISysCache;
import org.jeecg.modules.manager.SysCacheImpl;
import org.jeecg.modules.remote.mapper.UserDataRecordBmiMapper;
import org.jeecg.modules.system.bean.request.ScopeUserQuery;
import org.jeecg.modules.system.bean.response.ScopeUserVO;
import org.jeecg.modules.system.bean.response.UserBmiGroupInfo;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.manager.SysCloudManager;
@@ -3839,4 +3843,60 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
}
@Override
public IPage<ScopeUserVO> scopeUserList(ScopeUserQuery query, IPage<ScopeUserVO> page){
// 构建 MPJ 查询包装器
MPJLambdaWrapper<SysUser> queryWrapper = new MPJLambdaWrapper<SysUser>()
.selectAs(SysUser::getId, ScopeUserVO::getUserId)
.selectAs(SysUser::getOrgCode, ScopeUserVO::getOrgCode)
.selectAs(SysUser::getRealname, ScopeUserVO::getRealName)
.selectAs(SysUser::getWorkNo, ScopeUserVO::getWorkNo)
.selectAs(SysUser::getSex, ScopeUserVO::getSex)
// 左连接 health_user_employee_ex 表
.leftJoin(HealthUserEmployeeEx.class, HealthUserEmployeeEx::getId, SysUser::getId)
// 选择 HealthUserEmployeeEx 表的字段
.selectAs(HealthUserEmployeeEx::getHeight, ScopeUserVO::getHeight)
.selectAs(HealthUserEmployeeEx::getWeight, ScopeUserVO::getWeight)
.selectAs(HealthUserEmployeeEx::getBmi, ScopeUserVO::getBmi)
.selectAs(HealthUserEmployeeEx::getCurrentAge, ScopeUserVO::getAge);
// 添加查询条件
if (StrUtil.isNotBlank(query.getOrgCode())) {
queryWrapper.likeRight(SysUser::getOrgCode, query.getOrgCode());
}
if (StrUtil.isNotBlank(query.getRealName())) {
queryWrapper.like(SysUser::getRealname, query.getRealName());
}
if (StrUtil.isNotBlank(query.getWorkNo())) {
queryWrapper.like(SysUser::getWorkNo, query.getWorkNo());
}
// 添加默认条件:未删除、正常状态、员工
queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0)
.eq(SysUser::getStatus, CommonConstant.STATUS_1)
.eq(SysUser::getPersonType, CommonConstant.PERSON_TYPE_DOCTOR_1);
// 执行分页查询
IPage<ScopeUserVO> resultPage = userMapper.selectJoinPage(page, ScopeUserVO.class, queryWrapper);
// 填充部门名称
if (CollUtil.isNotEmpty(resultPage.getRecords())) {
resultPage.getRecords().forEach(vo -> {
if (StrUtil.isNotBlank(vo.getOrgCode())) {
SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(vo.getOrgCode()));
if (null != secondDepart) {
vo.setOrgCode(secondDepart.getOrgCode());
vo.setOrgName(secondDepart.getDepartName());
}
SysDepart thirdDepart = sysCache.getDepartByOrgCode(GlobalUtils.getThirdDepartOrgCode(vo.getOrgCode()));
if (null != thirdDepart) {
vo.setDepartCode(thirdDepart.getOrgCode());
vo.setDepartName(thirdDepart.getDepartName());
}
}
});
}
return resultPage;
}
}