-- 功能:课程体系树
-- 参数: 租户ID,权限类型 (T代表租户,G 代表管理员)
-- 作者: xxxxx
CREATE PROCEDURE `PRO_COURSE_STRUCTURE` (IN vTenantId VARCHAR(36), IN vPROTYPE CHAR(1))
BEGIN
-- 数量
DECLARE i int;
-- 统计多少条记录
DECLARE vCount INT;
-- 岗位Id
DECLARE vPositionId VARCHAR(36);
-- 技能Id
DECLARE vSkillId VARCHAR(36);
-- 中间转换值
DECLARE MedianId VARCHAR(36);
-- 创建临时表
CREATE TEMPORARY TABLE tmp_CourseStructure
(
ID VARCHAR(36) NOT NULL, NAME VARCHAR(50) NOT NULL,
PARENTID VARCHAR(36)
);
-- 获取岗位信息树
BEGIN
SET vCount=(SELECT COUNT(1) FROM oep.position);
-- 创建岗位临时表
CREATE TEMPORARY TABLE IF NOT EXISTS TmpPosition ENGINE = MEMORY
SELECT p.PositionId,p.PositionName,
p.PositionParentId,p.TenantId
,@curRow := @curRow + 1 AS row_number
FROM oep.position p
JOIN (SELECT @curRow := 0) r;
-- 循环获取岗位
SET i=1;
loop1: WHILE i<=vCount DO
-- 获取某条记录信息
SET vPositionId= (SELECT PositionId FROM TmpPosition WHERE row_number =i);
-- 当岗位ID不为NULL
IF vPositionId IS NOT NULL
THEN
SET MedianId= vPositionId;
SET vPositionId= (SELECT GetPositionInfo(vPositionId));
-- 当为最末级时
IF vPositionId IS NOT NULL AND vPositionId = '00000000-0000-0000-0000-000000000000'
THEN
INSERT INTO tmp_CourseStructure (ID,NAME,PARENTID)
SELECT PositionId AS ID, PositionName AS NAME,PositionParentId AS PARENTID FROM TmpPosition
WHERE PositionId =vPositionId;
ELSE
INSERT INTO tmp_CourseStructure (ID,NAME,PARENTID)
SELECT PositionId AS ID, PositionName AS NAME,PositionParentId AS PARENTID FROM TmpPosition
WHERE PositionId =MedianId;
END IF;
END IF;
SET i=i+1;
END WHILE loop1;
-- 删除临时岗位表
DROP TEMPORARY TABLE IF EXISTS TmpPosition;
END;
-- 获取技能信息树
BEGIN
SET vCount=(SELECT COUNT(1) FROM oep.position);
-- 创建技能临时表
CREATE TEMPORARY TABLE IF NOT EXISTS Tmpskill ENGINE = MEMORY
SELECT l.TenantId,l.SkillId,l.ParentId,l.SkillCode,l.SkillName,
@curRow := @curRow + 1 AS row_number
FROM oep.skill l
JOIN (SELECT @curRow := 0) r;
-- 循环获取技能
SET i=1;
loop1: WHILE i<=vCount DO
-- 获取某条记录信息
SET vPositionId= (SELECT PositionId FROM TmpPosition WHERE row_number =i);
-- 当技能ID不为NULL
IF vPositionId IS NOT NULL
THEN
SET MedianId= vPositionId;
SET vPositionId= (SELECT GetPositionInfo(vPositionId));
-- 当为最末级时
IF vPositionId IS NOT NULL AND vPositionId = '00000000-0000-0000-0000-000000000000'
THEN
INSERT INTO tmp_CourseStructure (ID,NAME,PARENTID)
SELECT PositionId AS ID, PositionName AS NAME,PositionParentId AS PARENTID FROM TmpPosition
WHERE PositionId =vPositionId;
ELSE
INSERT INTO tmp_CourseStructure (ID,NAME,PARENTID)
SELECT PositionId AS ID, PositionName AS NAME,PositionParentId AS PARENTID FROM TmpPosition
WHERE PositionId =MedianId;
END IF;
END IF;
SET i=i+1;
END WHILE loop1;
-- 删除临时技能表
DROP TEMPORARY TABLE IF EXISTS TmpPosition;
END;
END
分享到:
相关推荐
学员可以通过以下方式获取课程资料: - **网盘链接**:[点击此处](https://pan.baidu.com/s/1gSW6m2MGlxwk321V8xyf7Q) - **提取码**:`soho` 此外,为了方便学员获取更多学习资源,还提供了其他几个网站链接,包括...
"V2.7"可能是课程的版本号,意味着这个课程体系经过了多次迭代与更新,以适应最新的技术趋势和教育需求。 在毕业设计阶段,学生需要综合运用所学知识,独立完成一个完整的项目,这涉及到需求分析、设计、编码、测试...
教学过程中,通过“获取信息、制定计划、实施计划、评估”等一系列自主学习环节,学生能更好地掌握专业知识,形成自我深入的实践经验和知识体系。 当然,在行动导向教学方法的实施中,教师需要根据不同的教学内容...
学生可以通过FTP服务器上的“LP002”文件夹获取课程资料,具体路径为`ftp://ftp.must.edu.mo`。 通过上述概述,可以看出这门课程全面地覆盖了数据结构的基础概念和实践应用,并且使用Java作为教学编程语言。课程...
参考书籍和相关文章提供了丰富的学习资源,而课程评价体系则包括平时成绩和考试成绩,鼓励学生积极参与课堂讨论和完成作业。 通过这门课程的学习,学生将具备扎实的程序设计理论基础,能够运用各种设计方法和技术...
对于简单的命令行界面,可以使用系统调用来获取用户输入,然后通过打印机端口或文本模式下的屏幕输出函数显示结果。 总的来说,这个汇编课程设计项目涵盖了基础的汇编语言编程技巧,包括数据处理、流程控制、错误...
设计目的是让学生熟悉计算机体系结构,特别是DOS操作系统的功能调用以及BIOS功能调用,同时提高汇编语言编程能力。设计内容是编写一个程序,接受用户输入的控制值n,然后计算并显示第n个Fibonacci数。设计时间通常为...
数据结构是计算机科学中的核心课程之一,主要研究如何在计算机中组织和管理数据,以便高效地进行存储、检索和处理。这份"2006年江苏大学数据结构试题"是针对这一主题的一份考试卷,它反映了当时教育体系对数据结构的...
- `__get()`: 当试图获取一个不存在或者不可见的成员变量时调用。 - `__set()`: 当试图给对象设置一个不存在或者不可见的成员变量时调用。 - `__call()`: 当试图调用一个不存在或不可见的方法时调用。 **编译PHP时...
8. **数据结构与算法**:作为软件开发的基础,数据结构(如栈、队列、链表、树、图等)和算法(排序、查找、递归等)的理解和应用也是必考内容。 9. **数据库管理**:SQL语言的基本操作,数据库设计(ER模型、范式...
《电子书 MIPS Assembly Language Programming Using QtSpim》由Ed Jorgensen博士撰写,旨在为大学级别的编程和架构课程提供一个简单且免费的MIPS汇编语言学习资源。该书使用QtSpim模拟器作为教学工具,使学生能够在...
课程CS还可能涵盖数据结构,如数组、链表、栈、队列、树和图。这些数据结构的理解和应用对于编写高效算法至关重要。比如,栈是“后进先出”(LIFO)的数据结构,常用于实现回溯或递归算法;队列则是“先进先出”...
同时,书中提醒读者,这本讲义需要与严蔚敏的教材结合使用,以获取完整的知识体系。 讲义的内容涵盖了数据结构的基本组成部分,包括但不限于: 1. **经典算法**:这里可能涉及排序、查找等经典算法,如快速排序、...
迭代器必须提供方法来获取下一个元素、检查是否还有元素、重置到起始位置等等。 - ConcreteIterator(具体迭代器):这个角色实现了Iterator接口,并跟踪遍历集合中的当前位置。 - Aggregate(聚合):聚合定义了...
【大学计算机基础】课程主要涵盖了计算思维的基础概念和计算机科学的核心原理。计算思维是指运用计算机科学的思维方式来解决问题,...这门课程的内容丰富多样,涵盖理论、实践和应用,是跨学科知识体系的重要组成部分。
通过这个压缩包,学生可以获取完整的课程资料,跟随指导逐步学习并完成课程要求。利用Jupyter Notebook,学生不仅可以阅读和理解概念,还可以直接在笔记本中编写和运行代码,加深对理论的理解并提高实践能力。
- **逐步构建知识体系**:本书采用逐步构建的方法,确保每个概念都能被读者充分理解后再引入新内容。 **2. Python 编程语言** - **选择原因**:作者选择了Python作为教学语言,主要是因为Python语法简洁、易于阅读...
- **描述**:本教程由范磊老师主讲,适合C++编程初学者学习,内容覆盖了C++的基础到进阶的知识体系,旨在帮助学习者系统地掌握C++编程技能。 - **分享理由**:分享者表示自己正在通过这套教程学习C++,认为它非常有...