Bladeren bron

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	bs-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java
xiahan 1 jaar geleden
bovenliggende
commit
648ef8c8d6

+ 1 - 0
.gitignore

@@ -7,6 +7,7 @@ applog
 rwadminserver
 rwcommonserverlog
 rwtenantserver
+business-log
 temp/
 .mvn
 mvnw.cmd

+ 37 - 13
bs-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java

@@ -2,9 +2,11 @@ package com.rongwei.safecommon.config;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.rongwei.commonservice.service.RedisService;
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
 import com.rongwei.rwadmincommon.system.vo.SysOrganizationVo;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.safecommon.utils.SaveConstans;
 import org.apache.ibatis.reflection.MetaObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -14,6 +16,7 @@ import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -60,25 +63,46 @@ public class BsMetaObjectHandler implements MetaObjectHandler {
 
             logger.info("start insert fill ....");
             Object tenantid = this.getFieldValByName("tenantid", metaObject);
-            logger.debug("开始获取最上层部门信息,当前操作用户为: {}", sysUser);
             if(null == tenantid && sysUser != null){
-                // 获取最上层部门
+                // 所有组织机构
+                List<SysOrganizationDo> orgdos = (List<SysOrganizationDo>)redisService.getRedisCatchObj("allOrgs");
+                // 获取所属工厂
                 List<SysOrganizationVo> organizationDoList = sysUser.getOrganizationDoList();
                 if(organizationDoList != null && organizationDoList.size()>0){
-                    SysOrganizationVo org = organizationDoList.get(0);
-                    String fullpid = org.getFullpid();
-                    String tid = null;
-                    if(StringUtils.isNotBlank(fullpid)){
-                        String[] fullpids = fullpid.split(",");
-                        for (String pid : fullpids) {
-                            if(StringUtils.isNotBlank(pid)){
-                                tid = pid;
-                                break;
+                    String tids = null;
+                    for (SysOrganizationVo org : organizationDoList) {
+                        // 当前部门即工厂级部门
+                        if(SaveConstans.ORGTYPE_FACTORY.equals(org.getOrgtype())){
+                            if(tids == null){
+                                tids = org.getId();
+                            }else{
+                                tids = tids + "," + org.getId();
+                            }
+                        }
+                        // 当前部门所有上级部门查找是否有工厂级部门
+                        else{
+                            String fullpid = org.getFullpid();
+                            if(StringUtils.isNotBlank(fullpid)){
+                                List<String> fullpids = Arrays.asList(fullpid.split(","));
+                                for (String pid : fullpids) {
+                                    for (SysOrganizationDo orgdo : orgdos) {
+                                        if(StringUtils.isNotBlank(pid) && pid.equals(orgdo.getId())){
+                                            if(SaveConstans.ORGTYPE_FACTORY.equals(orgdo.getOrgtype())){
+                                                if(tids == null){
+                                                    tids = orgdo.getId();
+                                                }else{
+                                                    tids = tids + "," + orgdo.getId();
+                                                }
+                                            }
+                                            break;
+                                        }
+                                    }
+                                }
                             }
                         }
                     }
-                    logger.debug("获取到的厂区", tid);
-                    this.setFieldValByName("tenantid", tid, metaObject);
+
+                    this.setFieldValByName("tenantid", tids, metaObject);
                 }
             }
 

+ 16 - 0
bs-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java

@@ -0,0 +1,16 @@
+package com.rongwei.safecommon.utils;
+
+public class SaveConstans {
+
+    // 部门类型:集团
+    public final static String ORGTYPE_GROUP = "group";
+    // 部门类型:分公司
+    public final static String ORGTYPE_BRANCHOFFICE = "Branch-Office";
+    // 部门类型:工厂
+    public final static String ORGTYPE_FACTORY = "factory";
+    // 部门类型:车间
+    public final static String ORGTYPE_CHEJIAN = "chejian";
+    // 部门类型:工段
+    public final static String ORGTYPE_GONGDUAN = "gongduan";
+
+}

+ 20 - 4
cx_question/business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/OrgUserSyncServiceImpl.java

@@ -9,6 +9,7 @@ import com.rongwei.bscommon.sys.service.OrgUserSyncService;
 import com.rongwei.bscommon.sys.service.SlaveSourceService;
 import com.rongwei.bsentity.vo.VDeptVo;
 import com.rongwei.bsentity.vo.VPsndocVo;
+import com.rongwei.commonservice.service.RedisService;
 import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
 import com.rongwei.rwadmincommon.system.domain.SysUserDo;
 import com.rongwei.rwadmincommon.system.domain.SysUserOrgDo;
@@ -17,11 +18,13 @@ import com.rongwei.rwadmincommon.system.service.SysUserOrgService;
 import com.rongwei.rwadmincommon.system.service.SysUserService;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.safecommon.utils.SaveConstans;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -38,6 +41,8 @@ public class OrgUserSyncServiceImpl implements OrgUserSyncService {
     private SysUserOrgService sysUserOrgService;
     @Autowired
     private CxCommonDao commonDao;
+    @Autowired
+    private RedisService redisService;
 
     /**
      * 组织机构同步
@@ -72,14 +77,18 @@ public class OrgUserSyncServiceImpl implements OrgUserSyncService {
         System.out.println(JSONUtil.toJsonStr(notRootOrgs));
         // 保存数据
         saveOrgs(orgs);
+
+        // 查询所有数据,并缓存到Redis中
+        List<SysOrganizationDo> orgdos = sysOrganizationService.list();
+        redisService.redisCatchInit("allOrgs",orgdos,0);
     }
 
     @Transactional(rollbackFor = Exception.class)
     public void saveOrgs(List<SysOrganizationDo> orgs){
         // 组织机构保存,先清理老数据,再保存
-        commonDao.deleteAllOrg();
+//        commonDao.deleteAllOrg();
         // 保存最新数据
-        sysOrganizationService.saveBatch(orgs);
+        sysOrganizationService.saveOrUpdateBatch(orgs);
     }
 
     /**
@@ -142,6 +151,13 @@ public class OrgUserSyncServiceImpl implements OrgUserSyncService {
         }
         sysOrganizationDo.setCreatedate(DateUtil.parse(rootOrg.getCreationtime()+".154", DatePattern.NORM_DATETIME_MS_PATTERN));
         sysOrganizationDo.setModifydate(DateUtil.parseDate(rootOrg.getTs()));
+        // 设置部门类型
+        String[] facs = {"1027","1028","1003"};
+        List<String> faclist = Arrays.asList(facs);
+        // 工厂类型
+        if(sysOrganizationDo.getCode() != null && faclist.contains(sysOrganizationDo.getCode())){
+            sysOrganizationDo.setOrgtype(SaveConstans.ORGTYPE_FACTORY);
+        }
     }
 
     /**
@@ -205,8 +221,8 @@ public class OrgUserSyncServiceImpl implements OrgUserSyncService {
         // 用户表和用户部门表数据保存
         if(userDos != null && userDos.size()>0){
             // 先清除用户表
-            commonDao.deleteAllUser();
-            sysUserService.saveBatch(userDos);
+//            commonDao.deleteAllUser();
+            sysUserService.saveOrUpdateBatch(userDos);
             if(userOrgDos != null && userOrgDos.size()>0){
                 // 先清除用户部门表
                 commonDao.deleteAllUserDept();

+ 7 - 15
cx_question/business-server/src/main/java/com/rongwei/controller/QuestionController.java

@@ -26,11 +26,7 @@ public class QuestionController {
     @Autowired
     private SrmIssuesListService srmIssuesListService;
     @Autowired
-    private SlaveSourceService slaveSourceService;
-    @Autowired
     private OrgUserSyncService orgUserSyncService;
-    @Autowired
-    private QuShiftService quShiftService;
 
     /**
      * 故障树图片保存
@@ -53,25 +49,21 @@ public class QuestionController {
     }
 
     /**
-     * 测试
+     * 组织机构同步
      * @return
      */
-    @PostMapping("/testOne")
-    public R testOne(@RequestBody Map<String,Object> map) throws IOException {
-//        orgUserSyncService.orgSync();
-
-        QuShiftDo quShiftDo = new QuShiftDo();
-        quShiftDo.setId("11111");
-        quShiftService.save(quShiftDo);
+    @PostMapping("/orgSync")
+    public R orgSync(@RequestBody Map<String,Object> map) throws IOException {
+        orgUserSyncService.orgSync();
         return R.ok();
     }
 
     /**
-     * 测试
+     * 人员同步
      * @return
      */
-    @PostMapping("/testTwo")
-    public R testTwo(@RequestBody Map<String,Object> map) throws IOException {
+    @PostMapping("/userSync")
+    public R userSync(@RequestBody Map<String,Object> map) throws IOException {
         orgUserSyncService.userSync();
         return R.ok();
     }