Эх сурвалжийг харах

机构用户中心同步操作更新
各种模板批量导入加入说明更新

caozixuan 3 жил өмнө
parent
commit
11347d54c8

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/excel/BasicStudentImportDto.java

@@ -30,6 +30,9 @@ public class BasicStudentImportDto {
     @NotNull
     private String clazz;
 
+    @ExcelNote(value = "说明(仅提示用)")
+    private String desc;
+
     public String getStudentName() {
         return studentName;
     }
@@ -69,4 +72,12 @@ public class BasicStudentImportDto {
     public void setClazz(String clazz) {
         this.clazz = clazz;
     }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
 }

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/excel/BasicCourseImportDto.java

@@ -26,6 +26,9 @@ public class BasicCourseImportDto {
     @NotNull
     private String clazz;
 
+    @ExcelNote(value = "说明(仅提示用)")
+    private String desc;
+
     public String getCourseName() {
         return courseName;
     }
@@ -57,4 +60,12 @@ public class BasicCourseImportDto {
     public void setClazz(String clazz) {
         this.clazz = clazz;
     }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
 }

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/excel/SysUserImportDto.java

@@ -31,6 +31,9 @@ public class SysUserImportDto {
     @NotNull
     private String roleName;
 
+    @ExcelNote(value = "说明(仅提示用)")
+    private String desc;
+
     public String getName() {
         return name;
     }
@@ -70,4 +73,12 @@ public class SysUserImportDto {
     public void setRoleName(String roleName) {
         this.roleName = roleName;
     }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
 }

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -183,7 +183,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                 String teachingRoomName = basicCourseImportDto.getTeachingRoomName();
                 String clazz = basicCourseImportDto.getClazz();
 
-                SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getEnable, true).eq(SysOrg::getType, OrgTypeEnum.TEACHING_ROOM));
+                SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getEnable, true).eq(SysOrg::getType, OrgTypeEnum.TEACHING_ROOM).eq(SysOrg::getName,teachingRoomName));
                 if (Objects.isNull(sysOrg)) {
                     throw ExceptionResultEnum.ERROR.exception("输入的教研室【" + teachingRoomName + "】不存在");
                 }

+ 54 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/OrgCenterDataDisposeServiceImpl.java

@@ -1,21 +1,25 @@
 package com.qmth.teachcloud.common.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.OrgCenterTypeEnum;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.service.BasicSchoolService;
 import com.qmth.teachcloud.common.service.CallApiOrgCenterService;
 import com.qmth.teachcloud.common.service.OrgCenterDataDisposeService;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -29,6 +33,8 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
     private CallApiOrgCenterService callApiOrgCenterService;
     @Resource
     private BasicSchoolService basicSchoolService;
+    @Resource
+    private SysOrgService sysOrgService;
 
     @Transactional(rollbackFor = Exception.class)
     @Override
@@ -39,8 +45,16 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
         }
         // 禁用原有学校
         List<BasicSchool> basicSchoolList = basicSchoolService.list();
-        basicSchoolService.update(new UpdateWrapper<BasicSchool>().lambda().set(BasicSchool::getEnable, false).gt(BasicSchool::getId,0));
+        basicSchoolService.update(new UpdateWrapper<BasicSchool>().lambda().set(BasicSchool::getEnable, false).gt(BasicSchool::getId, 0));
+
+        // 禁用原有顶级机构(学校)
+        List<SysOrg> sysOrgList = sysOrgService.list();
+        sysOrgService.update(new UpdateWrapper<SysOrg>().lambda().set(SysOrg::getEnable, false).eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
 
+        // 要更改的学校数据
+        List<BasicSchool> updateSchoolList = new ArrayList<>();
+        // 要更改的机构数据
+        List<SysOrg> updateSysOrgList = new ArrayList<>();
 
         for (Map map : result) {
             String code = String.valueOf(map.get("code"));
@@ -53,19 +67,20 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
             String typeName = String.valueOf(typeMap.get("name"));
 
             List<BasicSchool> oldSchoolList = basicSchoolList.stream().filter(e -> e.getCode().equals(code)).collect(Collectors.toList());
-            if (oldSchoolList.size() > 1){
+            if (oldSchoolList.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("学校信息异常");
             }
             Long schoolId;
-            if (oldSchoolList.size() > 0){
+            if (oldSchoolList.size() > 0) {
                 // 系统中原先就有该学校 -》 更新
                 BasicSchool oldSchool = oldSchoolList.get(0);
                 schoolId = oldSchool.getId();
-            }else {
+            } else {
                 // 系统中没有该学校 -》 新增 (系统中如果id被占用会报错)
                 schoolId = SystemConstant.getDbUuid();
             }
 
+            // 基础学校数据处理
             BasicSchool school = new BasicSchool();
             school.setId(schoolId);
             school.setCode(code);
@@ -74,7 +89,38 @@ public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeServ
             school.setAccessKey(accessKey);
             school.setAccessSecret(accessSecret);
             school.setLogo(logo);
-            basicSchoolService.saveOrUpdate(school);
+            updateSchoolList.add(school);
+
+            // 学校机构处理
+            List<SysOrg> schoolOrgList = sysOrgList.stream().filter(e -> schoolId.equals(e.getSchoolId()) && OrgTypeEnum.SCHOOL.equals(e.getType())).collect(Collectors.toList());
+            SysOrg sysOrg = new SysOrg();
+            if (schoolOrgList.size() == 0) {
+                // 机构表没有该学校作为的顶级机构 -》 新增机构并把该学校所属的学院级机构挂在该学校下
+                Long id = SystemConstant.getDbUuid();
+                sysOrg.setId(id);
+                sysOrg.setSchoolId(schoolId);
+                sysOrg.setType(OrgTypeEnum.SCHOOL);
+                sysOrg.setName(name);
+                sysOrg.setEnable(true);
+
+                // 处理该学校下的学院级机构的指向关系
+                List<SysOrg> collegeOrgList = sysOrgList.stream()
+                        .filter(e -> schoolId.equals(e.getSchoolId()) &&
+                                (OrgTypeEnum.COLLEGE.equals(e.getType()) || OrgTypeEnum.PRINTING_HOUSE.equals(e.getType()) || !SystemConstant.longNotNull(e.getParentId())))
+                        .peek(e -> e.setParentId(id))
+                        .collect(Collectors.toList());
+                updateSysOrgList.addAll(collegeOrgList);
+            } else if (schoolOrgList.size() == 1) {
+                // 机构表有该学校作为的顶级机构 -》 启用
+                sysOrg = schoolOrgList.get(0);
+                sysOrg.setEnable(true);
+                sysOrg.setName(name);
+            } else {
+                throw ExceptionResultEnum.ERROR.exception("机构数据异常 - 存在多条数据");
+            }
+            updateSysOrgList.add(sysOrg);
         }
+        basicSchoolService.saveOrUpdateBatch(updateSchoolList);
+        sysOrgService.saveOrUpdateBatch(updateSysOrgList);
     }
 }

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -507,7 +507,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 Long orgId = this.analyzeOrgName(schoolId, orgName);
                 List<Long> roleIdList = this.analyzeRoleName(schoolId, roleName);
 
-                SysUser oldUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName, name).eq(SysUser::getSchoolId, schoolId));
+                SysUser oldUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getCode, code).eq(SysUser::getSchoolId, schoolId));
                 Long oldUserId = null;
                 if (Objects.nonNull(oldUser)) {
                     oldUserId = oldUser.getId();

+ 19 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/ConvertUtil.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.common.util;
 
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
 import org.apache.poi.ss.usermodel.Cell;
@@ -277,4 +278,22 @@ public class ConvertUtil {
             }
         }
     }
+
+    /**
+     * 判断里面参数只要有一个为空 就是true 全部不为空时 false
+     * @param strArr 字符串组
+     * @return 全部有值 - false;任意一个为空 - true
+     */
+    public static boolean strAnyEmpty(String... strArr){
+        if (strArr.length == 0){
+            return true;
+        }else {
+            for (String str : strArr) {
+                if (!SystemConstant.strNotNull(str)){
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
 }