ソースを参照

feature: 数据同步
1.完善注释及代码格式化

luo.yibo@datuai.com 1 年間 前
コミット
d5e0703ac2

+ 9 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteUserBo.java

@@ -146,6 +146,15 @@ public class RemoteUserBo implements Serializable {
      */
     private Long cardType;
 
+        /**
+     * 创建者
+     */
+    private Long createdBy;
+    /**
+     * 更新者
+     */
+    private Long updatedBy;
+
     /**
      * 账户有效期
      */

+ 11 - 6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java

@@ -84,9 +84,11 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
         }
         return remoteDeptVo;
     }
+
     /**
      * 根据第三方对接的唯一标识符查询对应的部门信息
      * 这里查询的条件排除了 delFlag=0
+     *
      * @param otherId  第三方对接的唯一标识符
      * @param tenantId 租户Id
      * @return 部门信息
@@ -115,11 +117,11 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
         SysDeptBo deptBo = BeanUtil.copyProperties(remoteDeptBo, SysDeptBo.class);
         deptBo.setCreateBy(remoteDeptBo.getCreatedBy());
         SysDeptVo vo = sysDeptService.insertDeptBo(deptBo);
-        if(vo!=null){
+        if (vo != null) {
             RemoteDeptVo remoteDeptVo = BeanUtil.copyProperties(vo, RemoteDeptVo.class);
             return R.ok(remoteDeptVo);
         } else {
-           return R.fail(message);
+            return R.fail(message);
         }
     }
 
@@ -147,11 +149,12 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
     public R<Object> deleteDeptByOtherId(String otherId) {
         String message = MessageFormat.format("[删除部门失败]-[部门标识Id:{0}]", otherId);
         int count = sysDeptService.deleteDeptByOtherId(otherId);
-        return count>0? R.ok():R.fail(message);
+        return count > 0 ? R.ok() : R.fail(message);
     }
 
     /**
      * 根据父节点Id和名称查询部门
+     *
      * @param parentId 父节点
      * @param deptName 名称
      * @return 部门信息
@@ -159,20 +162,22 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
     @Override
     public RemoteDeptVo selectDeptByParentIdAndName(Long parentId, String deptName) {
         SysDeptVo deptVo = sysDeptService.selectDeptByParentIdAndName(parentId, deptName);
-        if(deptVo != null){
+        if (deptVo != null) {
             return MapstructUtils.convert(deptVo, RemoteDeptVo.class);
         }
         return null;
     }
+
     /**
      * 查询指定日期正在进行的班级
+     *
      * @param doingDate 指定日期
      * @return 班级清单
      */
     @Override
     public List<RemoteDeptVo> selectDoingClass(Date doingDate) {
         List<SysDeptVo> list = sysDeptService.selectDoingClass(doingDate);
-        if(CollectionUtil.isNotEmpty(list)) {
+        if (CollectionUtil.isNotEmpty(list)) {
             MapstructUtils.convert(list, RemoteDeptVo.class);
         }
         return null;
@@ -181,7 +186,7 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
     @Override
     public RemoteDeptVo selectDeptById(Long deptId) {
         SysDeptVo vo = sysDeptService.selectDeptById(deptId);
-        if(ObjectUtil.isNotEmpty(vo)){
+        if (ObjectUtil.isNotEmpty(vo)) {
             return MapstructUtils.convert(vo, RemoteDeptVo.class);
         }
         return null;

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@@ -337,6 +337,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         String message = "增加人员入库失败";
         try {
             SysUserBo bo = BeanUtil.copyProperties(remoteUserBo, SysUserBo.class);
+            bo.setCreateBy(remoteUserBo.getCreatedBy());
             List<UserDeptBo> userDeptBoList = new ArrayList<>();
             if(ObjectUtil.isNotEmpty(remoteUserBo.getUserDeptList())){
                 remoteUserBo.getUserDeptList().forEach(remoteUserDeptBo -> {
@@ -362,6 +363,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         String message = "[修改人员入库失败]";
         //try {
         SysUserBo bo = BeanUtil.copyProperties(remoteUserBo, SysUserBo.class);
+        bo.setUpdateBy(remoteUserBo.getUpdatedBy());
         setUserDept(bo, remoteUserBo);
         return userService.updateUser(bo) > 0 ? R.ok() : R.fail(message);
         //} catch (Exception e) {

+ 13 - 9
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/dept/strategy/impl/GraduateClassStrategyImpl.java

@@ -67,21 +67,21 @@ public class GraduateClassStrategyImpl implements ISyncDeptStrategy {
         try {
             String otherId = resourceDept.getDept_id();
             String delFlag = resourceDept.getDelFlag();
-            //研究生传过来的部门数据是带了删除标志的,所以查询时不能再带上delFlag=0的条件了
+            // 研究生传过来的部门数据是带了删除标志的,所以查询时不能再带上delFlag=0的条件了
             RemoteDeptVo remoteDeptVo = syncRemoteDeptService.selectAllDeptByOtherId(otherId, tenantId);
-            //将班级组装成入库的对模型
+            // 将班级组装成入库的对模型
             R<RemoteDeptBo> result = setRemoteDeptBo(resourceDept, remoteDeptVo);
             if (result.getCode() == R.SUCCESS) {
                 if (remoteDeptVo != null) {
                     // 已存在此班级,更新
-                    if("0".equals(delFlag)) {
+                    if ("0".equals(delFlag)) {
                         return syncRemoteDeptService.updateDept(result.getData());
                     } else {
                         return syncRemoteDeptService.deleteDeptByOtherId(otherId);
                     }
                 } else {
-                    if("0".equals(delFlag)) {
-                        //只增加正常的班级
+                    if ("0".equals(delFlag)) {
+                        // 只增加正常的班级
                         return syncRemoteDeptService.insertDept(result.getData());
                     } else {
                         return R.fail("已删除的班级不需要同步");
@@ -107,16 +107,18 @@ public class GraduateClassStrategyImpl implements ISyncDeptStrategy {
     private R<RemoteDeptBo> setRemoteDeptBo(ResourceDept resourceDept, RemoteDeptVo remoteDeptVo) {
         RemoteDeptVo yearDeptVo = doYearDept(resourceDept);
         if (yearDeptVo == null) {
-            //处理年份对应的班级失败,直接返回失败
+            // 处理年份对应的班级失败,直接返回失败
             return R.fail("创建年份对应部门失败");
         }
         RemoteDeptBo remoteDeptBo;
         if (ObjUtil.isEmpty(remoteDeptVo)) {
             remoteDeptBo = new RemoteDeptBo();
+            remoteDeptBo.setCreatedBy(resourceDept.getOperatorId());
         } else {
             remoteDeptBo = BeanUtil.copyProperties(remoteDeptVo, RemoteDeptBo.class);
+            remoteDeptBo.setUpdatedBy(resourceDept.getOperatorId());
         }
-        //研究生班级对应部门类型类型为06,以和培训班的转换部门区分
+        // 研究生班级对应部门类型类型为06,以和培训班的转换部门区分
         remoteDeptBo.setDeptType(DefaultConstants.GRADUATE_DEPT_TYPE);
         remoteDeptBo.setDeptName(resourceDept.getDept_name());
         remoteDeptBo.setOtherId(resourceDept.getDept_id());
@@ -134,20 +136,22 @@ public class GraduateClassStrategyImpl implements ISyncDeptStrategy {
 
     /**
      * 创建研究生的年份对应的部门
+     *
      * @param resourceDept 源班级数据
      * @return 部门信息
      */
     private RemoteDeptVo doYearDept(ResourceDept resourceDept) {
-        //检查年份对应的部门,年份的父节点固定为在校研究生->162
+        // 检查年份对应的部门,年份的父节点固定为在校研究生->162
         Long rootId = DefaultConstants.GRADUATE_PARENT_DEPT_ID;
         RemoteDeptVo yearDeptVo = syncRemoteDeptService.selectDeptByParentIdAndName(rootId, resourceDept.getYear().toString());
         if (yearDeptVo != null) {
             return yearDeptVo;
         }
-        //不存在对应的部门,需要增加
+        // 不存在对应的部门,需要增加
         RemoteDeptBo remoteDeptBo = new RemoteDeptBo();
         remoteDeptBo.setDeptName(resourceDept.getYear().toString());
         remoteDeptBo.setDeptType(DefaultConstants.YEAR_DEPT_TYPE);
+        remoteDeptBo.setCreatedBy(resourceDept.getOperatorId());
         remoteDeptBo.setParentId(rootId);
         if (StringUtils.isNotEmpty(resourceDept.getTenantId())) {
             remoteDeptBo.setTenantId(remoteDeptBo.getTenantId());

+ 11 - 8
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/dept/strategy/impl/HrDeptStrategyImpl.java

@@ -66,11 +66,11 @@ public class HrDeptStrategyImpl implements ISyncDeptStrategy {
             }
             String otherId = resourceDept.getDept_id();
             String parentId = resourceDept.getParent_id();
-            //获取同步的部门在一卡通系统中对应的部门
+            // 获取同步的部门在一卡通系统中对应的部门
             RemoteDeptVo remoteDeptVo = syncRemoteDeptService.selectDeptByOtherId(otherId, tenantId);
-            //获取同步的部门在一卡通系统中对应的父部门
+            // 获取同步的部门在一卡通系统中对应的父部门
             RemoteDeptVo remoteParentDeptVo = syncRemoteDeptService.selectDeptByOtherId(parentId, tenantId);
-            //组装写库的部门业务对象
+            // 组装写库的部门业务对象
             RemoteDeptBo remoteDeptBo = setRemoteDeptBo(resourceDept, remoteDeptVo, remoteParentDeptVo);
             if (remoteDeptVo != null) {
                 // 已存在此部门,更新
@@ -86,8 +86,9 @@ public class HrDeptStrategyImpl implements ISyncDeptStrategy {
 
     /**
      * 同步部门预处理
-     * @param resourceDept 源部门
-     * @param remoteDeptVo 一卡通系统对应部门
+     *
+     * @param resourceDept       源部门
+     * @param remoteDeptVo       一卡通系统对应部门
      * @param remoteParentDeptVo 一卡通系统对应父部门
      * @return 部门业务对象
      */
@@ -97,10 +98,12 @@ public class HrDeptStrategyImpl implements ISyncDeptStrategy {
         RemoteDeptBo remoteDeptBo;
         if (ObjUtil.isEmpty(remoteDeptVo)) {
             remoteDeptBo = new RemoteDeptBo();
-            //业中同步的部门默认类型为03-部门
+            // 业中同步的部门默认类型为03-部门
             remoteDeptBo.setDeptType(DefaultConstants.DEPT_DEPT_TYPE);
+            remoteDeptBo.setCreatedBy(remoteDeptBo.getCreatedBy());
         } else {
             remoteDeptBo = BeanUtil.copyProperties(remoteDeptVo, RemoteDeptBo.class);
+            remoteDeptBo.setUpdatedBy(remoteDeptBo.getUpdatedBy());
         }
         remoteDeptBo.setDeptName(resourceDept.getDept_name());
         remoteDeptBo.setOtherId(resourceDept.getDept_id());
@@ -110,8 +113,8 @@ public class HrDeptStrategyImpl implements ISyncDeptStrategy {
         if (remoteParentDeptVo != null) {
             remoteDeptBo.setParentId(remoteParentDeptVo.getDeptId());
         } else {
-            //如果同步的部门的父部门在系统中不存在,则父部门为学校
-            if(!remoteDeptBo.getDeptId().equals(DefaultConstants.PARENT_DEPT_ID)){
+            // 如果同步的部门的父部门在系统中不存在,则父部门为学校
+            if (!remoteDeptBo.getDeptId().equals(DefaultConstants.PARENT_DEPT_ID)) {
                 remoteDeptBo.setParentId(DefaultConstants.PARENT_DEPT_ID);
             }
         }

+ 3 - 2
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/dept/strategy/impl/TrainClassStrategyImpl.java

@@ -184,7 +184,8 @@ public class TrainClassStrategyImpl implements ISyncDeptStrategy {
     }
 
 
-    //region 培训班级转团客
+    // region 培训班级转团客
+
     /**
      * 处理单个班级,将班级转换成酒店系统的团客信息后入库
      *
@@ -234,5 +235,5 @@ public class TrainClassStrategyImpl implements ISyncDeptStrategy {
 
         return R.ok(remoteTeamBo);
     }
-    //endregion
+    // endregion
 }

+ 2 - 0
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/user/SyncRemoteUserService.java

@@ -134,8 +134,10 @@ public class SyncRemoteUserService {
             remoteUserBo.setUserName(userName);
             remoteUserBo.setUserNumb(userName);
             remoteUserBo.setRoleIds(getUserRole(person));
+            remoteUserBo.setCreatedBy(person.getOperatorId());
         } else {
             remoteUserBo = BeanUtil.copyProperties(remoteUserVo, RemoteUserBo.class);
+            remoteUserBo.setUpdatedBy(person.getOperatorId());
         }
 
         remoteUserBo.setRealName(person.getRealName());