integrated_traffic/src/main/resources/mybatis/dsno3/eduArchives/ArchivesMapper.xml

827 lines
33 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.mapper.dsno3.eduArchives.ArchivesMapper">
<!-- 获取班级列表 -->
<select id="getClasseslistPage" parameterType="page" resultType="pd">
SELECT
f.*,
c.CORP_NAME,
ifnull(pn.count,0) as POST_NUM
FROM
BUS_CLASS f
LEFT JOIN
BUS_CORP_INFO c ON c.CORPINFO_ID = f.CORPINFO_ID
LEFT JOIN
(SELECT COUNT(1) count,p.CLASS_ID FROM bus_class_post p WHERE p.ISDELETE = 0 GROUP BY p.CLASS_ID) pn ON
pn.CLASS_ID=f.CLASS_ID
WHERE
f.ISDELETE = '0'
AND f.STATE &gt; 1
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND ( f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
<if test="pd.STATUS != null and pd.STATUS != ''">
AND f.STATE = #{pd.STATUS}
</if>
<if test="pd.TRAINTYPE_ID != null and pd.TRAINTYPE_ID != ''"><!-- 培训类型 -->
AND f.TRAINTYPE != #{pd.TRAINTYPE_ID}
</if>
ORDER BY f.CREATTIME DESC
</select>
<!-- 获取班级内的工种 -->
<select id="getPostlistPage" parameterType="page" resultType="pd">
SELECT
f.*,
ifnull(sn.count,0) AS STUDENT_NUM,
( select sum(bv.CLASSHOUR)
from bus_class_post bcp
left join bus_curriculum_post c1 on bcp.POST_ID = c1.POST_ID
and c1.CLASS_ID = bcp.CLASS_ID
and c1.ISDELETE = '0'
left join bus_curriculum c2 on c1.CURRICULUM_ID = c2.CURRICULUM_ID and c2.ISDELETE = '0'
left join bus_class_curriculum_chapter ccc on ccc.CLASSCURRICULUM_ID = c1.CLASSCURRICULUM_ID
and ccc.CURRICULUM_ID = c2.CURRICULUM_ID
and ccc.ISDELETE = '0'
left join BUS_VIDEOCOURSEWARE bv on bv.VIDEOCOURSEWARE_ID = ccc.VIDEOCOURSEWARE_ID
and bv.ISDELETE = '0'
where bcp.CLASS_ID = f.CLASS_ID
and bcp.POST_ID = f.POST_ID
and bcp.ISDELETE = '0'
group by bcp.POST_ID) as CLASSHOUR
FROM
bus_class_post f
LEFT JOIN
(SELECT COUNT(1) count,s.CLASS_ID,s.POST_ID FROM bus_student s WHERE s.ISDELETE = 0 GROUP BY
s.CLASS_ID,s.POST_ID) sn
ON sn.CLASS_ID=f.CLASS_ID AND sn.POST_ID = f.POST_ID
WHERE
f.ISDELETE = '0'
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND ( f.POST_NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
<if test="pd.CLASS_ID != null and pd.CLASS_ID != ''">
AND f.CLASS_ID = #{pd.CLASS_ID}
</if>
group by f.POST_ID
order by CONVERT( f.POST_NAME USING gbk )
</select>
<!-- 列表(全部)课程 -->
<select id="getCurriculums" parameterType="pd" resultType="pd">
SELECT
c.CURRICULUM_ID,
c.CATALOGUELEVEL,
c.CURRICULUMNAME
FROM
BUS_CURRICULUM_POST f
LEFT JOIN
BUS_CURRICULUM c ON c.CURRICULUM_ID = f.CURRICULUM_ID
WHERE 1=1 and f.ISDELETE = '0'
<if test="CLASS_ID != null and CLASS_ID != ''">
AND f.CLASS_ID = #{CLASS_ID}
</if>
<if test="POST_ID != null and POST_ID != ''">
AND f.POST_ID = #{POST_ID}
</if>
<if test="CURRICULUM_ID != null and CURRICULUM_ID != ''">
AND c.CURRICULUM_ID = #{CURRICULUM_ID}
</if>
GROUP BY c.CURRICULUM_ID
ORDER BY CONVERT( c.CURRICULUMNAME USING gbk )
</select>
<!-- 列表(全部)课件 -->
<select id="getCoursewares" parameterType="pd" resultType="pd">
SELECT
f.NAME AS CHAPTER_NAME,
cv.COURSEWARENAME,
t.NAME AS TEACHERNAME,
cv.COURSEWAREINTRODUCE,
cv.CLASSHOUR,
cv.VIDEOTIME,
tdic.NAME AS TRAININGTYPE_NAME,
cdic.NAME AS POSTTYPE_NAME,
CONCAT_WS('-',IF( tdic.NAME= '',null ,tdic.NAME ),IF( lei.NAME= '',null , lei.NAME ),IF( cdic.NAME= '',null ,
cdic.NAME )) TYPENAME,
cv.INDUSTRY_ALL_NAME
FROM
BUS_CLASS_CURRICULUM_CHAPTER ccc
LEFT JOIN
bus_chapter f on ccc.CHAPTER_ID = f.CHAPTER_ID
LEFT JOIN
BUS_VIDEOCOURSEWARE cv ON cv.VIDEOCOURSEWARE_ID = f.VIDEOCOURSEWARE_ID AND cv.ISDELETE = '0'
LEFT JOIN
BUS_TEACHER t ON t.TEACHER_ID = cv.SPEAKER
LEFT JOIN BUS_TRAINING_TYPE tdic ON cv.TRAINTYPE = tdic.TRAININGTYPE_ID
LEFT JOIN BUS_POST_TYPE cdic ON cv.POSTTYPE = cdic.POSTTYPE_ID
LEFT JOIN bus_industry_type lei ON lei.INDUSTRYTYPE_ID = cv.INDUSTRY_END_ID
WHERE ccc.ISDELETE = '0' AND cv.VIDEOCOURSEWARE_ID IS NOT NULL
<if test="PARENT_ID != null and PARENT_ID != ''">
AND f.PARENT_ID = #{PARENT_ID}
</if>
<if test="CURRICULUM_ID != null and CURRICULUM_ID != ''">
AND f.CURRICULUM_ID = #{CURRICULUM_ID}
</if>
<if test="CLASS_ID != null and CLASS_ID != ''">
AND ccc.CLASS_ID = #{CLASS_ID}
</if>
<if test="ArrayDATA_IDS != null and ArrayDATA_IDS.size() > 0">
AND f.CURRICULUM_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</if>
ORDER BY f.SORT
</select>
<!-- 列表(全部)学生 -->
<select id="getStudents" parameterType="pd" resultType="pd">
SELECT
f.NAME,
f.USER_ID_CARD,
f.PHONE,
f.DEPARTMENT_NAME,
f.SIGNATURE_PATH,
case if(length(f.USER_ID_CARD)=18, cast(substring(f.USER_ID_CARD,17,1) as UNSIGNED)%2,
if(length(f.USER_ID_CARD)=15,cast(substring(f.USER_ID_CARD,15,1) as UNSIGNED)%2,3))
when 1 then '男' when 0 then '女' else '未知' end as SEX_NAME,
s.STAGEEXAMSTATE,
s.STUDYSTATE,
s.STAGEEXAMSCORE,
IFNULL(s.COMPLETE_CLASSHOUR,0) COMPLETE_CLASSHOUR,
(select COUNT(*) from bus_stageexam bs where bs.STUDENT_ID = f.STUDENT_ID ) examnum
FROM
BUS_STUDENT f
LEFT JOIN
BUS_STAGESTUDENTRELATION s ON s.STUDENT_ID = f.STUDENT_ID
WHERE f.ISDELETE = '0'
<if test="CLASS_ID != null and CLASS_ID != ''">
AND f.CLASS_ID = #{CLASS_ID}
</if>
<if test="POST_ID != null and POST_ID != ''">
AND f.POST_ID = #{POST_ID}
</if>
<if test="STUDENT_ID != null and STUDENT_ID != ''">
AND f.STUDENT_ID = #{STUDENT_ID}
</if>
ORDER BY CONVERT( f.NAME USING gbk )
</select>
<!-- 列表(全部)学生人脸 -->
<select id="getStudentsFace" parameterType="pd" resultType="pd">
SELECT
f.NAME,
f.USER_ID_CARD,
f.PHONE,
ui.PORTRAIT,
face.FACES
FROM
BUS_STUDENT f
LEFT JOIN
BUS_STAGESTUDENTRELATION s ON s.STUDENT_ID = f.STUDENT_ID
LEFT JOIN
SYS_USERINFO ui on ui.USER_ID = f.USER_ID
LEFT JOIN
(SELECT i.STUDENT_ID,GROUP_CONCAT(i.FILEPATH) FACES FROM bus_faceimglog i
LEFT JOIN bus_student bs on bs.STUDENT_ID = i.STUDENT_ID
where i.CLASS_ID = #{CLASS_ID}
GROUP BY bs.STUDENT_ID
ORDER BY i.CREATTIME desc) face on face.STUDENT_ID = f.STUDENT_ID
WHERE f.ISDELETE = '0'
AND s.ISDELETE = '0'
AND f.CLASS_ID = #{CLASS_ID}
ORDER BY CONVERT( f.NAME USING gbk )
</select>
<!-- 查询机构内学员列表(分页) -->
<select id="getStudentslistPage" parameterType="page" resultType="pd">
SELECT
u.USER_ID,
u.USERNAME,
u.NAME,
ui.NATION,
ui.SEX,
ui.POLITICAL_OUTLOOK,
ui.DATE_OF_BIRTH,
ui.DEGREE_OF_EDUCATION,
ui.DUTIES,
ui.ENTRY_DATE,
ui.WORKING_DATE,
ui.INCUMBENCY,
ui.TITLE,
ui.PERSONNEL_TYPE,
ui.USER_ID_CARD,
ui.USER_SIGN_FILE_PATH,
ui.CERTIFICATETYPE,
ui.AUTHENTICATION,
ui.PORTRAIT,
ui.ID_PHOTO,
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
aapl.ARCHIVES_AWARD_PUN_LOG_ID,
asw.ARCHIVES_SPECIAL_WORK_ID,
</if>
COUNT(DISTINCT s.CLASS_ID) CLASS_COUNT,
COUNT(IF(r.STUDYSTATE = 3, 1, NULL)) COMPLETE_COUNT
FROM
SYS_USER u
LEFT JOIN
BUS_STUDENT s ON u.USER_ID = s.USER_ID
LEFT JOIN
BUS_CLASS c ON c.CLASS_ID = s.CLASS_ID
LEFT JOIN
BUS_STAGESTUDENTRELATION r ON r.STUDENT_ID = s.STUDENT_ID
LEFT JOIN
SYS_USERINFO ui ON ui.USER_ID = u.USER_ID
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
LEFT JOIN
BUS_ARCHIVES_AWARD_PUN_LOG aapl on aapl.USER_ID = u.USER_ID and aapl.CORPINFO_ID = #{pd.CORPINFO_ID}
LEFT JOIN
BUS_ARCHIVES_SPECIAL_WORK asw on asw.USER_ID = u.USER_ID and asw.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
WHERE
s.ISDELETE = 0
AND r.ISDELETE = 0
AND c.isdelete = '0'
AND c.STATE &gt; 1
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND ( u.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
AND s.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.TRAINTYPE_ID != null and pd.TRAINTYPE_ID != ''"><!-- 培训类型 -->
AND c.TRAINTYPE != #{pd.TRAINTYPE_ID}
</if>
GROUP BY u.USER_ID
</select>
<!-- 查询学员所属机构-企业列表(分页) -->
<select id="getStuCorpEntlistPage" parameterType="page" resultType="pd">
SELECT
s.*,
en.NAME ENT_NAME,
ci.NAME CORP_NAME,
COUNT(DISTINCT s.CLASS_ID) CLASS_COUNT,
COUNT(c.CLASS_ID) STARTCLASS_COUNT
FROM
BUS_STUDENT s
LEFT JOIN BUS_CORP_INFO ci ON ci.CORPINFO_ID = s.CORPINFO_ID
left join bus_enterprise en on en.enterprise_id = s.enterprise_id and en.isdelete = '0'
left join bus_class c on c.CLASS_ID = s.CLASS_ID and c.STATE >1
WHERE
s.ISDELETE = '0'
AND s.USER_ID = #{pd.USER_ID}
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND ( s.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
<if test="pd.ENTERPRISE_ID != null and pd.ENTERPRISE_ID != ''">
AND s.ENTERPRISE_ID = #{pd.ENTERPRISE_ID}
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
AND s.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
GROUP BY
s.CORPINFO_ID,
s.ENTERPRISE_ID
order by ci.NAME
</select>
<!-- 获取学员班级列表 -->
<select id="getUserClasseslistPage" parameterType="page" resultType="pd">
select
s.USER_ID,
corp.CORPINFO_ID,
c.CLASS_ID,
c.NAME,
c.CODE,
c.START_TIME,
c.END_TIME,
c.STATE,
c.TRAINTYPE,
c.EXAMINATION,
c.ISSTRENGTHEN,
d1.NAME TRAININGTYPE_NAME,
c.POSTTYPE,
d2.NAME POSTTYPE_NAME,
c.TRAINLEVEL,
tl.NAME TRAINLEVEL_NAME,
s.DEPARTMENT_NAME,
s.POST_NAME,
s.STUDENT_ID,
s.PERSONNEL_TYPE,
s.NAME STUDENT_NAME,
IFNULL(sr.COMPLETE_CLASSHOUR,0) COMPLETE_CLASSHOUR,
sr.STAGEEXAMSTATE,
sr.STAGEEXAMSCORE,
sr.STUDYSTATE,
IFNULL(ch.SUM_CLASSHOUR,0) SUM_CLASSHOUR,
corp.CORP_NAME,
corp.CORP_TYPE_NAME,
corp.CORP_TYPE4,
us1.SIGN_PICTURE RECORDOR_SIGN,
us2.SIGN_PICTURE ASSESSOR_SIGN,
us3.SIGN_PICTURE SAFETYDEPTOR_SIGN
from
BUS_CLASS c
LEFT JOIN
BUS_TRAINING_TYPE d1 ON c.TRAINTYPE = d1.TRAININGTYPE_ID
LEFT JOIN
BUS_POST_TYPE d2 ON c.POSTTYPE = d2.POSTTYPE_ID
LEFT JOIN
BUS_TRAIN_LEVEL_TYPE tl ON tl.TRAINLEVEL_ID = c.TRAINLEVEL
LEFT JOIN
BUS_STUDENT s ON c.CLASS_ID = s.CLASS_ID
LEFT JOIN
BUS_STAGESTUDENTRELATION sr ON sr.STUDENT_ID = s.STUDENT_ID
LEFT JOIN
BUS_CORP_INFO corp ON corp.CORPINFO_ID = c.CORPINFO_ID
LEFT JOIN
(SELECT IFNULL(SUM(cu.CLASSHOUR),0) SUM_CLASSHOUR,cp.CLASS_ID,cp.POST_ID FROM BUS_CURRICULUM_POST cp
LEFT JOIN BUS_CLASS_CURRICULUM cu ON cu.CLASSCURRICULUM_ID = cp.CLASSCURRICULUM_ID where cp.isdelete = '0' and
cu.isdelete = '0'
GROUP BY cp.CLASS_ID,cp.POST_ID) ch ON ch.CLASS_ID=c.CLASS_ID and ch.POST_ID=s.POST_ID
LEFT JOIN
SYS_USER_SIGN us1 ON us1.USERSIGNID = c.RECORDOR
LEFT JOIN
SYS_USER_SIGN us2 ON us2.USERSIGNID = c.ASSESSOR
LEFT JOIN
SYS_USER_SIGN us3 ON us3.USERSIGNID = c.SAFETYDEPTOR
WHERE s.ISDELETE = 0
AND sr.ISDELETE = 0
AND c.ISDELETE = '0'
AND c.STATE &gt; 1
<if test="pd.USER_ID != null and pd.USER_ID != ''">
AND s.USER_ID = #{pd.USER_ID}
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
AND s.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.STATE != null and pd.STATE != ''">
AND c.STATE = #{pd.STATE}
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND
(
c. NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
</if>
<if test="pd.STARTTIME != null and pd.STARTTIME != ''">
AND c.START_TIME &gt;= #{pd.STARTTIME}
</if>
<if test="pd.ENDTIME != null and pd.ENDTIME != ''">
AND c.END_TIME &lt;= #{pd.ENDTIME}
</if>
<if test="pd.TRAINTYPE_ID != null and pd.TRAINTYPE_ID != ''">
AND c.TRAINTYPE != #{pd.TRAINTYPE_ID}
</if>
ORDER BY c.OPERATTIME DESC
</select>
<!-- 获取学生信息 -->
<select id="getStudentInfo" parameterType="pd" resultType="pd">
SELECT f.NAME STUDENT_NAME,
f.FILE_NUMBER,
f.USER_ID_CARD,
f.PHONE,
f.DEPARTMENT_NAME,
f.SIGNATURE_PATH,
f.STUDY_END_TIME,
f.STUDY_START_TIME,
case if(length(f.USER_ID_CARD) = 18, cast(substring(f.USER_ID_CARD, 17, 1) as UNSIGNED)%2,
if(length(f.USER_ID_CARD) = 15, cast(substring(f.USER_ID_CARD, 15, 1) as UNSIGNED)%2, 3))
when 1 then '男'
when 0 then '女'
else '未知' end as SEX_NAME,
s.STAGEEXAMSTATE,
s.STUDYSTATE,
s.STAGEEXAMSCORE,
IFNULL(s.COMPLETE_CLASSHOUR, 0) COMPLETE_CLASSHOUR,
c.START_TIME,
c.END_TIME,
c.CODE,
f.PERSONNEL_TYPE,
f.POST_ID,
f.CLASS_ID,
f.CORPINFO_ID,
f.DEPARTMENT_NAME,
f.POST_NAME,
f.MAJOR,
ui.ID_PHOTO,
ui.PORTRAIT,
it.NAME as INDUSTRY_TYPE_NAME,
ci.CORP_NAME,
CONCAT_WS('-', IF(t.NAME = '', null, t.NAME), IF(iei.NAME = '', null, iei.NAME),
IF(p.NAME = '', null, p.NAME), IF(tlt.NAME = '', null, tlt.NAME)) TYPENAME,
cl.NAME as DEGREE_OF_EDUCATION_NAME,
CONCAT(dd.NAME,'/',dt.NAME) as DUTIES_NAME
FROM BUS_STUDENT f
LEFT JOIN
BUS_STAGESTUDENTRELATION s ON s.STUDENT_ID = f.STUDENT_ID
left join bus_class c on f.class_id = c.class_id
LEFT JOIN BUS_POST_TYPE p on p.POSTTYPE_ID = c.POSTTYPE
LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = c.TRAINTYPE
LEFT JOIN BUS_INDUSTRY_TYPE iei on iei.INDUSTRYTYPE_ID = c.INDUSTRY_END_ID
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = c.TRAINLEVEL
LEFT JOIN SYS_USERINFO ui on ui.USER_ID = f.USER_ID
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = ui.DEGREE_OF_EDUCATION
LEFT JOIN SYS_DICTIONARIES_CORP dd on dd.DICTIONARIES_ID = ui.DUTIES
LEFT JOIN SYS_DICTIONARIES_CORP dt on dt.DICTIONARIES_ID = ui.TITLE
LEFT JOIN BUS_CORP_INFO ci on ci.CORPINFO_ID = c.CORPINFO_ID
left join BUS_INDUSTRY_TYPE it on it.INDUSTRYTYPE_ID = ci.INDUSTRY_TYPE
WHERE f.STUDENT_ID = #{STUDENT_ID}
AND s.ISDELETE = '0'
AND c.ISDELETE = '0'
</select>
<select id="getCoursewaresAll" resultType="com.zcloud.entity.PageData">
SELECT
f.NAME AS CHAPTER_NAME,
cv.COURSEWARENAME,
t.NAME AS TEACHERNAME,
cv.COURSEWAREINTRODUCE,
cv.CLASSHOUR,
cv.VIDEOTIME,
tdic.NAME AS TRAININGTYPE_NAME,
cdic.NAME AS POSTTYPE_NAME,
cv.INDUSTRY_ALL_NAME,
CONCAT_WS('-',IF( tdic.NAME= '',null ,tdic.NAME ),IF( lei.NAME= '',null , lei.NAME ),IF( cdic.NAME= '',null ,
cdic.NAME )) TYPENAME,
f.CHAPTER_ID
FROM
BUS_CLASS_CURRICULUM_CHAPTER ccc
LEFT JOIN
bus_chapter f on ccc.CHAPTER_ID = f.CHAPTER_ID
LEFT JOIN
BUS_VIDEOCOURSEWARE cv ON cv.VIDEOCOURSEWARE_ID = f.VIDEOCOURSEWARE_ID
LEFT JOIN bus_industry_type lei ON lei.INDUSTRYTYPE_ID = cv.INDUSTRY_END_ID
LEFT JOIN
BUS_TEACHER t ON t.TEACHER_ID = cv.SPEAKER
LEFT JOIN
bus_training_type tdic ON cv.TRAINTYPE = tdic.TRAININGTYPE_ID
LEFT JOIN
bus_post_type cdic ON cv.POSTTYPE = cdic.POSTTYPE_ID
WHERE ccc.ISDELETE = '0'
<if test="PARENT_ID != null and PARENT_ID != ''">
AND f.PARENT_ID = #{PARENT_ID}
</if>
<if test="CURRICULUM_ID != null and CURRICULUM_ID != ''">
AND f.CURRICULUM_ID = #{CURRICULUM_ID}
</if>
<if test="CLASS_ID != null and CLASS_ID != ''">
AND ccc.CLASS_ID = #{CLASS_ID}
</if>
<if test="ArrayDATA_IDS != null and ArrayDATA_IDS.size() > 0">
AND f.CURRICULUM_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</if>
ORDER BY f.SORT
</select>
<select id="getPostlistAll" parameterType="page" resultType="pd">
SELECT
f.*,
ifnull(sn.count,0) AS STUDENT_NUM
FROM
bus_class_post f
LEFT JOIN
(SELECT COUNT(1) count,s.CLASS_ID,s.POST_ID FROM bus_student s WHERE s.ISDELETE = 0 GROUP BY
s.CLASS_ID,s.POST_ID) sn
ON sn.CLASS_ID=f.CLASS_ID AND sn.POST_ID = f.POST_ID
WHERE
f.ISDELETE = '0'
<if test="CLASS_ID != null and CLASS_ID != ''">
AND f.CLASS_ID = #{CLASS_ID}
</if>
</select>
<select id="getLearningRecordBaseInfo" resultType="com.zcloud.entity.PageData">
SELECT bc.CLASS_ID,
bci.OFFICIAL_SEAL_PATH,
COUNT(DISTINCT fil.FACEIMGLOG_ID) FACELOG,
bs.STUDENT_ID,
bs.USER_ID_CARD,
bs.POST_ID,
bc.`NAME` CLASS_NAME,
bc.ISFACE,
IFNULL(exam.EXAMQUESTIONNUM, 1) EXAMQUESTIONNUM,
IFNULL(exam.EXAMQUESTIONRIGHT, 0) EXAMQUESTIONRIGHT,
IFNULL(exam.EXAMQUESTIONWRONG, 0) EXAMQUESTIONWRONG,
bsr.STAGEEXAMPAPER_ID,
COUNT(DISTINCT cvc.VIDEOCOURSEWARE_ID) PLAYED_COCOURSEWARE_NUM,
IFNULL(temp.ALL_COCOURSEWARE_NUM,1) ALL_COCOURSEWARE_NUM,
bsei.EXAMNAME,
bsei.EXAMSCORE,
bsei.PASSSCORE,
bsr.STUDYSTATE,
bsr.STAGEEXAMSTATE,
bsr.STAGEEXAMSCORE,
IFNULL(bsr.COMPLETE_CLASSHOUR, 0) COMPLETE_CLASSHOUR,
IFNULL(ch.SUM_CLASSHOUR, 0) SUM_CLASSHOUR,
IF
(CONVERT(bsr.STAGEEXAMSCORE, DECIMAL) >= CONVERT(bsei.PASSSCORE, DECIMAL), '合格',
'不合格') EXAM_RESULT,
bc.EXAMINATION,
u.PORTRAIT
FROM bus_student bs
LEFT JOIN bus_class bc ON bs.CLASS_ID = bc.CLASS_ID
LEFT JOIN bus_corp_info bci ON bci.CORPINFO_ID = bs.CORPINFO_ID
LEFT JOIN bus_faceimglog fil ON fil.STUDENT_ID = bs.STUDENT_ID
AND fil.VIDEOCOURSEWARE_ID IS NOT NULL
AND fil.VIDEOCOURSEWARE_ID != ''
LEFT JOIN (
SELECT s.STUDENT_ID,count(1) ALL_COCOURSEWARE_NUM from bus_student s
LEFT JOIN bus_class bc on bc.CLASS_ID = s.CLASS_ID
LEFT JOIN bus_curriculum_post cp on cp.CLASS_ID = s.CLASS_ID and cp.POST_ID = s.POST_ID
LEFT JOIN bus_class_curriculum bcc on bcc.CLASSCURRICULUM_ID = cp.CLASSCURRICULUM_ID
LEFT JOIN bus_class_curriculum_chapter bccc on bccc.CLASSCURRICULUM_ID = bcc.CLASSCURRICULUM_ID and bccc.VIDEOCOURSEWARE_ID is not null AND bccc.VIDEOCOURSEWARE_ID != ''
WHERE s.STUDENT_ID = #{STUDENT_ID}
and bc.ISDELETE = '0'
and cp.ISDELETE = '0'
and bcc.ISDELETE = '0'
and bccc.ISDELETE = '0'
) temp on bs.STUDENT_ID = temp.STUDENT_ID
LEFT JOIN bus_coursestudyvideorecord cvc ON bs.STUDENT_ID = cvc.STUDENT_ID
AND cvc.PLAYCOUNT > 0
AND cvc.VIDEOCOURSEWARE_ID IS NOT NULL
LEFT JOIN bus_stagestudentrelation bsr ON bs.STUDENT_ID = bsr.STUDENT_ID
LEFT JOIN bus_stageexampaper_input bsei ON bsei.STAGEEXAMPAPERINPUT_ID = bsr.STAGEEXAMPAPER_ID
LEFT JOIN (
SELECT
IFNULL( SUM( cu.CLASSHOUR ), 0 ) SUM_CLASSHOUR,
cp.CLASS_ID,
cp.POST_ID
FROM
BUS_CURRICULUM_POST cp
LEFT JOIN BUS_CLASS_CURRICULUM cu ON cu.CLASSCURRICULUM_ID = cp.CLASSCURRICULUM_ID AND cu.ISDELETE = '0'
WHERE cp.ISDELETE = '0'
GROUP BY
cp.CLASS_ID,
cp.POST_ID
) ch ON ch.CLASS_ID = bc.CLASS_ID
AND ch.POST_ID = bs.POST_ID
LEFT JOIN (
SELECT
STAGEEXAM_ID,
EXAMQUESTIONNUM,
EXAMQUESTIONRIGHT,
EXAMQUESTIONWRONG,
STUDENT_ID
FROM
BUS_STAGEEXAM
WHERE STUDENT_ID = #{STUDENT_ID}
ORDER BY
EXAMSCORE*1 desc,EXAMQUESTIONRIGHT desc LIMIT 1) exam ON exam.STUDENT_ID = bs.STUDENT_ID
LEFT JOIN SYS_USERINFO u on u.USER_ID = bs.USER_ID
WHERE
bs.STUDENT_ID = #{STUDENT_ID}
</select>
<select id="getFacialPhotoList" resultType="com.zcloud.entity.PageData">
SELECT fl.CREATTIME,
fl.FILEPATH,
vcs.COURSEWARENAME
FROM bus_faceimglog fl
LEFT JOIN bus_videocourseware vcs ON fl.VIDEOCOURSEWARE_ID = vcs.VIDEOCOURSEWARE_ID
WHERE fl.ISDELETE = '0'
AND fl.STUDENT_ID = #{STUDENT_ID}
ORDER BY fl.CREATTIME desc LIMIT 5
</select>
<select id="attendanceRate" resultType="com.zcloud.entity.PageData">
SELECT bs.CLASS_ID,
bs.`NAME`,
COUNT(DISTINCT cvc.VIDEOCOURSEWARE_ID) PLAYED_NUM,
vi.courseware_num ALL_NUM
FROM bus_student bs
LEFT JOIN vi_courseware_num vi ON bs.STUDENT_ID = vi.STUDENT_ID
LEFT JOIN bus_coursestudyvideorecord cvc ON bs.STUDENT_ID = cvc.STUDENT_ID and cvc.PLAYCOUNT > 0
WHERE bs.STUDENT_ID = #{STUDENT_ID}
</select>
<!-- 获取登录的企业信息 -->
<select id="getEnterpriseInfo" parameterType="pd" resultType="com.zcloud.entity.PageData">
SELECT f.ENTERPRISE_ID,
f.NAME
FROM bus_enterprise f
WHERE f.ENTERPRISE_ID = #{ENTERPRISE_ID}
AND f.ISDELETE = '0'
</select>
<select id="getStudentsByClass" resultType="com.zcloud.entity.PageData">
SELECT s.CLASS_ID,
s.STUDENT_ID,
s.USER_ID,
c.ENTERPRISE_ID,
u.NAME USER_NAME,
c.NAME CLASS_NAME
FROM `bus_student` s
LEFT JOIN bus_class c ON s.CLASS_ID = c.CLASS_ID
left join sys_user u on s.USER_ID = u.USER_ID
WHERE s.ISDELETE = '0'
AND c.ISDELETE = 0
AND c.STATE > 1
and c.CLASS_ID = #{CLASS_ID}
</select>
<select id="getClassPaperlistPage" parameterType="page" resultType="pd">
SELECT
c.CLASS_ID,
si.STAGEEXAMPAPERINPUT_ID,
si.EXAMNAME,
GROUP_CONCAT( DISTINCT p.NAME ) ALL_POST_NAME,
COUNT( DISTINCT bs.STUDENT_ID ) STUDENT_SUM
FROM
bus_class c
LEFT JOIN bus_class_post cp ON c.CLASS_ID = cp.CLASS_ID
LEFT JOIN SYS_POST p ON p.POST_ID = cp.POST_ID
LEFT JOIN bus_student bs ON c.CLASS_ID = bs.CLASS_ID
AND bs.POST_ID = cp.POST_ID
LEFT JOIN bus_post_paper pp ON cp.POST_ID = pp.POST_ID
AND pp.CLASS_ID = c.CLASS_ID
LEFT JOIN bus_stageexampaper_input si ON si.STAGEEXAMPAPERINPUT_ID = pp.STAGEEXAMPAPERINPUT_ID
WHERE
c.CLASS_ID = #{pd.CLASS_ID}
AND c.EXAMINATION = '1'
AND cp.ISDELETE = '0'
AND bs.ISDELETE = '0'
AND pp.ISDELETE = '0'
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND ( si.EXAMNAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
GROUP BY
pp.STAGEEXAMPAPERINPUT_ID
ORDER BY CONVERT( si.EXAMNAME USING gbk )
</select>
<select id="getResultslistPage" parameterType="page" resultType="pd">
SELECT
c.CLASS_ID,
od.DEPARTMENT_ID,
od.`NAME` DEPARTMENT_NAME,
p.POST_ID,
p.`NAME` POST_NAME,
COUNT( DISTINCT bs.STUDENT_ID ) STUDENT_SUM,
classhour.CLASSHOUR_SUM,
bsrp.PASSSTUDENT_SUM,
bsrnp.UNPASSSTUDENT_SUM
FROM
bus_class c
LEFT JOIN bus_class_post cp ON c.CLASS_ID = cp.CLASS_ID
LEFT JOIN SYS_POST p ON p.POST_ID = cp.POST_ID
LEFT JOIN oa_department od on od.DEPARTMENT_ID = cp.DEPARTMENT_ID
LEFT JOIN bus_student bs ON c.CLASS_ID = bs.CLASS_ID
AND bs.POST_ID = cp.POST_ID
LEFT JOIN (
SELECT bcp.POST_ID,SUM(bv.CLASSHOUR) CLASSHOUR_SUM from bus_class_post bcp
LEFT JOIN bus_curriculum_post cp ON bcp.POST_ID = cp.POST_ID and cp.CLASS_ID = bcp.CLASS_ID and cp.ISDELETE = '0'
LEFT JOIN bus_class_curriculum_chapter ccc ON ccc.CLASSCURRICULUM_ID = cp.CLASSCURRICULUM_ID and ccc.CURRICULUM_ID = cp.CURRICULUM_ID
AND ccc.ISDELETE = '0'
LEFT JOIN BUS_VIDEOCOURSEWARE bv on bv.VIDEOCOURSEWARE_ID = ccc.VIDEOCOURSEWARE_ID
AND bv.ISDELETE = '0'
WHERE bcp.CLASS_ID = #{pd.CLASS_ID}
AND bcp.ISDELETE = '0'
GROUP BY bcp.POST_ID) classhour on classhour.POST_ID = cp.POST_ID
LEFT JOIN (
SELECT
bs.POST_ID,
COUNT(DISTINCT bsr.STUDENT_ID) PASSSTUDENT_SUM
FROM bus_class c
LEFT JOIN BUS_CLASS_POST cp ON c.CLASS_ID = cp.CLASS_ID AND cp.ISDELETE = '0'
LEFT JOIN BUS_STUDENT bs ON c.CLASS_ID = bs.CLASS_ID
AND bs.POST_ID = cp.POST_ID
AND bs.ISDELETE = '0'
LEFT JOIN BUS_STAGESTUDENTRELATION bsr on bsr.STUDENT_ID = bs.STUDENT_ID and bsr.CLASS_ID = c.CLASS_ID
AND bsr.STAGEEXAMSTATE in (0,3)
WHERE c.CLASS_ID = #{pd.CLASS_ID}
GROUP BY cp.POST_ID ) bsrp on bsrp.POST_ID = cp.POST_ID
LEFT JOIN (
SELECT
bs.POST_ID,
COUNT(DISTINCT bsr.STUDENT_ID) UNPASSSTUDENT_SUM
FROM BUS_CLASS c
LEFT JOIN BUS_CLASS_POST cp ON c.CLASS_ID = cp.CLASS_ID AND cp.ISDELETE = '0'
LEFT JOIN BUS_STUDENT bs ON c.CLASS_ID = bs.CLASS_ID
AND bs.POST_ID = cp.POST_ID
AND bs.ISDELETE = '0'
LEFT JOIN BUS_STAGESTUDENTRELATION bsr on bsr.STUDENT_ID = bs.STUDENT_ID and bsr.CLASS_ID = c.CLASS_ID
AND bsr.STAGEEXAMSTATE not in (0,3)
WHERE c.CLASS_ID = #{pd.CLASS_ID}
GROUP BY cp.POST_ID ) bsrnp on bsrnp.POST_ID = cp.POST_ID
WHERE
c.CLASS_ID = #{pd.CLASS_ID}
AND cp.ISDELETE = '0'
AND bs.ISDELETE = '0'
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''">
AND ( p.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
GROUP BY cp.POST_ID
ORDER BY CONVERT( cp.POST_NAME USING gbk )
</select>
<select id="getClassPapers" parameterType="pd" resultType="pd">
SELECT
c.CLASS_ID,
c.NAME CLASS_NAME,
si.STAGEEXAMPAPERINPUT_ID,
si.EXAMNAME,
si.EXAMSCORE,
be.`NAME` enterpriseName
FROM
bus_class c
LEFT JOIN bus_class_post cp ON c.CLASS_ID = cp.CLASS_ID
LEFT JOIN SYS_POST p ON p.POST_ID = cp.POST_ID
LEFT JOIN bus_student bs ON c.CLASS_ID = bs.CLASS_ID
AND bs.POST_ID = cp.POST_ID
LEFT JOIN bus_post_paper pp ON cp.POST_ID = pp.POST_ID
AND pp.CLASS_ID = c.CLASS_ID
LEFT JOIN bus_stageexampaper_input si ON si.STAGEEXAMPAPERINPUT_ID = pp.STAGEEXAMPAPERINPUT_ID
LEFT JOIN bus_enterprise be on be.ENTERPRISE_ID = c.ENTERPRISE_ID
WHERE
c.CLASS_ID = #{CLASS_ID}
AND c.EXAMINATION = '1'
AND cp.ISDELETE = '0'
AND bs.ISDELETE = '0'
AND pp.ISDELETE = '0'
GROUP BY
pp.STAGEEXAMPAPERINPUT_ID
</select>
<select id="getClassPost" parameterType="pd" resultType="pd">
SELECT
c.CLASS_ID,
c.NAME CLASS_NAME,
c.START_TIME,
c.END_TIME,
od.DEPARTMENT_ID,
od.`NAME` DEPARTMENT_NAME,
p.POST_ID,
p.`NAME` POST_NAME,
be.`NAME` ENTERPRISE_NAME,
bc.`NAME` CORP_NAME
FROM
bus_class c
LEFT JOIN bus_class_post cp ON c.CLASS_ID = cp.CLASS_ID
LEFT JOIN SYS_POST p ON p.POST_ID = cp.POST_ID
LEFT JOIN oa_department od ON od.DEPARTMENT_ID = cp.DEPARTMENT_ID
LEFT JOIN bus_student bs ON c.CLASS_ID = bs.CLASS_ID
AND bs.POST_ID = cp.POST_ID
LEFT JOIN bus_enterprise be ON be.ENTERPRISE_ID = bs.ENTERPRISE_ID
LEFT JOIN bus_corp_info bc on bc.CORPINFO_ID = c.CORPINFO_ID
WHERE
c.CLASS_ID = #{CLASS_ID}
AND cp.ISDELETE = '0'
AND bs.ISDELETE = '0'
GROUP BY
cp.POST_ID
</select>
<select id="getClassCurriculumlistPage" resultType="com.zcloud.entity.PageData">
select
f.CORPINFO_ID,
f.CLASS_ID,
f.CURRICULUM_ID,
f.CLASSCURRICULUM_ID,
c.CURRICULUMNAME,
c.INDUSTRY_ALL_NAME,
GROUP_CONCAT(DISTINCT p.NAME) ALL_POST_NAME,
cvv.NUM VIDEOCOURSEWARE_COUNT
from
BUS_CLASS_CURRICULUM f
LEFT JOIN (
SELECT
COUNT( CURRICULUM_ID ) NUM,
CURRICULUM_ID
FROM
BUS_CLASS_CURRICULUM_CHAPTER ccc
WHERE
ccc.ISDELETE = '0'
AND ccc.CLASS_ID = #{pd.CLASS_ID}
and ccc.VIDEOCOURSEWARE_ID is not null
and ccc.VIDEOCOURSEWARE_ID != ''
GROUP BY ccc.CURRICULUM_ID
) cvv ON cvv.CURRICULUM_ID = f.CURRICULUM_ID
LEFT JOIN BUS_CURRICULUM c on c.CURRICULUM_ID = f.CURRICULUM_ID
LEFT JOIN BUS_CURRICULUM_POST cp on cp.CURRICULUM_ID = f.CURRICULUM_ID AND cp.CLASS_ID = f.CLASS_ID
LEFT JOIN SYS_POST p on p.POST_ID = cp.POST_ID
LEFT JOIN (
SELECT
c.CLASS_ID,
cup.CURRICULUM_ID,
COUNT( DISTINCT bs.STUDENT_ID ) start_sum,
COUNT( bs.STUDY_END_TIME ) finsh_num
FROM
bus_class c
LEFT JOIN bus_class_post cp ON c.CLASS_ID = cp.CLASS_ID
RIGHT JOIN bus_student bs ON c.CLASS_ID = bs.CLASS_ID and bs.POST_ID = cp.POST_ID
AND bs.ISDELETE = '0'
RIGHT JOIN bus_curriculum_post cup ON cp.POST_ID = cup.POST_ID
AND cup.CLASS_ID = c.CLASS_ID
AND cup.ISDELETE = '0'
where c.CLASS_ID = #{pd.CLASS_ID}
GROUP BY
cup.CURRICULUM_ID
) vifs on vifs.CLASS_ID = f.CLASS_ID and f.CURRICULUM_ID = vifs.CURRICULUM_ID
where f.ISDELETE = '0'
and cp.ISDELETE = '0'
and f.CLASS_ID = #{pd.CLASS_ID}
GROUP BY f.CURRICULUM_ID
ORDER BY CONVERT( c.CURRICULUMNAME USING gbk )
</select>
</mapper>