Browse Source

同步部门和用户

hnzxyjhyy
zhangye 2 weeks ago
parent
commit
4fde21a5d0
  1. 2
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java
  2. 8
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/DockService.java
  3. 34
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java
  4. 5
      ruisi_java/ruisi-system/src/main/resources/mapper/system/SysDeptMapper.xml
  5. 5
      ruisi_java/ruisi-system/src/main/resources/mapper/system/SysUserMapper.xml
  6. 39
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalData.java

2
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java

@ -106,7 +106,7 @@ public class SysLoginService {
*/
public String login(String username, String password, String code, String uuid) {
// 验证码校验
validateCaptcha(username, code, uuid);
// validateCaptcha(username, code, uuid);
// 登录前置校验
loginPreCheck(username, password,null);
// 用户验证

8
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/DockService.java

@ -1,8 +1,11 @@
package com.ccsens.system.service;
import com.ccsens.common.core.domain.entity.SysDept;
import com.ccsens.common.core.domain.entity.SysUser;
import com.ccsens.system.domain.dto.DockDto;
import java.util.Date;
import java.util.List;
/**
* @Author zzc
@ -25,5 +28,8 @@ public interface DockService {
void syncHospitalData();
void syncDeptAndUserData();
List<SysDept> syncUmsDeptSlave();
void syncUmsDeptMaster(List<SysDept> sysDepts);
List<SysUser> syncUmsUserSlave();
void syncUmsUserMaster(List<SysUser> sysUsers);
}

34
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java

@ -2,6 +2,7 @@ package com.ccsens.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
@ -12,6 +13,7 @@ import com.ccsens.common.core.domain.entity.SysDept;
import com.ccsens.common.core.domain.entity.SysUser;
import com.ccsens.common.enums.DataSourceType;
import com.ccsens.common.exception.base.BaseException;
import com.ccsens.common.utils.DateUtils;
import com.ccsens.common.utils.SecurityUtils;
import com.ccsens.system.domain.dto.DockDto;
import com.ccsens.system.domain.po.*;
@ -297,24 +299,6 @@ public class DockServiceImpl implements DockService {
}
}
@Override
public void syncDeptAndUserData() {
//部门信息
try {
List<SysDept> sysDepts = syncUmsDeptSlave();
syncUmsDeptMaster(sysDepts);
}catch (Exception e){
log.error("部门信息同步失败",e);
}
//用户信息
try {
List<SysUser> sysUsers = syncUmsUserSlave();
syncUmsUserMaster(sysUsers);
}catch (Exception e){
log.error("用户信息同步失败",e);
}
}
@DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
@ -332,8 +316,8 @@ public class DockServiceImpl implements DockService {
}
}
@DataSource(value = DataSourceType.SLAVE)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
// @DataSource(value = DataSourceType.SLAVE)
// @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public List<SysUser> syncUmsUserSlave() {
List<SysUser> returnUsers = new ArrayList<>();
DockEmplExample dockEmplExample = new DockEmplExample();
@ -361,15 +345,19 @@ public class DockServiceImpl implements DockService {
sysUser.setNickName(dockEmpl.getEmplName());
sysUser.setEmplCode(dockEmpl.getEmplCode());
sysUser.setPassword(SecurityUtils.encryptPassword("hnzxyjhyy"));
//获取一年后的日期
sysUser.setValidDate(DateUtil.offset(new Date(), DateField.YEAR, 1));
sysUserMapper.insertUser(sysUser);
returnUsers.add(sysUser);
dockEmpl.setSync("1");
dockEmplMapper.updateByPrimaryKeySelective(dockEmpl);
}
}
return returnUsers;
}
@DataSource(value = DataSourceType.SLAVE)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
// @DataSource(value = DataSourceType.SLAVE)
// @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public List<SysDept> syncUmsDeptSlave() {
List<SysDept> returnDepts = new ArrayList<>();
//查找同步表中的部门信息
@ -400,6 +388,8 @@ public class DockServiceImpl implements DockService {
sysDeptMapper.updateDept(sysDept);
returnDepts.add(sysDept);
}
dockDept.setSync("1");
dockDeptMapper.updateByPrimaryKeySelective(dockDept);
}
return returnDepts;
}

5
ruisi_java/ruisi-system/src/main/resources/mapper/system/SysDeptMapper.xml

@ -90,11 +90,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
</select>
<insert id="insertDept" parameterType="SysDept">
<insert id="insertDept" parameterType="SysDept" useGeneratedKeys="true" keyProperty="deptId">
insert into ums_dept(
<if test="deptId != null and deptId != 0">dept_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>
<if test="deptName != null and deptName != ''">dept_name,</if>
<if test="deptCode != null and deptCode != ''">dept_code,</if>
<if test="ancestors != null and ancestors != ''">ancestors,</if>
<if test="orderNum != null">order_num,</if>
<if test="leader != null and leader != ''">leader,</if>
@ -107,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId != null and deptId != 0">#{deptId},</if>
<if test="parentId != null and parentId != 0">#{parentId},</if>
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="deptCode != null and deptCode != ''">#{deptCode},</if>
<if test="ancestors != null and ancestors != ''">#{ancestors},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="leader != null and leader != ''">#{leader},</if>
@ -123,6 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<set>
<if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
<if test="deptCode != null and deptCode != ''">dept_code = #{deptCode},</if>
<if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="leader != null">leader = #{leader},</if>

5
ruisi_java/ruisi-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -104,6 +104,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%')
</if>
<if test="emplCode != null and emplCode != ''">
AND u.empl_code = #{emplCode}
</if>
<if test="status != null and status != ''">
AND u.status = #{status}
</if>
@ -234,6 +237,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="postId != null and postId != 0">post_id,</if>
<if test="titleId != null and titleId != 0">title_id,</if>
<if test="userName != null and userName != ''">user_name,</if>
<if test="emplCode != null and emplCode != ''">empl_code,</if>
<if test="nickName != null and nickName != ''">nick_name,</if>
<if test="email != null and email != ''">email,</if>
<if test="avatar != null and avatar != ''">avatar,</if>
@ -252,6 +256,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="postId != null and postId != ''">#{postId},</if>
<if test="titleId != null and titleId != ''">#{titleId},</if>
<if test="userName != null and userName != ''">#{userName},</if>
<if test="emplCode != null and emplCode != ''">#{emplCode},</if>
<if test="nickName != null and nickName != ''">#{nickName},</if>
<if test="email != null and email != ''">#{email},</if>
<if test="avatar != null and avatar != ''">#{avatar},</if>

39
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalData.java

@ -1,17 +1,22 @@
package com.ccsens.client.controller.scheduled;
import com.ccsens.common.annotation.DataSource;
import com.ccsens.common.core.domain.entity.SysDept;
import com.ccsens.common.core.domain.entity.SysUser;
import com.ccsens.common.enums.DataSourceType;
import com.ccsens.system.service.DockService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* @author zy
* @date 2026/2/28 16:30
*/
@Slf4j
@Component
public class SyncHospitalData {
@ -24,9 +29,37 @@ public class SyncHospitalData {
dockService.syncHospitalData();
}
@Scheduled(cron = "0 */3 * * * ?")
public void syncDeptAndUserData() {
dockService.syncDeptAndUserData();
@DataSource(value = DataSourceType.SLAVE)
@Scheduled(cron = "*/30 * * * * ?")
public void syncDeptData() {
try {
List<SysDept> sysDepts = dockService.syncUmsDeptSlave();
syncDeptMaster(sysDepts);
}catch (Exception e){
log.error("部门信息同步失败",e);
}
}
@DataSource(value = DataSourceType.MASTER)
public void syncDeptMaster(List<SysDept> sysDepts) {
dockService.syncUmsDeptMaster(sysDepts);
}
@DataSource(value = DataSourceType.SLAVE)
@Scheduled(cron = "*/30 * * * * ?")
public void syncUserData() {
try {
List<SysUser> sysUsers = dockService.syncUmsUserSlave();
syncUserMaster(sysUsers);
}catch (Exception e){
log.error("用户信息同步失败",e);
}
}
@DataSource(value = DataSourceType.MASTER)
public void syncUserMaster(List<SysUser> sysUser) {
dockService.syncUmsUserMaster(sysUser);
}
}

Loading…
Cancel
Save