diff --git a/ruoyi-ui/src/api/benyi/admissioncourse.js b/ruoyi-ui/src/api/benyi/admissioncourse.js
index 79fa113ef..472bd1c1c 100644
--- a/ruoyi-ui/src/api/benyi/admissioncourse.js
+++ b/ruoyi-ui/src/api/benyi/admissioncourse.js
@@ -9,6 +9,14 @@ export function listAdmissioncourse(query) {
});
}
+// 查询流程下拉树结构
+export function treeselect() {
+ return request({
+ url: '/benyi/admissioncourse/treeselect',
+ method: 'get'
+ })
+}
+
// 查询入学准备课程详细
export function getAdmissioncourse(id) {
return request({
diff --git a/ruoyi-ui/src/views/benyi/admissioncourse_study/index.vue b/ruoyi-ui/src/views/benyi/admissioncourse_study/index.vue
new file mode 100644
index 000000000..ab70496c3
--- /dev/null
+++ b/ruoyi-ui/src/views/benyi/admissioncourse_study/index.vue
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java b/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
index 350aeab99..c6c2376e0 100644
--- a/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
+++ b/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
@@ -73,6 +73,14 @@ public class TreeSelect implements Serializable
this.children = byMicrocourse.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
+ //下拉树构造器
+ public TreeSelect(ByAdmissioncourse byAdmissioncourse) {
+
+ this.id = byAdmissioncourse.getId();
+ this.label = byAdmissioncourse.getTitlename();
+ this.children = byAdmissioncourse.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
+ }
+
//下拉树构造器
public TreeSelect(ByFamilyedu byFamilyedu) {
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAdmissioncourseController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAdmissioncourseController.java
index 7c8cc7e0e..566f19caf 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAdmissioncourseController.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAdmissioncourseController.java
@@ -44,6 +44,16 @@ public class ByAdmissioncourseController extends BaseController {
return getDataTable(list);
}
+ /**
+ * 查询入学准备课程列表
+ */
+ @Log(title = "入学准备课程学习", businessType = BusinessType.QUERY)
+ @GetMapping("/treeselect")
+ public AjaxResult treeselect(ByAdmissioncourse byAdmissioncourse) {
+ List list = byAdmissioncourseService.selectByAdmissioncourseListTree(byAdmissioncourse);
+ return AjaxResult.success(byAdmissioncourseService.buildByAdmissioncourseTreeSelect(list));
+ }
+
/**
* 导出入学准备课程列表
*/
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAdmissioncourse.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAdmissioncourse.java
index 66b89b239..0a6f3ecaa 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAdmissioncourse.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAdmissioncourse.java
@@ -5,6 +5,9 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 入学准备课程对象 by_admissioncourse
*
@@ -43,6 +46,19 @@ public class ByAdmissioncourse extends BaseEntity {
@Excel(name = "序号")
private Long sort;
+ public List getChildren() {
+ return children;
+ }
+
+ public void setChildren(List children) {
+ this.children = children;
+ }
+
+ /**
+ * 树状子类
+ */
+ private List children = new ArrayList();
+
public void setId(Long id) {
this.id = id;
}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByAdmissioncourseMapper.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByAdmissioncourseMapper.java
index c2c5b6d9e..833bbd7d8 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByAdmissioncourseMapper.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByAdmissioncourseMapper.java
@@ -27,6 +27,14 @@ public interface ByAdmissioncourseMapper {
*/
public List selectByAdmissioncourseList(ByAdmissioncourse byAdmissioncourse);
+ /**
+ * 查询入学准备课程列表
+ *
+ * @param byAdmissioncourse 入学准备课程
+ * @return 入学准备课程程集合
+ */
+ public List selectByAdmissioncourseListTree(ByAdmissioncourse byAdmissioncourse);
+
/**
* 新增入学准备课程
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAdmissioncourseService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAdmissioncourseService.java
index e3fb00f79..ed5c8c840 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAdmissioncourseService.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAdmissioncourseService.java
@@ -2,7 +2,9 @@ package com.ruoyi.project.benyi.service;
import java.util.List;
+import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.benyi.domain.ByAdmissioncourse;
+import com.ruoyi.project.benyi.domain.ByMicrocourse;
/**
* 入学准备课程Service接口
@@ -27,6 +29,30 @@ public interface IByAdmissioncourseService {
*/
public List selectByAdmissioncourseList(ByAdmissioncourse byAdmissioncourse);
+ /**
+ * 查询入学准备课程列表
+ *
+ * @param byAdmissioncourse 入学准备课程
+ * @return 入学准备课程程集合
+ */
+ public List selectByAdmissioncourseListTree(ByAdmissioncourse byAdmissioncourse);
+
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param byAdmissioncourses 部门列表
+ * @return 树结构列表
+ */
+ public List buildByAdmissioncourseDetailTree(List byAdmissioncourses);
+
+ /**
+ * 构建前端所需要下拉树结构
+ *
+ * @param byAdmissioncourses 部门列表
+ * @return 下拉树结构列表
+ */
+ public List buildByAdmissioncourseTreeSelect(List byAdmissioncourses);
+
/**
* 新增入学准备课程
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAdmissioncourseServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAdmissioncourseServiceImpl.java
index 0598673c0..198530ea9 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAdmissioncourseServiceImpl.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAdmissioncourseServiceImpl.java
@@ -1,8 +1,14 @@
package com.ruoyi.project.benyi.service.impl;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.stream.Collectors;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.domain.TreeSelect;
+import com.ruoyi.project.benyi.domain.ByMicrocourse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.benyi.mapper.ByAdmissioncourseMapper;
@@ -42,6 +48,100 @@ public class ByAdmissioncourseServiceImpl implements IByAdmissioncourseService {
return byAdmissioncourseMapper.selectByAdmissioncourseList(byAdmissioncourse);
}
+ /**
+ * 查询入学准备课程列表
+ *
+ * @param byAdmissioncourse 入学准备课程
+ * @return 入学准备课程程集合
+ */
+ public List selectByAdmissioncourseListTree(ByAdmissioncourse byAdmissioncourse){
+ return byAdmissioncourseMapper.selectByAdmissioncourseListTree(byAdmissioncourse);
+ }
+
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param byAdmissioncourses 部门列表
+ * @return 树结构列表
+ */
+ @Override
+ public List buildByAdmissioncourseDetailTree(List byAdmissioncourses) {
+ //System.out.println("start---");
+ List returnList = new ArrayList();
+ List tempList = new ArrayList();
+ for (ByAdmissioncourse item : byAdmissioncourses) {
+ tempList.add(item.getId());
+ }
+ for (Iterator iterator = byAdmissioncourses.iterator(); iterator.hasNext(); ) {
+ ByAdmissioncourse item = (ByAdmissioncourse) iterator.next();
+ //System.out.println("test==="+!tempList.contains(item.getParentId()));
+ // 如果是顶级节点, 遍历该父节点的所有子节点
+ if (!tempList.contains(item.getParentId())) {
+ recursionFn(byAdmissioncourses, item);
+ returnList.add(item);
+ }
+ }
+ if (returnList.isEmpty()) {
+ returnList = byAdmissioncourses;
+ }
+ return returnList;
+ }
+
+ /**
+ * 构建前端所需要下拉树结构
+ *
+ * @param byAdmissioncourses 部门列表
+ * @return 下拉树结构列表
+ */
+ @Override
+ public List buildByAdmissioncourseTreeSelect(List byAdmissioncourses) {
+ List byAdmissioncourseTrees = buildByAdmissioncourseDetailTree(byAdmissioncourses);
+ return byAdmissioncourseTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
+ }
+
+ /**
+ * 递归列表
+ */
+ private void recursionFn(List list, ByAdmissioncourse t) {
+ // 得到子节点列表
+ List childList = getChildList(list, t);
+ t.setChildren(childList);
+ for (ByAdmissioncourse tChild : childList) {
+ if (hasChild(list, tChild)) {
+ // 判断是否有子节点
+ Iterator it = childList.iterator();
+ while (it.hasNext()) {
+ ByAdmissioncourse n = (ByAdmissioncourse) it.next();
+ recursionFn(list, n);
+ }
+ }
+ }
+ }
+
+ /**
+ * 得到子节点列表
+ */
+ private List getChildList(List list, ByAdmissioncourse t) {
+ List tlist = new ArrayList();
+ Iterator it = list.iterator();
+ while (it.hasNext()) {
+ ByAdmissioncourse n = (ByAdmissioncourse) it.next();
+ if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue()) {
+ //System.out.println("parentid="+n.getParentId().longValue()+"---"+t.getId().longValue());
+ tlist.add(n);
+ }
+ }
+ return tlist;
+ }
+
+ /**
+ * 判断是否有子节点
+ */
+ private boolean hasChild(List list, ByAdmissioncourse t) {
+ return getChildList(list, t).size() > 0 ? true : false;
+ }
+
+
/**
* 新增入学准备课程
*
diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByAdmissioncourseMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByAdmissioncourseMapper.xml
index e873753d9..37a6652df 100644
--- a/ruoyi/src/main/resources/mybatis/benyi/ByAdmissioncourseMapper.xml
+++ b/ruoyi/src/main/resources/mybatis/benyi/ByAdmissioncourseMapper.xml
@@ -27,6 +27,14 @@
+
+