Ver Fonte

dev3.1.1改动

caozixuan há 2 anos atrás
pai
commit
ffb8f10371

+ 3 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/excel/GradePaperStructDto.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.bean.dto.excel;
 
+import com.qmth.teachcloud.common.annotation.ExcelImportTempleteVaild;
 import com.qmth.teachcloud.common.annotation.ExcelNote;
 import com.qmth.teachcloud.common.annotation.ExcelProperty;
 import com.qmth.teachcloud.common.annotation.excelStyle.ExcelDataStyle;
@@ -13,7 +14,8 @@ import javax.validation.constraints.NotNull;
  * @Author: CaoZixuan
  * @Date: 2022-05-30
  */
-@ExcelHeaderStyle(fillColorRed = 0,fillColorGreen = 0,fillColorBlue = 0,fontColor = IndexedColors.WHITE1)
+@ExcelHeaderStyle
+@ExcelImportTempleteVaild(value = true)
 public class GradePaperStructDto {
     @ExcelNote(value = "课程代码")
     @ExcelProperty(name = "课程代码", width = 30, index = 1)

+ 0 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -260,14 +260,4 @@ public class PdfUtil {
             }
         }
     }
-
-    public static void main(String[] args) {
-        File file2 = new File("E:\\file\\《航空通信原理B》期末考试 A卷 答题卷.pdf");
-        try {
-            System.out.println(PdfUtil.getPdfFormat(file2));
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-
-    }
 }

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -114,6 +114,7 @@ public class SystemConstant {
     public static final String COMMA_OF_ENGLISH = ",";
     public static final String COMMA_OF_CHINESE = ",";
     public static final String PAUSE_SIGN = "、";
+    public static final String ORG_SPLIT = "/";
     public static final String PUSH_OPERATE_NOTICE = "操作成功,请去基础配置 -> 系统设置 -> 同步管理中查看结果";
     public static final String EXCEL_PROTECT_KEY = "Qmth87863577";
 

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/OrgTypeEnum.java

@@ -19,7 +19,9 @@ public enum OrgTypeEnum {
 
     TEACHING_ROOM("教研室"),
 
-    PRINTING_HOUSE("印刷厂");
+    PRINTING_HOUSE("印刷厂"),
+
+    TEMP("临时");
 
     private String title;
 

+ 18 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -3,10 +3,12 @@ package com.qmth.teachcloud.common.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.dto.OrgDto;
 import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -106,10 +108,25 @@ public interface SysOrgService extends IService<SysOrg> {
     Set<Long> findDeepOrgIdListByUserId(Long userId);
 
     /**
-     * 根据机构集合查询其下属机构id集合
+     * 根据机构集合查询其和其下属机构id集合
      *
      * @param orgIdList 机构id集合
      * @return 机构id集合
      */
     Set<Long> findDeepOrgIdListByOrgIdList(List<Long> orgIdList);
+
+    /**
+     * 根据机构信息集合创建或获取机构
+     * @param orgInfoList 机构信息集合(eg. 化学学院/核化学(院系)/放射化学  ||  化学学院/核化学(院系)/聚变化学)
+     * @param requestUser 请求的用户
+     * @return 根据机构信息创建或查询到的最后一级机构id
+     * (
+     * eg。
+     * k -> 化学学院 v -> 111111111111111
+     * k -> 化学学院/核化学(院系) v -> 111111111111112
+     * k -> 化学学院/核化学(院系)/放射化学 v -> 111111111111113
+     * k -> 化学学院/核化学(院系)/聚变化学 v -> 111111111111114
+     * )
+     */
+    Map<String,Long> createOrGetOrgByOrgInfo(List<String> orgInfoList, SysUser requestUser);
 }

+ 73 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -392,6 +392,59 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         return finishedIdSet;
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Map<String, Long> createOrGetOrgByOrgInfo(List<String> orgInfoList, SysUser requestUser) {
+        for (String orgInfo : orgInfoList) {
+
+        }
+        return null;
+    }
+
+    private Map<String, Long> createOrGetOrg(Map<String, Long> map, String orgInfo, SysUser requestUser) {
+        // 父机构id
+        Long schoolId = requestUser.getSchoolId();
+        Long parentId = requestUser.getSchoolId();
+
+        String[] arr = orgInfo.split(SystemConstant.ORG_SPLIT);
+        for (int i = 0; i < arr.length; i++) {
+            SysOrg targetOrg;
+            String orgDetailName = "";
+            String orgName = arr[i];
+
+            // 拼机构元素详细名称
+            for (int j = 0; j <= i; j++) {
+                orgDetailName = orgDetailName + arr[j] + SystemConstant.ORG_SPLIT;
+            }
+            if (orgDetailName.length() > 0) {
+                orgDetailName = orgDetailName.substring(0, orgDetailName.length() - SystemConstant.ORG_SPLIT.length());
+            }
+            if (!map.containsKey(orgDetailName)) {
+                // 在map中没有找到,就去数据库查找
+                targetOrg = this.getOne(new QueryWrapper<SysOrg>()
+                        .lambda()
+                        .eq(SysOrg::getSchoolId, schoolId)
+                        .eq(SysOrg::getName, orgName)
+                        .eq(SysOrg::getParentId, parentId));
+
+                // 如果在数据库中也没有找到这个机构元素,则新建当前机构元素并保存在数据库
+                if (Objects.isNull(targetOrg)) {
+                    targetOrg = this.saveOrgElement(parentId, orgName, requestUser);
+                }
+
+                // 不管是已有的还是新建的机构,都保存在map中方便后面查询 格式:(k -> 化学学院/核化学/聚变化学 v -> 11111111111)
+                map.put(orgDetailName, targetOrg.getId());
+                // 更新parentId为该机构元素的id,并作为数组下一个节点的父机构id
+                parentId = targetOrg.getId();
+            } else {
+                // 如果map中本身就有该机构元素,则直接获取该机构元素id作为 数组下一个节点的父机构id
+                parentId = map.get(orgDetailName);
+            }
+        }
+        return map;
+    }
+
+
     /**
      * 根据子机构id深度优先搜索其父机构们
      *
@@ -442,4 +495,24 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         }
         return finishedIdSet;
     }
+
+    /**
+     * 新增机构元素
+     *
+     * @param parentId    父机构id
+     * @param orgName     机构名称
+     * @param requestUser 请求用户
+     * @return 新增后的机构id
+     */
+    private SysOrg saveOrgElement(Long parentId, String orgName, SysUser requestUser) {
+        SysOrg sysOrg = new SysOrg();
+        sysOrg.setSchoolId(requestUser.getSchoolId());
+        sysOrg.insertInfo(requestUser.getId());
+        sysOrg.setParentId(parentId);
+        sysOrg.setName(orgName);
+        sysOrg.setEnable(true);
+        sysOrg.setType(OrgTypeEnum.TEMP);
+        this.save(sysOrg);
+        return sysOrg;
+    }
 }

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

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.bean.dto.LoginDto;
 import com.qmth.teachcloud.common.bean.dto.UserDto;
 import com.qmth.teachcloud.common.bean.dto.VerifyCodeCheckDto;
+import com.qmth.teachcloud.common.bean.dto.excel.BasicStudentImportDto;
 import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.teachcloud.common.bean.dto.excel.SysUserImportDto;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
@@ -35,6 +36,7 @@ import com.qmth.teachcloud.common.util.Base64Util;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -711,6 +713,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             if (sysUserImportDtoList.get(0) instanceof DescribeImportDto) {
                 continue;
             }
+            //  处理机构
+            if (sysUserImportDtoList.get(0) instanceof SysUserImportDto){
+                List<SysUserImportDto> datasource = sysUserImportDtoList.stream().map(e -> {
+                    SysUserImportDto sysUserImportDto = new SysUserImportDto();
+                    BeanUtils.copyProperties(e,sysUserImportDto);
+                    return sysUserImportDto;
+                }).collect(Collectors.toList());
+                // 机构信息
+                List<String> orgInfoList = datasource.stream().map(SysUserImportDto::getOrgName).distinct().collect(Collectors.toList());
+
+            }
+
+
+
+
             for (int y = 0; y < Objects.requireNonNull(sysUserImportDtoList).size(); y++) {
                 SysUserImportDto sysUserImportDto = (SysUserImportDto) sysUserImportDtoList.get(y);
                 String name = sysUserImportDto.getName();