ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagController.java
@@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.PageUtils; import com.smartor.domain.BaseTag; import com.smartor.service.IBaseTagService; @@ -49,8 +50,14 @@ @PostMapping("/list") public TableDataInfo list(@RequestBody BaseTag baseTag) { PageUtils.startPageByPost(baseTag.getPageNum(), baseTag.getPageSize()); List<BaseTag> list = null; if (baseTag.getTagcategoryid() == null || baseTag.getTagcategoryid() == 0) baseTag.setTagcategoryid(null); List<BaseTag> list = baseTagService.selectBaseTagList(baseTag); { LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); baseTag.setOrgid(user.getOrgid()); list = baseTagService.selectBaseTagList(baseTag); } return getDataTable(list); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -5,6 +5,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.PageUtils; @@ -53,6 +54,8 @@ @PostMapping("/selectPatMedInhospList") public TableDataInfo selectPatMedInhosplist(@RequestBody PatMedInhosp patMedInhosp) { PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize()); SysUser user = getLoginUser().getUser(); patMedInhosp.setOrgid(user.getOrgid()); List<PatMedInhosp> list = patMedInhospService.selectPatMedInhospList(patMedInhosp); long count = PageUtils.count(new ISelect() { @Override ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedPhysicalController.java
@@ -3,6 +3,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.core.domain.entity.SysUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -47,6 +48,8 @@ public TableDataInfo selectPatMedPhysicallist(@RequestBody PatMedPhysical patMedPhysical) { startPage(); SysUser user = getLoginUser().getUser(); patMedPhysical.setOrgid(user.getOrgid()); List<PatMedPhysical> list = patMedPhysicalService.selectPatMedPhysicalList(patMedPhysical); return getDataTable(list); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginBody; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.SysLoginService; import com.ruoyi.framework.web.service.SysPermissionService; import com.ruoyi.system.service.ISysMenuService; @@ -54,6 +55,25 @@ return ajax; } /** * 单点登录方法 * * @param loginBody 单点登录信息 * @return 结果 */ @PostMapping("/SSOLogin") public AjaxResult SSOLogin(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); // 生成令牌 if (StringUtils.isEmpty(loginBody.getUsername()) || StringUtils.isEmpty(loginBody.getOrgid()) || StringUtils.isEmpty(loginBody.getDeptId())) { return AjaxResult.error("用户名或组织机构或部门不能为空"); } String token = loginService.loginByUserName(loginBody.getUsername() + "&" + loginBody.getOrgid() + "&" + loginBody.getDeptId()); ajax.put(Constants.TOKEN, token); return ajax; } @GetMapping("/getToken") public void getToken(HttpServletResponse response) throws IOException { // 生成或获取token ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
@@ -1,6 +1,9 @@ package com.ruoyi.web.controller.system; import java.util.List; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -27,8 +30,7 @@ */ @RestController @RequestMapping("/system/notice") public class SysNoticeController extends BaseController { public class SysNoticeController extends BaseController { @Autowired private ISysNoticeService noticeService; @@ -37,9 +39,11 @@ */ //@PreAuthorize("@ss.hasPermi('system:notice:list')") @GetMapping("/list") public TableDataInfo list(SysNotice notice) { public TableDataInfo list(SysNotice notice) { startPage(); LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); notice.setOrgid(user.getOrgid()); List<SysNotice> list = noticeService.selectNoticeList(notice); return getDataTable(list); } @@ -49,8 +53,7 @@ */ //@PreAuthorize("@ss.hasPermi('system:notice:query')") @GetMapping(value = "/{noticeId}") public AjaxResult getInfo(@PathVariable Long noticeId) { public AjaxResult getInfo(@PathVariable Long noticeId) { return success(noticeService.selectNoticeById(noticeId)); } @@ -60,8 +63,7 @@ //@PreAuthorize("@ss.hasPermi('system:notice:add')") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@Validated @RequestBody SysNotice notice) { public AjaxResult add(@Validated @RequestBody SysNotice notice) { notice.setCreateBy(getUsername()); return toAjax(noticeService.insertNotice(notice)); } @@ -72,8 +74,7 @@ //@PreAuthorize("@ss.hasPermi('system:notice:edit')") @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PostMapping("/edit") public AjaxResult edit(@Validated @RequestBody SysNotice notice) { public AjaxResult edit(@Validated @RequestBody SysNotice notice) { notice.setUpdateBy(getUsername()); return toAjax(noticeService.updateNotice(notice)); } @@ -84,8 +85,7 @@ //@PreAuthorize("@ss.hasPermi('system:notice:remove')") @Log(title = "通知公告", businessType = BusinessType.DELETE) @GetMapping("/remove/{noticeIds}") public AjaxResult remove(@PathVariable Long[] noticeIds) { public AjaxResult remove(@PathVariable Long[] noticeIds) { return toAjax(noticeService.deleteNoticeByIds(noticeIds)); } } ruoyi-admin/src/main/resources/application-sltd.yml
@@ -7,9 +7,9 @@ # 主库数据源 master: # 省立同德 url: jdbc:mysql://192.88.117.238:3306/smartor_sltd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://192.88.117.237:3306/smartor_sltd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 password: Smartor.2023 driverClassName: com.mysql.cj.jdbc.Driver # # 高斯数据库配置 @@ -62,8 +62,8 @@ allow: url-pattern: /druid/* # 控制台管理用户名和密码 #login-username: lihu #login-password: Lihu@1363419#$ login-username: lihu login-password: Lihu@1363419#$ filter: stat: enabled: true ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -34,4 +34,9 @@ */ private String orgid; /** * 部门ID */ private String deptId; } ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -3,6 +3,7 @@ import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; @@ -92,6 +93,22 @@ return tokenService.createToken(loginUser); } public String loginByUserName(String userName) { SysUser sysUser = userService.selectUserByUserNameAndDeptId(userName); if (ObjectUtils.isNotEmpty(sysUser)) { // 构建登录用户对象 LoginUser loginUser = new LoginUser(); loginUser.setUser(sysUser); loginUser.setUserId(sysUser.getUserId()); // 创建 token String token = tokenService.createToken(loginUser); // 生成token return token; } return null; } /** * 校验验证码 * ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -50,7 +50,7 @@ * @param userName 用户名 * @return 用户对象信息 */ public SysUser selectUserByUserNameByCondition(@Param("userName") String userName, @Param("orgid") String orgid); public SysUser selectUserByUserNameByCondition(@Param("userName") String userName, @Param("orgid") String orgid, @Param("deptId") String deptId); /** * 通过用户ID查询用户 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -49,6 +49,8 @@ */ public SysUser selectUserByUserName2(String userName); public SysUser selectUserByUserNameAndDeptId(String userName); /** * 通过用户ID查询用户 * ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
@@ -1,6 +1,8 @@ package com.ruoyi.system.service.impl; import java.util.List; import com.ruoyi.common.core.domain.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.domain.SysNotice; @@ -9,7 +11,7 @@ /** * 公告 服务层实现 * * * @author ruoyi */ @Service @@ -20,7 +22,7 @@ /** * 查询公告信息 * * * @param noticeId 公告ID * @return 公告信息 */ @@ -32,7 +34,7 @@ /** * 查询公告列表 * * * @param notice 公告信息 * @return 公告集合 */ @@ -44,7 +46,7 @@ /** * 新增公告 * * * @param notice 公告信息 * @return 结果 */ @@ -56,7 +58,7 @@ /** * 修改公告 * * * @param notice 公告信息 * @return 结果 */ @@ -68,7 +70,7 @@ /** * 删除公告对象 * * * @param noticeId 公告ID * @return 结果 */ @@ -80,7 +82,7 @@ /** * 批量删除公告信息 * * * @param noticeIds 需要删除的公告ID * @return 结果 */ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -167,7 +167,7 @@ @Override public SysUser selectUserByUserName2(String userName) { String[] split = userName.split("&"); SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1]); SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1], null); if (Objects.isNull(sysUser)) return sysUser; List<SysDept> sysDepts = null; if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { @@ -269,6 +269,112 @@ return sysUser; } @Override public SysUser selectUserByUserNameAndDeptId(String userName) { String[] split = userName.split("&"); SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1], split[2]); if (Objects.isNull(sysUser)) return sysUser; List<SysDept> sysDepts = null; if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { SysDept dept = new SysDept(); dept.setOrgid(split[1]); sysDepts = sysDeptMapper.selectDeptList(dept); } else { sysDepts = sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId()); } List<Long> deptIds = new ArrayList<>(); for (SysDept sysDept : sysDepts) { deptIds.add(sysDept.getDeptId()); } SysUserDept sysUserDept = new SysUserDept(); sysUserDept.setUserId(sysUser.getUserId()); sysUserDept.setDeptType(sysUser.getSearchscope()); sysUserDept.setOrgid(split[1]); List<SysUserDept> sysUserDeptKSs = null; List<SysUserDept> sysUserDeptBQs = null; if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) { if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { sysUserDept.setUserId(null); } sysUserDept.setDeptType("1"); sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); sysUserDept.setDeptType("2"); sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); //如果是admin,需要对sysUserDeptBQs,sysUserDeptBQs去重 if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { //如果是admin,只能去sys_dept去取数据 SysDept dept = new SysDept(); dept.setOrgid(split[1]); dept.setDeptType("1"); sysDepts = sysDeptMapper.selectDeptList(dept); sysUserDeptKSs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class); dept.setDeptType("2"); sysDepts = sysDeptMapper.selectDeptList(dept); sysUserDeptBQs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class); List<SysUserDept> distinctUserDepts = new ArrayList<>(); Set<String> uniqueDeptCodes = new HashSet<>(); for (SysUserDept userDept : sysUserDeptKSs) { String deptCode = userDept.getDeptCode(); if (StringUtils.isNotEmpty(deptCode) && !uniqueDeptCodes.contains(deptCode)) { distinctUserDepts.add(userDept); uniqueDeptCodes.add(deptCode); } } List<SysUserDept> distinctUserBQs = new ArrayList<>(); Set<String> uniqueBQCodes = new HashSet<>(); for (SysUserDept userDept : sysUserDeptBQs) { String deptCode = userDept.getDeptCode(); if (StringUtils.isNotEmpty(deptCode) && !uniqueBQCodes.contains(deptCode)) { distinctUserBQs.add(userDept); uniqueBQCodes.add(deptCode); } } sysUserDeptKSs = distinctUserDepts; sysUserDeptBQs = distinctUserBQs; } } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) { sysUserDept.setDeptType("1"); sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) { sysUserDept.setDeptType("2"); sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); } sysUser.setDepts(deptIds); if (!CollectionUtils.isEmpty(sysUserDeptBQs)) { List<Map<String, Object>> list = new ArrayList<>(); for (SysUserDept sud : sysUserDeptBQs) { Map<String, Object> map = new HashMap<>(); map.put("districtCode", ""); if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("districtCode", sud.getDeptCode()); else continue; map.put("districtName", ""); if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("districtName", sud.getDeptName()); list.add(map); } sysUser.setBelongWards(list); } if (!CollectionUtils.isEmpty(sysUserDeptKSs)) { List<Map<String, Object>> list = new ArrayList<>(); for (SysUserDept sud : sysUserDeptKSs) { Map<String, Object> map = new HashMap<>(); map.put("deptCode", ""); if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode()); else continue; map.put("deptName", ""); if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName()); list.add(map); } sysUser.setBelongDepts(list); } return sysUser; } /** * 通过用户ID查询用户 * ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
@@ -52,6 +52,9 @@ <if test="createBy != null and createBy != ''"> AND create_by like concat('%', #{createBy}, '%') </if> <if test="orgid != null and orgid != ''"> AND orgid = #{orgid} </if> </where> </select> ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -235,6 +235,9 @@ <if test="orgid != null and orgid != ''"> AND u.orgid = #{orgid} </if> <if test="deptId != null and deptId != ''"> AND u.dept_id = #{deptId} </if> </where> </select> smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -210,7 +210,7 @@ JOIN pat_archive a ON a.id = b.patid LEFT JOIN pat_archivetag c ON c.patid = a.id AND (C.del_flag = 0 OR C.del_flag IS NULL) pat_archivetag c ON c.patid = a.id AND (c.del_flag = 0 OR c.del_flag IS NULL) <where> a.del_flag = 0 AND b.del_flag = 0 @@ -239,6 +239,7 @@ <if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if> <if test="inhospno != null ">and b.inhospno = #{inhospno}</if> <if test="fuflag != null ">and b.fuflag = #{fuflag}</if> <if test="orgid != null ">and b.orgid = #{orgid}</if> <if test="serialnum != null ">and b.serialnum = #{serialnum}</if> <if test="endtime != null ">and b.endtime = #{endtime}</if> <if test="patno != null ">and b.patno = #{patno}</if>