etms/WEB-INF/mapping/pd_query.map.xml
liyuchen c24bea2687 Initial commit: JCDP 教育培训管理系统 v54
- 系统管理模块(用户/角色/组织/权限/日志)
- 教育培训计划管理模块
- 教育培训实施模块
- 考试管理模块
- 调研问卷管理模块
- 外派培训管理模块
- 年度培训总结模块
- 学习资源管理模块
- 任职资格管理模块
- 即时通讯模块
- APP 版本管理
- 统计分析模块(FineReport)
- 代码审查标准和报告(CODE_REVIEW_GUIDE.md, CODE_REVIEW_REPORT.md)
- 项目开发指南(PROJECT_GUIDE.md)
2026-04-16 16:41:34 +08:00

247 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<dynamic-sql>
<sql id="queryTrainFlow"><![CDATA[
select md5(uuid()) as id,kcmc,coursestatus,coursefinish, jhly,bjmc,classfinish,bjlb,addgroupname,jhrs,starttime,endtime,sfbfzs,pxxsh,
pxxs,sfkh,khlx,khfs,teacher,realteacher,price,ccstatus,pgwjmc,pgstatus,name,startdate,enddate,state,title,uploadtime,teacher_code,teacher_department
from (
select
cc.kcmc,
IF(yxx.status is not null,(case yxx.status when -1 then "培训科目" when 0 then "未完成" when 1 then "未完成" else "完成" end),(case pg.status when 1 then "完成" else "未完成" end))
coursestatus,
(case when tab1.nofinishcount>0 then "未完成" else "完成" end) coursefinish,
(case cc.jhly when "bmn" then "部门级计划内" when "bmw" then "部门级计划外" when "sj" then "院级" end) jhly,
cc.bjmc,
(case when cc.realteacher is not null and cc.realteacher!="" then "完成" else "未完成" end) classfinish,
cc.bjlb,
cc.addgroupname,
uc.jhrs,
cc.starttime,
cc.endtime,
cc.sfbfzs,
cc.pxxsh,
cc.pxxs,
cc.sfkh,
(case cc.sfkh when "是" then cc.khlx when "否" then "无" end) khlx,
(case cc.sfkh when "是" then cc.khfs when "否" then "无" end) khfs,
cc.teacher,
cc.realteacher,
cc.teacher_code,
cc.teacher_department,
cc.price,
(case cc.status when -1 then "被驳回" when 0 then "未开班" when 1 then "已下发" when 2 then "已开班" when 3 then "待审核" end) ccstatus,
pg.pgwjmc,
(case pg.status when 0 then "未发布" when 1 then "已发布" end) pgstatus,
ecc.name,
ecc.startdate,
ecc.enddate,
ecc.state,
fcc.title,
fcc.uploadtime
from et_train_pd_cc cc left join et_train_pd_cc_pg pg on cc.id=pg.ccid
left join et_train_pd_cc_pgwjyxx yxx on pg.id = yxx.pgID
left join (select kcmcid,count(*) nofinishcount from et_train_pd_cc where realteacher is null or realteacher="" group by kcmcid) tab1 on tab1.kcmcid=cc.kcmcid
left join (select exam.name,exam.startdate,exam.enddate,exam.state,class.class_id as c_id from et_exam_exampaper_and_editexampaper exam
inner join et_exam_limitation_class class on exam.id = class.exam_id group by exam.id
union all
select exam.name,exam.startdate,exam.enddate,exam.state,course.course_id as c_id from et_exam_exampaper_and_editexampaper exam
inner join et_exam_limitation_course course on exam.id = course.exam_id group by exam.id
) ecc on ecc.c_id = cc.id or ecc.c_id = cc.kcmcid
left join (
SELECT
file.title,
file.uploadtime,
course.course_id AS f_id
FROM
et_resource_file file
inner JOIN (select a.file_id,b.course_id from et_resource_limitation a left join et_resource_limitation_course b on a.id=b.limitation_id GROUP BY b.course_id) course on course.file_id = file.id
union all
SELECT
file.title,
file.uploadtime,
class.class_id AS f_id
FROM
et_resource_file file
inner JOIN (select a.file_id,b.class_id from et_resource_limitation a left join et_resource_limitation_class b on a.id=b.limitation_id GROUP BY b.class_id) class on class.file_id = file.id
) fcc on fcc.f_id = cc.id or fcc.f_id = cc.kcmcid
left join (select cc.id,count(*) jhrs FROM et_train_pd_cc cc left join et_train_pd_cc_user ccu on cc.id = ccu.ccid group by cc.id) uc on cc.id = uc.id
where 1=1
<@p p=" and cc.addgroupid = %s" f="?">addgroupid</@p>
<@p p=" and cc.addusercode = %s" f="?">addusercode</@p>
<@p p=" and (kcmc like ?">kcmc</@p>
<@p p=" or bjmc like ?">bjmc</@p>
<@p p=" or cc.addgroupname like ?">addgroupname</@p>
<@p p=" or cc.teacher like ?">teacher</@p>
<@p p=" or cc.realteacher like ?">realteacher</@p>
<@p p=" or cc.teacher_code like ?">teacher_code</@p>
<@p p=" or starttime like binary ?">starttime</@p>
<@p p=" or endtime like binary ? )">endtime</@p>
) a
]]></sql>
<!-- <sql id="queryTrainFlow"><![CDATA[-->
<!-- select md5(uuid()) as id,kcmc,coursestatus,coursefinish, jhly,bjmc,classfinish,bjlb,addgroupname,jhrs,starttime,endtime,sfbfzs,pxxsh,-->
<!-- pxxs,sfkh,khlx,khfs,teacher,realteacher,price,ccstatus,pgwjmc,pgstatus,name,startdate,enddate,state,title,uploadtime,teacher_code,teacher_department-->
<!-- from (-->
<!-- select-->
<!-- cc.kcmc,-->
<!-- IF(yxx.status is not null,(case yxx.status when -1 then "未完成" when 0 then "未完成" when 1 then "未完成" else "完成" end),(case pg.status when 1 then "完成" else "未完成" end))-->
<!-- coursestatus,-->
<!-- (case when tab1.nofinishcount>0 then "未完成" else "完成" end) coursefinish,-->
<!-- (case cc.jhly when "bmn" then "部门级计划内" when "bmw" then "部门级计划外" when "sj" then "院级" end) jhly,-->
<!-- cc.bjmc,-->
<!-- (case when cc.realteacher is not null and cc.realteacher!="" then "完成" else "未完成" end) classfinish,-->
<!-- cc.bjlb,-->
<!-- cc.addgroupname,-->
<!-- uc.jhrs,-->
<!-- cc.starttime,-->
<!-- cc.endtime,-->
<!-- cc.sfbfzs,-->
<!-- cc.pxxsh,-->
<!-- cc.pxxs,-->
<!-- cc.sfkh,-->
<!-- (case cc.sfkh when "是" then cc.khlx when "否" then "无" end) khlx,-->
<!-- (case cc.sfkh when "是" then cc.khfs when "否" then "无" end) khfs,-->
<!-- cc.teacher,-->
<!-- cc.realteacher,-->
<!-- cc.teacher_code,-->
<!-- cc.teacher_department,-->
<!-- cc.price,-->
<!-- (case cc.status when -1 then "被驳回" when 0 then "未开班" when 1 then "已下发" when 2 then "已开班" when 3 then "待审核" end) ccstatus,-->
<!-- pg.pgwjmc,-->
<!-- (case pg.status when 0 then "未发布" when 1 then "已发布" end) pgstatus,-->
<!-- ecc.name,-->
<!-- ecc.startdate,-->
<!-- ecc.enddate,-->
<!-- ecc.state,-->
<!-- fcc.title,-->
<!-- fcc.uploadtime-->
<!-- from et_train_pd_cc cc left join et_train_pd_cc_pg pg on cc.id=pg.ccid-->
<!-- left join et_train_pd_cc_pgwjyxx yxx on pg.id = yxx.pgID-->
<!-- left join (select kcmcid,count(*) nofinishcount from et_train_pd_cc where realteacher is null or realteacher="" group by kcmcid) tab1 on tab1.kcmcid=cc.kcmcid-->
<!-- left join (select exam.name,exam.startdate,exam.enddate,exam.state,class.class_id as c_id from et_exam_exampaper_and_editexampaper exam-->
<!-- inner join et_exam_limitation_class class on exam.id = class.exam_id group by exam.id-->
<!-- union all-->
<!-- select exam.name,exam.startdate,exam.enddate,exam.state,course.course_id as c_id from et_exam_exampaper_and_editexampaper exam-->
<!-- inner join et_exam_limitation_course course on exam.id = course.exam_id group by exam.id-->
<!-- ) ecc on ecc.c_id = cc.id or ecc.c_id = cc.kcmcid-->
<!-- left join (select file.title,file.uploadtime,class.class_id as f_id from et_resource_file file-->
<!-- inner join et_resource_limitation_class class on file.id = class.file_id group by file.id-->
<!-- union all-->
<!-- select file.title,file.uploadtime,course.course_id as f_id from et_resource_file file-->
<!-- inner join et_resource_limitation_course course on file.id = course.file_id group by file.id-->
<!-- ) fcc on fcc.f_id = cc.id or fcc.f_id = cc.kcmcid-->
<!-- left join (select cc.id,count(*) jhrs FROM et_train_pd_cc cc left join et_train_pd_cc_user ccu on cc.id = ccu.ccid group by cc.id) uc on cc.id = uc.id-->
<!-- where 1=1-->
<!-- <@p p=" and cc.addgroupid = %s" f="?">addgroupid</@p>-->
<!-- <@p p=" and cc.addusercode = %s" f="?">addusercode</@p>-->
<!-- <@p p=" and (kcmc like ?">kcmc</@p>-->
<!-- <@p p=" or bjmc like ?">bjmc</@p>-->
<!-- <@p p=" or cc.addgroupname like ?">addgroupname</@p>-->
<!-- <@p p=" or cc.teacher like ?">teacher</@p>-->
<!-- <@p p=" or cc.realteacher like ?">realteacher</@p>-->
<!-- <@p p=" or cc.teacher_code like ?">teacher_code</@p>-->
<!-- <@p p=" or starttime like binary ?">starttime</@p>-->
<!-- <@p p=" or endtime like binary ? )">endtime</@p>-->
<!-- ) a-->
<!-- ]]></sql>-->
<sql id="queryTrainTotal"><![CDATA[
select kcmc,addgroupname,bjmc,stucount,pxxsh,ifnull(scoreavg,0) scoreavg,starttime,endtime,ifnull(pgcount,0) pgcount
from et_train_pd_cc cc
left join
(
select ccid,count(*) stucount from et_train_pd_cc_user
where istrain = '1'
group by ccid
) t1 on t1.ccid = cc.id
left join
(
select classid,round(avg(score),2) scoreavg from
(
select t.classid,score
from et_train_pd_cc_dtda a
inner join et_train_pd_cc_dt t on a.dtid = t.id and t.isanswer = '1'
where score is not null
) tab
group by classid
) t2 on t2.classid = cc.id
left join
(
select classid,count(*) pgcount from et_train_pd_cc_dt
where isanswer = '1'
group by classid
) t3 on t3.classid = cc.id
where 1=1
<@p p=" and cc.addgroupid = %s" f="?">addgroupid</@p>
<@p p=" and cc.addusercode = %s" f="?">addusercode</@p>
<@p p="AND (%s)" s="OR" f="%S LIKE ?">kcmc,bjmc,addgroupname</@p>
<@p p="and starttime >= ?">startdate1</@p>
<@p p="and starttime <= ?">startdate2</@p>
<@p p="and endtime >= ?">enddate1</@p>
<@p p="and endtime <= ?">enddate2</@p>
order by convert(starttime using gbk) desc
]]></sql>
<sql id="queryTrainTotal 按人算平均分 问题:有人提交答案两次"><![CDATA[
select kcmc,addgroupname,bjmc,stucount,pxxsh,ifnull(scoreavg,0) scoreavg
from et_train_pd_cc cc
left join
(
select ccid,count(*) stucount from et_train_pd_cc_user
where istrain = '1'
group by ccid
) t1 on t1.ccid = cc.id
left join
(
select classid,round(avg(score),2) scoreavg from
(
select t.classid,sum(score) score
from et_train_pd_cc_dtda a
inner join et_train_pd_cc_dt t on a.dtid = t.id and t.isanswer = '1'
group by dtid
) tab
group by classid
) t2 on t2.classid = cc.id
where 1=1
<@p p=" and cc.addgroupid = %s" f="?">addgroupid</@p>
<@p p=" and cc.addusercode = %s" f="?">addusercode</@p>
<@p p="AND (%s)" s="OR" f="%S LIKE ?">kcmc,bjmc</@p>
]]></sql>
<sql id="queryTrainTotal 查询效率极慢"><![CDATA[
select kcmc,bjmc,addgroupname,count(uid) stucount,sum(realperiod) periodsum,round(avg(score1),2) scoreavg
from (select kcmcid,kcmc,ccid,bjmc,uid,usercode,username,realperiod,avg(score) score1,addgroupname
from (select
cc.kcmcid,
cc.kcmc,
cc.id ccid,
cc.bjmc,
u.id uid,
u.usercode,
u.username,
u.istrain,
u.realperiod,
pg.id pgid,
pg.pgwjmc,
dt.id dtid,
sum(dtda.score) score,
cc.addusercode,
cc.addgroupid,
cc.addgroupname
from et_train_pd_cc cc left join et_train_pd_cc_user u on cc.id=u.ccid
left join et_train_pd_cc_pg pg on cc.id=pg.ccid
left join et_train_pd_cc_dt dt on pg.id=dt.paperid and u.usercode=dt.usercode
left join et_train_pd_cc_dtda dtda on dt.id=dtda.dtid
where u.istrain=1
group by cc.id,
u.id,
pg.id,
dt.id) tab1
where 1=1
<@p p=" and tab1.addgroupid = %s" f="?">addgroupid</@p>
<@p p=" and tab1.addusercode = %s" f="?">addusercode</@p>
<@p p="AND (%s)" s="OR" f="%S LIKE ?">kcmc,bjmc</@p>
group by kcmcid,ccid,uid) tab11
group by kcmcid,ccid
order by kcmc,bjmc
]]></sql>
</dynamic-sql>