forked from liweijie/education
后端代码
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
package com.roomroot.jwgl.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.roomroot.jwgl.dto.jys.ElectiveCourseQuery;
|
||||
import com.roomroot.jwgl.vo.jys.ElectiveCourseStudentVO;
|
||||
import com.roomroot.jwgl.vo.jys.ElectiveCourseVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 选修课管理自定义查询(学员队任务表 + 学员队表 + 课表)。
|
||||
*/
|
||||
@Mapper
|
||||
public interface ElectiveCourseMapper {
|
||||
|
||||
Page<ElectiveCourseVO> selectElectiveCoursePage(Page<ElectiveCourseVO> page,
|
||||
@Param("cond") ElectiveCourseQuery cond);
|
||||
|
||||
List<ElectiveCourseVO> selectElectiveCourseList(@Param("cond") ElectiveCourseQuery cond);
|
||||
|
||||
List<ElectiveCourseStudentVO> selectElectiveStudents(@Param("xydbh") String xydbh);
|
||||
|
||||
List<String> selectOriginalClassNames(@Param("xydbh") String xydbh);
|
||||
|
||||
Integer countPinban(@Param("xydbh") String xydbh);
|
||||
|
||||
int insertPinban(@Param("xydbh") String xydbh, @Param("zt") String zt,
|
||||
@Param("jhkssj") LocalDateTime jhkssj, @Param("jhjssj") LocalDateTime jhjssj,
|
||||
@Param("yqsm") String yqsm, @Param("bmdtj") String bmdtj, @Param("bz") String bz);
|
||||
|
||||
int updatePinban(@Param("xydbh") String xydbh, @Param("zt") String zt,
|
||||
@Param("jhkssj") LocalDateTime jhkssj, @Param("jhjssj") LocalDateTime jhjssj,
|
||||
@Param("yqsm") String yqsm, @Param("bmdtj") String bmdtj);
|
||||
}
|
||||
+201
@@ -0,0 +1,201 @@
|
||||
<?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.roomroot.jwgl.mapper.ElectiveCourseMapper">
|
||||
|
||||
<resultMap id="ElectiveCourseResultMap" type="com.roomroot.jwgl.vo.jys.ElectiveCourseVO">
|
||||
<result column="bh" property="bh"/>
|
||||
<result column="nd" property="nd"/>
|
||||
<result column="xydbh" property="xydbh"/>
|
||||
<result column="kbh" property="kbh"/>
|
||||
<result column="jybh" property="jybh"/>
|
||||
<result column="jsbh" property="jsbh"/>
|
||||
<result column="kmc" property="kmc"/>
|
||||
<result column="jcmc" property="jcmc"/>
|
||||
<result column="jyxm" property="jyxm"/>
|
||||
<result column="jsmc" property="jsmc"/>
|
||||
<result column="kxdlbc" property="kxdlbc"/>
|
||||
<result column="jhxs" property="jhxs"/>
|
||||
<result column="yxxs" property="yxxs"/>
|
||||
<result column="xf" property="xf"/>
|
||||
<result column="jhyxxsxf" property="jhyxxsxf"/>
|
||||
<result column="kkjkrq" property="kkjkrq"/>
|
||||
<result column="bmrq" property="bmrq"/>
|
||||
<result column="jhrs" property="jhrs"/>
|
||||
<result column="yqsm" property="yqsm"/>
|
||||
<result column="xxbmc" property="xxbmc"/>
|
||||
<result column="xkzt" property="xkzt"/>
|
||||
<result column="pxcc" property="pxcc"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="ElectiveStudentResultMap" type="com.roomroot.jwgl.vo.jys.ElectiveCourseStudentVO">
|
||||
<result column="xxbmc" property="xxbmc"/>
|
||||
<result column="kmc" property="kmc"/>
|
||||
<result column="xh_no" property="xhNo"/>
|
||||
<result column="xm" property="xm"/>
|
||||
<result column="xb" property="xb"/>
|
||||
<result column="lxdh" property="lxdh"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="ElectiveCourseColumns">
|
||||
t."编号" AS bh,
|
||||
t."年度" AS nd,
|
||||
t."学员队编号" AS xydbh,
|
||||
t."课编号" AS kbh,
|
||||
t."教员编号" AS jybh,
|
||||
t."教室编号" AS jsbh,
|
||||
k."课名称" AS kmc,
|
||||
(SELECT WM_CONCAT(DISTINCT jc."名称")
|
||||
FROM "课程教材" kj
|
||||
LEFT JOIN "教材信息" jc ON jc."编号" = kj."教材编号"
|
||||
WHERE kj."课编号" = t."课编号") AS jcmc,
|
||||
jy."教员姓名" AS jyxm,
|
||||
(SELECT MAX(js."教室名称") FROM "教室表" js WHERE js."教室编号" = t."教室编号") AS jsmc,
|
||||
COALESCE(pb."白名单条件", xyd."学员队名称") AS kxdlbc,
|
||||
COALESCE(sskc.jhxs, t."学时", k."学时") AS jhxs,
|
||||
sskc.yxxs AS yxxs,
|
||||
COALESCE(sskc.xf, t."学分", k."学分") AS xf,
|
||||
(NVL(TO_CHAR(COALESCE(sskc.jhxs, t."学时", k."学时")), '-')
|
||||
|| ' / ' || NVL(TO_CHAR(sskc.yxxs), '-')
|
||||
|| ' / ' || NVL(TO_CHAR(COALESCE(sskc.xf, t."学分", k."学分")), '-')) AS jhyxxsxf,
|
||||
CASE
|
||||
WHEN COALESCE(xq.kxrq, xyd."入学日期") IS NULL THEN NULL
|
||||
ELSE TO_CHAR(COALESCE(xq.kxrq, xyd."入学日期"), 'YYYY-MM-DD')
|
||||
|| ' ~ '
|
||||
|| NVL(TO_CHAR(COALESCE(xq.jsrq, xyd."毕业日期"), 'YYYY-MM-DD'), '-')
|
||||
END AS kkjkrq,
|
||||
CASE
|
||||
WHEN COALESCE(pb."计划开始时间", q."入学日期") IS NULL THEN NULL
|
||||
ELSE TO_CHAR(COALESCE(pb."计划开始时间", q."入学日期"), 'YYYY-MM-DD')
|
||||
|| ' ~ '
|
||||
|| NVL(TO_CHAR(COALESCE(pb."计划结束时间", q."结束注册时间"), 'YYYY-MM-DD'), '-')
|
||||
END AS bmrq,
|
||||
COALESCE(t."人数", xyd."学员队人数") AS jhrs,
|
||||
pb."要求说明" AS yqsm,
|
||||
xyd."学员队名称" AS xxbmc,
|
||||
COALESCE(pb."状态",
|
||||
CASE t."选择" WHEN 1 THEN '开放报名' WHEN 2 THEN '停止报名' ELSE '拟制' END) AS xkzt,
|
||||
k."培训层次" AS pxcc
|
||||
</sql>
|
||||
|
||||
<sql id="ElectiveCourseFromWhere">
|
||||
FROM "学员队任务表" t
|
||||
INNER JOIN "学员队表" xyd ON t."学员队编号" = xyd."学员队编号"
|
||||
INNER JOIN "课表" k ON t."课编号" = k."课编号"
|
||||
LEFT JOIN "教员表" jy ON t."教员编号" = jy."教员编号"
|
||||
LEFT JOIN "学员队拼班信息" pb ON pb."学员队编号" = t."学员队编号"
|
||||
LEFT JOIN "学员队期表" q ON q."学员队编号" = t."学员队编号"
|
||||
LEFT JOIN (
|
||||
SELECT "学员队编号", "年度", "学期第次",
|
||||
MIN("开学日期") AS kxrq, MAX("结束日期") AS jsrq
|
||||
FROM "学员队年度学期基本信息表"
|
||||
GROUP BY "学员队编号", "年度", "学期第次"
|
||||
) xq ON xq."学员队编号" = t."学员队编号"
|
||||
AND xq."年度" = t."年度"
|
||||
AND xq."学期第次" = t."学期第次"
|
||||
LEFT JOIN (
|
||||
SELECT "科目编号", "教员编号", "年度",
|
||||
MAX("学时") AS jhxs, MAX("运行学时") AS yxxs, MAX("学分") AS xf
|
||||
FROM "实施_课程"
|
||||
GROUP BY "科目编号", "教员编号", "年度"
|
||||
) sskc ON sskc."科目编号" = t."课编号"
|
||||
AND (sskc."教员编号" = t."教员编号" OR t."教员编号" IS NULL)
|
||||
AND (sskc."年度" = t."年度" OR t."年度" IS NULL)
|
||||
<where>
|
||||
t."课类型" LIKE '%选修%'
|
||||
AND (t.DEL_FLAG = 0 OR t.DEL_FLAG IS NULL)
|
||||
<if test="cond != null and cond.jyxm != null and cond.jyxm != ''">
|
||||
AND jy."教员姓名" LIKE CONCAT('%', #{cond.jyxm}, '%')
|
||||
</if>
|
||||
<if test="cond != null and cond.kmc != null and cond.kmc != ''">
|
||||
AND k."课名称" LIKE CONCAT('%', #{cond.kmc}, '%')
|
||||
</if>
|
||||
<if test="cond != null and cond.kxbcnj != null and cond.kxbcnj != ''">
|
||||
AND (xyd."年级" LIKE CONCAT('%', #{cond.kxbcnj}, '%')
|
||||
OR pb."白名单条件" LIKE CONCAT('%', #{cond.kxbcnj}, '%')
|
||||
OR xyd."学员队名称" LIKE CONCAT('%', #{cond.kxbcnj}, '%'))
|
||||
</if>
|
||||
<if test="cond != null and cond.xxbmc != null and cond.xxbmc != ''">
|
||||
AND xyd."学员队名称" LIKE CONCAT('%', #{cond.xxbmc}, '%')
|
||||
</if>
|
||||
<if test="cond != null and cond.xkzt != null and cond.xkzt != ''">
|
||||
AND COALESCE(pb."状态",
|
||||
CASE t."选择" WHEN 1 THEN '开放报名' WHEN 2 THEN '停止报名' ELSE '拟制' END) = #{cond.xkzt}
|
||||
</if>
|
||||
<if test="cond != null and cond.pxcc != null and cond.pxcc != ''">
|
||||
AND k."培训层次" = #{cond.pxcc}
|
||||
</if>
|
||||
<if test="cond != null and cond.bhList != null and cond.bhList.size() > 0">
|
||||
AND t."编号" IN
|
||||
<foreach collection="cond.bhList" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<select id="selectElectiveCoursePage" resultMap="ElectiveCourseResultMap">
|
||||
SELECT
|
||||
<include refid="ElectiveCourseColumns"/>
|
||||
<include refid="ElectiveCourseFromWhere"/>
|
||||
ORDER BY t."年度" DESC, t."编号"
|
||||
</select>
|
||||
|
||||
<select id="selectElectiveCourseList" resultMap="ElectiveCourseResultMap">
|
||||
SELECT
|
||||
<include refid="ElectiveCourseColumns"/>
|
||||
<include refid="ElectiveCourseFromWhere"/>
|
||||
ORDER BY t."年度" DESC, t."编号"
|
||||
</select>
|
||||
|
||||
<select id="selectElectiveStudents" resultMap="ElectiveStudentResultMap">
|
||||
SELECT
|
||||
xyd."学员队名称" AS xxbmc,
|
||||
NULL AS kmc,
|
||||
s."学号" AS xh_no,
|
||||
s."姓名" AS xm,
|
||||
s."性别" AS xb,
|
||||
s."联系电话" AS lxdh
|
||||
FROM "学员信息表" s
|
||||
LEFT JOIN "学员队期表" q ON q."编号" = s."学员队期编号"
|
||||
LEFT JOIN "学员队表" xyd ON xyd."学员队编号" = #{xydbh}
|
||||
WHERE s."当前班次编号" = #{xydbh}
|
||||
OR q."学员队编号" = #{xydbh}
|
||||
ORDER BY s."学号"
|
||||
</select>
|
||||
|
||||
<select id="selectOriginalClassNames" resultType="java.lang.String">
|
||||
SELECT DISTINCT COALESCE(orig."学员队名称", prev."学员队名称")
|
||||
FROM "学员信息表" s
|
||||
LEFT JOIN "学员队期表" q ON q."编号" = s."学员队期编号"
|
||||
LEFT JOIN "学员队表" orig
|
||||
ON orig."学员队编号" = q."学员队编号"
|
||||
AND orig."学员队编号" != #{xydbh}
|
||||
LEFT JOIN "学员队表" prev ON prev."学员队编号" = s."上一个部别编号"
|
||||
WHERE (s."当前班次编号" = #{xydbh} OR q."学员队编号" = #{xydbh})
|
||||
AND COALESCE(orig."学员队名称", prev."学员队名称") IS NOT NULL
|
||||
</select>
|
||||
|
||||
<select id="countPinban" resultType="java.lang.Integer">
|
||||
SELECT COUNT(1) FROM "学员队拼班信息" WHERE "学员队编号" = #{xydbh}
|
||||
</select>
|
||||
|
||||
<insert id="insertPinban">
|
||||
INSERT INTO "学员队拼班信息"(
|
||||
"学员队编号", "状态", "计划开始时间", "计划结束时间", "要求说明", "白名单条件", "备注"
|
||||
) VALUES (
|
||||
#{xydbh}, #{zt}, #{jhkssj}, #{jhjssj}, #{yqsm}, #{bmdtj}, #{bz}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updatePinban">
|
||||
UPDATE "学员队拼班信息"
|
||||
<set>
|
||||
<if test="zt != null">"状态" = #{zt},</if>
|
||||
<if test="jhkssj != null">"计划开始时间" = #{jhkssj},</if>
|
||||
<if test="jhjssj != null">"计划结束时间" = #{jhjssj},</if>
|
||||
<if test="yqsm != null">"要求说明" = #{yqsm},</if>
|
||||
<if test="bmdtj != null">"白名单条件" = #{bmdtj},</if>
|
||||
</set>
|
||||
WHERE "学员队编号" = #{xydbh}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -6,6 +6,7 @@ import com.roomroot.jwgl.entity.JYB;
|
||||
import com.roomroot.jwgl.vo.faculty.TeacherListVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
/**
|
||||
* 教员表 Mapper
|
||||
@@ -27,4 +28,9 @@ public interface JYBMapper extends BaseMapper<JYB> {
|
||||
|
||||
/** 教员列表双表联查分页 */
|
||||
Page<TeacherListVO> selectTeacherPageList(Page<TeacherListVO> page, @Param("jyb") JYB cond);
|
||||
|
||||
@Select("SELECT TRIM(b.\"教员编号\") FROM \"教员登录表\" b "
|
||||
+ "JOIN \"登录信息表\" a ON TRIM(a.\"编号\") = TRIM(b.\"登录信息编号\") "
|
||||
+ "WHERE TRIM(a.\"账号\") = #{username}")
|
||||
String selectTeacherIdByAccount(@Param("username") String username);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.roomroot.jwgl.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.roomroot.jwgl.dto.kcb.TimetableQuery;
|
||||
import com.roomroot.jwgl.vo.kcb.ClassTimetableVO;
|
||||
import com.roomroot.jwgl.vo.kcb.DailyWeeklyTimetableVO;
|
||||
import com.roomroot.jwgl.vo.kcb.SemesterGradeExportVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 今日 / 本周 / 班次课表查询。
|
||||
*/
|
||||
@Mapper
|
||||
public interface KcbTimetableMapper {
|
||||
|
||||
List<DailyWeeklyTimetableVO> selectLessonTimetable(@Param("cond") TimetableQuery cond,
|
||||
@Param("startDate") String startDate, @Param("endDate") String endDate);
|
||||
|
||||
Page<ClassTimetableVO> selectClassTimetable(Page<ClassTimetableVO> page,
|
||||
@Param("cond") TimetableQuery cond);
|
||||
|
||||
List<ClassTimetableVO> selectClassTimetableList(@Param("cond") TimetableQuery cond);
|
||||
|
||||
List<SemesterGradeExportVO> selectSemesterGrades(@Param("cond") TimetableQuery cond);
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
<?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.roomroot.jwgl.mapper.KcbTimetableMapper">
|
||||
|
||||
<sql id="LessonTeamFilter">
|
||||
<if test="cond != null and cond.xydbh != null and cond.xydbh != ''">
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM "实施_课程表_学员队" txf
|
||||
WHERE txf."实施_课程表编号" = s."编号"
|
||||
AND txf."学员队编号" = #{cond.xydbh}
|
||||
)
|
||||
</if>
|
||||
<if test="cond != null and cond.xydmc != null and cond.xydmc != ''">
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM "实施_课程表_学员队" txf
|
||||
INNER JOIN "学员队表" xydf ON xydf."学员队编号" = txf."学员队编号"
|
||||
WHERE txf."实施_课程表编号" = s."编号"
|
||||
AND xydf."学员队名称" LIKE CONCAT('%', #{cond.xydmc}, '%')
|
||||
)
|
||||
</if>
|
||||
<if test="cond != null and cond.xqdc != null">
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM "实施_课程学员队" cxf
|
||||
WHERE cxf."实施_课程编号" = c."编号"
|
||||
AND cxf."学期第次" = #{cond.xqdc}
|
||||
)
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<select id="selectLessonTimetable" resultType="com.roomroot.jwgl.vo.kcb.DailyWeeklyTimetableVO">
|
||||
SELECT
|
||||
s."编号" AS bh,
|
||||
TO_CHAR(s."日期", 'YYYY-MM-DD') || ' 第' || CAST(s."节次" AS VARCHAR) || '节' AS sksj,
|
||||
MAX(k."课名称") AS kc,
|
||||
MAX(jys."教研室名称") AS zrdw,
|
||||
WM_CONCAT(DISTINCT xyd."学员队名称") AS bc,
|
||||
COALESCE(WM_CONCAT(DISTINCT jyf."教员姓名"), MAX(jy."教员姓名")) AS jy,
|
||||
COALESCE(WM_CONCAT(DISTINCT js."教室名称"), MAX(js2."教室名称")) AS cd,
|
||||
TRIM(NVL(MAX(s."教学内容"), '')
|
||||
|| CASE
|
||||
WHEN MAX(s."教学方法") IS NOT NULL AND MAX(s."教学方法") != ''
|
||||
THEN ' / ' || MAX(s."教学方法")
|
||||
ELSE ''
|
||||
END) AS jxnrxff,
|
||||
COALESCE(MAX(s."教务备注"), MAX(s."教员备注"), MAX(
|
||||
(SELECT MAX(kcb."备注") FROM "课程表" kcb
|
||||
WHERE kcb."年度" = s."年度"
|
||||
AND kcb."教员编号" = c."教员编号"
|
||||
AND kcb."课次序号" = c."教员课次序号")
|
||||
)) AS bz
|
||||
FROM "实施_课程表" s
|
||||
LEFT JOIN "实施_课程" c ON CAST(c."编号" AS CHAR(36)) = TRIM(s."实施_课程编号")
|
||||
LEFT JOIN "课表" k ON (k."课编号" = c."科目编号" OR k."科目代码" = c."科目编号")
|
||||
LEFT JOIN "教研室表" jys ON jys."教研室代号" = k."教研室代号"
|
||||
LEFT JOIN "教员表" jy ON jy."教员编号" = c."教员编号"
|
||||
LEFT JOIN "实施_课程表_学员队" tx ON tx."实施_课程表编号" = s."编号"
|
||||
LEFT JOIN "学员队表" xyd ON xyd."学员队编号" = tx."学员队编号"
|
||||
LEFT JOIN "实施_课程表_教室" jsx ON jsx."实施_课程表编号" = s."编号"
|
||||
LEFT JOIN "教室表" js ON js."教室编号" = jsx."教室编号"
|
||||
LEFT JOIN "教室表" js2 ON js2."教室编号" = c."教室编号"
|
||||
LEFT JOIN "实施_课程表_辅助教员" fz ON fz."实施_课程表编号" = s."编号"
|
||||
LEFT JOIN "教员表" jyf ON jyf."教员编号" = fz."辅助教员编号"
|
||||
WHERE COALESCE(s."删除状态", 0) = 0
|
||||
<if test="cond != null and cond.nd != null">
|
||||
AND s."年度" = #{cond.nd}
|
||||
</if>
|
||||
<if test="startDate != null and startDate != ''">
|
||||
AND TO_CHAR(s."日期", 'YYYY-MM-DD') >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
AND TO_CHAR(s."日期", 'YYYY-MM-DD') <= #{endDate}
|
||||
</if>
|
||||
<include refid="LessonTeamFilter"/>
|
||||
GROUP BY s."编号", s."日期", s."节次", s."年度", c."教员编号", c."教员课次序号"
|
||||
ORDER BY s."日期", s."节次", s."编号"
|
||||
</select>
|
||||
|
||||
<sql id="ClassTimetableWhere">
|
||||
WHERE 1 = 1
|
||||
<if test="cond != null and cond.nd != null">
|
||||
AND COALESCE(cx."年度", c."年度") = #{cond.nd}
|
||||
</if>
|
||||
<if test="cond != null and cond.xqdc != null">
|
||||
AND cx."学期第次" = #{cond.xqdc}
|
||||
</if>
|
||||
<if test="cond != null and cond.xydbh != null and cond.xydbh != ''">
|
||||
AND cx."学员队编号" = #{cond.xydbh}
|
||||
</if>
|
||||
<if test="cond != null and cond.xydmc != null and cond.xydmc != ''">
|
||||
AND xyd."学员队名称" LIKE CONCAT('%', #{cond.xydmc}, '%')
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<sql id="ClassTimetableSelect">
|
||||
SELECT
|
||||
c."编号" AS sskcbh,
|
||||
(NVL(k."课名称", c."科目编号")
|
||||
|| ' / '
|
||||
|| NVL(TO_CHAR(c."课程课时系数"), '-')) AS kcmcksxs,
|
||||
(NVL(zjy."教员姓名", '-')
|
||||
|| ' / '
|
||||
|| NVL(TO_CHAR(c."教员课次序号"),
|
||||
TO_CHAR((SELECT COUNT(1) FROM "实施_课程表" t
|
||||
WHERE CAST(c."编号" AS CHAR(36)) = TRIM(t."实施_课程编号")
|
||||
AND COALESCE(t."删除状态", 0) = 0)))) AS zrjykc,
|
||||
c."学时" AS jhxs,
|
||||
c."运行学时" AS yxxs,
|
||||
COALESCE(k."考核方式", c."成绩分制") AS khlxfs,
|
||||
sjy."教员姓名" AS ssjy,
|
||||
(NVL(TO_CHAR(cx."人数"), NVL(TO_CHAR(xyd."学员队人数"), '-'))
|
||||
|| ' / '
|
||||
|| NVL((SELECT WM_CONCAT(DISTINCT js."教室名称")
|
||||
FROM "实施_课程表" t
|
||||
LEFT JOIN "实施_课程表_教室" jsx ON jsx."实施_课程表编号" = t."编号"
|
||||
LEFT JOIN "教室表" js ON js."教室编号" = jsx."教室编号"
|
||||
WHERE CAST(c."编号" AS CHAR(36)) = TRIM(t."实施_课程编号")
|
||||
AND COALESCE(t."删除状态", 0) = 0),
|
||||
NVL(js0."教室名称", '-'))) AS rscd,
|
||||
(SELECT WM_CONCAT(DISTINCT sq."事由")
|
||||
FROM "实施_调课申请" sq
|
||||
INNER JOIN "实施_课程表" t ON t."编号" = sq."实施_课程表编号"
|
||||
WHERE CAST(c."编号" AS CHAR(36)) = TRIM(t."实施_课程编号")) AS ssjhbg
|
||||
FROM "实施_课程" c
|
||||
INNER JOIN "实施_课程学员队" cx ON cx."实施_课程编号" = c."编号"
|
||||
LEFT JOIN "学员队表" xyd ON xyd."学员队编号" = cx."学员队编号"
|
||||
LEFT JOIN "课表" k ON (k."课编号" = c."科目编号" OR k."科目代码" = c."科目编号")
|
||||
LEFT JOIN "教员表" zjy ON zjy."教员编号" = c."责任教员编号"
|
||||
LEFT JOIN "教员表" sjy ON sjy."教员编号" = c."教员编号"
|
||||
LEFT JOIN "教室表" js0 ON js0."教室编号" = c."教室编号"
|
||||
</sql>
|
||||
|
||||
<select id="selectClassTimetable" resultType="com.roomroot.jwgl.vo.kcb.ClassTimetableVO">
|
||||
<include refid="ClassTimetableSelect"/>
|
||||
<include refid="ClassTimetableWhere"/>
|
||||
ORDER BY k."课名称", c."编号"
|
||||
</select>
|
||||
|
||||
<select id="selectClassTimetableList" resultType="com.roomroot.jwgl.vo.kcb.ClassTimetableVO">
|
||||
<include refid="ClassTimetableSelect"/>
|
||||
<include refid="ClassTimetableWhere"/>
|
||||
ORDER BY k."课名称", c."编号"
|
||||
</select>
|
||||
|
||||
<select id="selectSemesterGrades" resultType="com.roomroot.jwgl.vo.kcb.SemesterGradeExportVO">
|
||||
SELECT
|
||||
s."学号" AS xh,
|
||||
s."姓名" AS xm,
|
||||
COALESCE(k."课名称", g."科目编号") AS kcmc,
|
||||
g."平时成绩" AS pscj,
|
||||
g."考试成绩" AS kscj,
|
||||
g."最终成绩" AS zzcj,
|
||||
g."考试情况" AS ksqk,
|
||||
g."年度" AS nd
|
||||
FROM "学员课程成绩" g
|
||||
LEFT JOIN "学员信息表" s ON s."编号" = g."学员编号"
|
||||
LEFT JOIN "课表" k ON (k."课编号" = g."科目编号" OR k."科目代码" = g."科目编号")
|
||||
LEFT JOIN "学员队表" xyd ON xyd."学员队编号" = g."学员队编号"
|
||||
WHERE 1 = 1
|
||||
<if test="cond != null and cond.nd != null">
|
||||
AND g."年度" = #{cond.nd}
|
||||
</if>
|
||||
<if test="cond != null and cond.xydbh != null and cond.xydbh != ''">
|
||||
AND g."学员队编号" = #{cond.xydbh}
|
||||
</if>
|
||||
<if test="cond != null and cond.xydmc != null and cond.xydmc != ''">
|
||||
AND xyd."学员队名称" LIKE CONCAT('%', #{cond.xydmc}, '%')
|
||||
</if>
|
||||
ORDER BY s."学号", k."课名称"
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -3,58 +3,45 @@ package com.roomroot.jwgl.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.roomroot.jwgl.entity.SSDKSQ;
|
||||
import com.roomroot.jwgl.vo.courserunning.AdjustableLessonVO;
|
||||
import com.roomroot.jwgl.vo.courserunning.ScheduleAdjustApplyVO;
|
||||
import com.roomroot.jwgl.vo.courserunning.ScheduleAdjustDetailVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 实施_调课申请 Mapper。
|
||||
* <p>
|
||||
* 提供调课申请数据的CRUD操作及调课管理相关的自定义查询。
|
||||
* </p>
|
||||
*/
|
||||
@Mapper
|
||||
public interface SSDKSQMapper extends BaseMapper<SSDKSQ> {
|
||||
|
||||
/**
|
||||
* 分页查询调课申请列表。
|
||||
* <p>
|
||||
* 支持按实施_课程表编号、申请教员编号、年度、教研室审批状态、
|
||||
* 教研室查收状态、删除状态和申请日期范围筛选。
|
||||
* 关联课程表获取课程名称,关联教员表获取申请教员姓名。
|
||||
* </p>
|
||||
*
|
||||
* @param page MyBatis-Plus 分页对象
|
||||
* @param sskcbbh 实施_课程表编号
|
||||
* @param sqjybh 申请教员编号
|
||||
* @param nd 年度
|
||||
* @param jyspzzt 教研室审批状态
|
||||
* @param jyscszt 教研室查收状态
|
||||
* @param sczt 删除状态
|
||||
* @param cjsjStart 申请日期范围开始
|
||||
* @param cjsjEnd 申请日期范围结束
|
||||
* @return 分页调课申请列表
|
||||
*/
|
||||
Page<ScheduleAdjustApplyVO> selectPageList(
|
||||
Page<ScheduleAdjustApplyVO> page,
|
||||
@Param("sskcbbh") String sskcbbh,
|
||||
@Param("xydrwbh") String xydrwbh,
|
||||
@Param("kbh") String kbh,
|
||||
@Param("sqjybh") String sqjybh,
|
||||
@Param("jysdh") String jysdh,
|
||||
@Param("nd") Integer nd,
|
||||
@Param("jyspzzt") Integer jyspzzt,
|
||||
@Param("jyscszt") Integer jyscszt,
|
||||
@Param("jgspzt") Integer jgspzt,
|
||||
@Param("sczt") Integer sczt,
|
||||
@Param("cjsjStart") String cjsjStart,
|
||||
@Param("cjsjEnd") String cjsjEnd);
|
||||
|
||||
/**
|
||||
* 根据调课申请编号查询调课申请详情。
|
||||
* <p>
|
||||
* 关联课程表获取课程名称,关联教员表获取申请教员姓名。
|
||||
* </p>
|
||||
*
|
||||
* @param ssdksqbh 调课申请编号
|
||||
* @return 调课申请详情
|
||||
* 根据调课申请编号查询详情。
|
||||
*/
|
||||
ScheduleAdjustDetailVO selectDetailById(@Param("ssdksqbh") String ssdksqbh);
|
||||
|
||||
/**
|
||||
* 查询可供调课的课次(学员队任务表 + 课表 + 课程表)。
|
||||
*/
|
||||
List<AdjustableLessonVO> selectAdjustableLessons(@Param("jybh") String jybh, @Param("nd") Integer nd);
|
||||
}
|
||||
|
||||
@@ -2,11 +2,17 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.roomroot.jwgl.mapper.SSDKSQMapper">
|
||||
|
||||
<!-- 调课申请列表结果映射 -->
|
||||
<resultMap id="ScheduleAdjustApplyMap" type="com.roomroot.jwgl.vo.courserunning.ScheduleAdjustApplyVO">
|
||||
<result column="调课申请编号" property="ssdksqbh"/>
|
||||
<result column="实施_课程表编号" property="sskcbbh"/>
|
||||
<result column="学员队任务编号" property="xydrwbh"/>
|
||||
<result column="课编号" property="kbh"/>
|
||||
<result column="课程表编号" property="kcbbh"/>
|
||||
<result column="课程名称" property="kcmc"/>
|
||||
<result column="学员队名称" property="xydmc"/>
|
||||
<result column="教研室代号" property="jysdh"/>
|
||||
<result column="原教室编号" property="yjsbh"/>
|
||||
<result column="新教室编号" property="xjsbh"/>
|
||||
<result column="申请教员编号" property="sqjybh"/>
|
||||
<result column="申请教员姓名" property="sqjyxm"/>
|
||||
<result column="事由" property="sy"/>
|
||||
@@ -16,15 +22,22 @@
|
||||
<result column="创建时间" property="cjsj"/>
|
||||
<result column="教研室批准状态" property="jyspzzt"/>
|
||||
<result column="教研室查收状态" property="jyscszt"/>
|
||||
<result column="机关审批状态" property="jgspzt"/>
|
||||
<result column="发回意见" property="fhyj"/>
|
||||
<result column="删除状态" property="sczt"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 调课申请详情结果映射 -->
|
||||
<resultMap id="ScheduleAdjustDetailMap" type="com.roomroot.jwgl.vo.courserunning.ScheduleAdjustDetailVO">
|
||||
<result column="调课申请编号" property="ssdksqbh"/>
|
||||
<result column="实施_课程表编号" property="sskcbbh"/>
|
||||
<result column="学员队任务编号" property="xydrwbh"/>
|
||||
<result column="课编号" property="kbh"/>
|
||||
<result column="课程表编号" property="kcbbh"/>
|
||||
<result column="课程名称" property="kcmc"/>
|
||||
<result column="学员队名称" property="xydmc"/>
|
||||
<result column="教研室代号" property="jysdh"/>
|
||||
<result column="原教室编号" property="yjsbh"/>
|
||||
<result column="新教室编号" property="xjsbh"/>
|
||||
<result column="申请教员编号" property="sqjybh"/>
|
||||
<result column="申请教员姓名" property="sqjyxm"/>
|
||||
<result column="事由" property="sy"/>
|
||||
@@ -46,14 +59,43 @@
|
||||
<result column="教研室查收人编号" property="jyscsrbh"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 分页查询调课申请列表 -->
|
||||
<resultMap id="AdjustableLessonMap" type="com.roomroot.jwgl.vo.courserunning.AdjustableLessonVO">
|
||||
<result column="实施_课程表编号" property="sskcbbh"/>
|
||||
<result column="上课日期" property="rq"/>
|
||||
<result column="节次" property="jc"/>
|
||||
<result column="学员队任务编号" property="xydrwbh"/>
|
||||
<result column="课编号" property="kbh"/>
|
||||
<result column="课程名称" property="kcmc"/>
|
||||
<result column="学员队编号" property="xydbh"/>
|
||||
<result column="学员队名称" property="xydmc"/>
|
||||
<result column="教员编号" property="jybh"/>
|
||||
<result column="课次序号" property="kcxh"/>
|
||||
<result column="教室编号" property="jsbh"/>
|
||||
<result column="年度" property="nd"/>
|
||||
<result column="教研室代号" property="jysdh"/>
|
||||
<result column="课程表编号" property="kcbbh"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 以实施_调课申请为主表,经实施_课程表关联课表、课程表、学员队任务表 -->
|
||||
<select id="selectPageList" resultMap="ScheduleAdjustApplyMap">
|
||||
SELECT
|
||||
a.编号 AS 调课申请编号,
|
||||
a.实施_课程表编号,
|
||||
c.课名称 AS 课程名称,
|
||||
a.学员队任务编号,
|
||||
COALESCE(a.课编号, e.科目编号) AS 课编号,
|
||||
a.课程表编号,
|
||||
kb.课名称 AS 课程名称,
|
||||
(
|
||||
SELECT MAX(xd.学员队名称)
|
||||
FROM "实施_课程表_学员队" xyd
|
||||
LEFT JOIN "学员队表" xd ON xd.学员队编号 = xyd.学员队编号
|
||||
WHERE xyd.实施_课程表编号 = b.编号
|
||||
) AS 学员队名称,
|
||||
COALESCE(a.教研室代号, j.教研室代号) AS 教研室代号,
|
||||
a.原教室编号,
|
||||
a.新教室编号,
|
||||
a.申请教员编号,
|
||||
j.姓名 AS 申请教员姓名,
|
||||
j.教员姓名 AS 申请教员姓名,
|
||||
a.事由,
|
||||
a.日期 AS 新日期,
|
||||
a.节次 AS 新节次,
|
||||
@@ -61,20 +103,36 @@
|
||||
a.创建时间,
|
||||
a.教研室批准状态,
|
||||
a.教研室查收状态,
|
||||
(
|
||||
SELECT MAX(sp.审批状态)
|
||||
FROM "实施_调课申请审批" sp
|
||||
WHERE sp.实施_调课申请编号 = a.编号
|
||||
AND sp.审批状态 IS NOT NULL
|
||||
) AS 机关审批状态,
|
||||
a.发回意见,
|
||||
a.删除状态
|
||||
FROM "实施_调课申请" a
|
||||
LEFT JOIN "实施_课程表" b ON a.实施_课程表编号 = b.编号
|
||||
LEFT JOIN "实施_课程" e ON b.实施_课程编号 = e.编号
|
||||
LEFT JOIN "课程表" c ON e.课编号 = c.课编号
|
||||
LEFT JOIN "教员表" j ON a.申请教员编号 = j.编号
|
||||
LEFT JOIN "实施_课程表" b ON TRIM(b.编号) = TRIM(a.实施_课程表编号)
|
||||
LEFT JOIN "实施_课程" e ON CAST(e.编号 AS CHAR(36)) = TRIM(b.实施_课程编号)
|
||||
LEFT JOIN "课表" kb ON kb.课编号 = COALESCE(NULLIF(TRIM(a.课编号), ''), e.科目编号)
|
||||
LEFT JOIN "教员表" j ON TRIM(j.教员编号) = TRIM(a.申请教员编号)
|
||||
LEFT JOIN "课程表" kcb ON TRIM(kcb.编号) = TRIM(a.课程表编号)
|
||||
WHERE 1=1
|
||||
<if test="sskcbbh != null and sskcbbh != ''">
|
||||
AND a.实施_课程表编号 = #{sskcbbh}
|
||||
</if>
|
||||
<if test="xydrwbh != null and xydrwbh != ''">
|
||||
AND a.学员队任务编号 = #{xydrwbh}
|
||||
</if>
|
||||
<if test="kbh != null and kbh != ''">
|
||||
AND COALESCE(a.课编号, e.科目编号) = #{kbh}
|
||||
</if>
|
||||
<if test="sqjybh != null and sqjybh != ''">
|
||||
AND a.申请教员编号 = #{sqjybh}
|
||||
</if>
|
||||
<if test="jysdh != null and jysdh != ''">
|
||||
AND COALESCE(a.教研室代号, j.教研室代号) = #{jysdh}
|
||||
</if>
|
||||
<if test="nd != null">
|
||||
AND a.年度 = #{nd}
|
||||
</if>
|
||||
@@ -84,6 +142,14 @@
|
||||
<if test="jyscszt != null">
|
||||
AND a.教研室查收状态 = #{jyscszt}
|
||||
</if>
|
||||
<if test="jgspzt != null">
|
||||
AND (
|
||||
SELECT MAX(sp.审批状态)
|
||||
FROM "实施_调课申请审批" sp
|
||||
WHERE sp.实施_调课申请编号 = a.编号
|
||||
AND sp.审批状态 IS NOT NULL
|
||||
) = #{jgspzt}
|
||||
</if>
|
||||
<if test="sczt != null">
|
||||
AND a.删除状态 = #{sczt}
|
||||
</if>
|
||||
@@ -96,14 +162,25 @@
|
||||
ORDER BY a.创建时间 DESC
|
||||
</select>
|
||||
|
||||
<!-- 根据调课申请编号查询详情 -->
|
||||
<select id="selectDetailById" resultMap="ScheduleAdjustDetailMap">
|
||||
SELECT
|
||||
a.编号 AS 调课申请编号,
|
||||
a.实施_课程表编号,
|
||||
c.课名称 AS 课程名称,
|
||||
a.学员队任务编号,
|
||||
COALESCE(a.课编号, e.科目编号) AS 课编号,
|
||||
a.课程表编号,
|
||||
kb.课名称 AS 课程名称,
|
||||
(
|
||||
SELECT MAX(xd.学员队名称)
|
||||
FROM "实施_课程表_学员队" xyd
|
||||
LEFT JOIN "学员队表" xd ON xd.学员队编号 = xyd.学员队编号
|
||||
WHERE xyd.实施_课程表编号 = b.编号
|
||||
) AS 学员队名称,
|
||||
COALESCE(a.教研室代号, j.教研室代号) AS 教研室代号,
|
||||
a.原教室编号,
|
||||
a.新教室编号,
|
||||
a.申请教员编号,
|
||||
j.姓名 AS 申请教员姓名,
|
||||
j.教员姓名 AS 申请教员姓名,
|
||||
a.事由,
|
||||
a.日期 AS 新日期,
|
||||
a.节次 AS 新节次,
|
||||
@@ -122,11 +199,70 @@
|
||||
a.教研室查收时间,
|
||||
a.教研室查收人编号
|
||||
FROM "实施_调课申请" a
|
||||
LEFT JOIN "实施_课程表" b ON a.实施_课程表编号 = b.编号
|
||||
LEFT JOIN "实施_课程" e ON b.实施_课程编号 = e.编号
|
||||
LEFT JOIN "课程表" c ON e.课编号 = c.课编号
|
||||
LEFT JOIN "教员表" j ON a.申请教员编号 = j.编号
|
||||
LEFT JOIN "实施_课程表" b ON TRIM(b.编号) = TRIM(a.实施_课程表编号)
|
||||
LEFT JOIN "实施_课程" e ON CAST(e.编号 AS CHAR(36)) = TRIM(b.实施_课程编号)
|
||||
LEFT JOIN "课表" kb ON kb.课编号 = COALESCE(NULLIF(TRIM(a.课编号), ''), e.科目编号)
|
||||
LEFT JOIN "教员表" j ON TRIM(j.教员编号) = TRIM(a.申请教员编号)
|
||||
WHERE a.编号 = #{ssdksqbh}
|
||||
</select>
|
||||
|
||||
<!-- 教员可选课次:实施_课程表 + 课表 + 课程表 + 学员队任务表 -->
|
||||
<select id="selectAdjustableLessons" resultMap="AdjustableLessonMap">
|
||||
SELECT
|
||||
b.编号 AS 实施_课程表编号,
|
||||
b.日期 AS 上课日期,
|
||||
b.节次,
|
||||
(
|
||||
SELECT MAX(rw.编号)
|
||||
FROM "学员队任务表" rw
|
||||
WHERE rw.课编号 = e.科目编号
|
||||
AND rw.教员编号 = e.教员编号
|
||||
AND rw.年度 = b.年度
|
||||
AND COALESCE(rw.DEL_FLAG, 0) = 0
|
||||
) AS 学员队任务编号,
|
||||
e.科目编号 AS 课编号,
|
||||
COALESCE(kb.课名称, (
|
||||
SELECT MAX(k2.课名称) FROM "课表" k2 WHERE k2.科目代码 = e.科目编号
|
||||
)) AS 课程名称,
|
||||
(
|
||||
SELECT MAX(xyd.学员队编号)
|
||||
FROM "实施_课程表_学员队" xyd
|
||||
WHERE xyd.实施_课程表编号 = b.编号
|
||||
) AS 学员队编号,
|
||||
(
|
||||
SELECT MAX(xd.学员队名称)
|
||||
FROM "实施_课程表_学员队" xyd
|
||||
LEFT JOIN "学员队表" xd ON xd.学员队编号 = xyd.学员队编号
|
||||
WHERE xyd.实施_课程表编号 = b.编号
|
||||
) AS 学员队名称,
|
||||
e.教员编号,
|
||||
e.教员课次序号 AS 课次序号,
|
||||
COALESCE(e.教室编号, (
|
||||
SELECT MAX(js.教室编号)
|
||||
FROM "实施_课程表_教室" js
|
||||
WHERE js.实施_课程表编号 = b.编号
|
||||
)) AS 教室编号,
|
||||
b.年度,
|
||||
jy.教研室代号,
|
||||
(
|
||||
SELECT MAX(kcb.编号)
|
||||
FROM "课程表" kcb
|
||||
WHERE kcb.教员编号 = e.教员编号
|
||||
AND kcb.课次序号 = e.教员课次序号
|
||||
AND kcb.年度 = e.年度
|
||||
) AS 课程表编号
|
||||
FROM "实施_课程表" b
|
||||
JOIN "实施_课程" e ON CAST(e.编号 AS CHAR(36)) = TRIM(b.实施_课程编号)
|
||||
LEFT JOIN "课表" kb ON kb.课编号 = e.科目编号
|
||||
LEFT JOIN "教员表" jy ON TRIM(jy.教员编号) = TRIM(e.教员编号)
|
||||
WHERE COALESCE(b.删除状态, 0) = 0
|
||||
<if test="jybh != null and jybh != ''">
|
||||
AND e.教员编号 = #{jybh}
|
||||
</if>
|
||||
<if test="nd != null">
|
||||
AND b.年度 = #{nd}
|
||||
</if>
|
||||
ORDER BY b.年度 DESC, b.日期 DESC, b.节次 ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
+35
-1
@@ -2,10 +2,17 @@ package com.roomroot.jwgl.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.roomroot.jwgl.dto.jys.TeachingTaskQuery;
|
||||
import com.roomroot.jwgl.entity.JXRW;
|
||||
import com.roomroot.jwgl.vo.jys.TeachingOfficeBookCourseVO;
|
||||
import com.roomroot.jwgl.vo.jys.TeachingOfficeBookVO;
|
||||
import com.roomroot.jwgl.vo.jys.TeachingTaskSquadVO;
|
||||
import com.roomroot.jwgl.vo.jys.TeachingTaskVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 教学任务 Mapper
|
||||
*/
|
||||
@@ -20,4 +27,31 @@ public interface TeachingTaskMapper extends BaseMapper<JXRW> {
|
||||
* @return 分页结果
|
||||
*/
|
||||
Page<JXRW> selectPageList(Page<JXRW> page, @Param("jxrw") JXRW jxrw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 教学任务管理分页(含教研室数、学员队数、合班前后课程任务/学时)。
|
||||
*/
|
||||
Page<TeachingTaskVO> selectManagePage(Page<TeachingTaskVO> page, @Param("cond") TeachingTaskQuery cond);
|
||||
|
||||
/**
|
||||
* 教研室任务书列表(含课程任务数、完成指定数)。
|
||||
*/
|
||||
List<TeachingOfficeBookVO> selectOfficeBooks(@Param("jxrwbh") String jxrwbh);
|
||||
|
||||
/**
|
||||
* 教学任务已关联学员队。
|
||||
*/
|
||||
List<TeachingTaskSquadVO> selectBoundSquads(@Param("jxrwbh") String jxrwbh);
|
||||
|
||||
/**
|
||||
* 某学期可选学员队(未占用或占用当前任务)。
|
||||
*/
|
||||
List<TeachingTaskSquadVO> selectAvailableSquads(@Param("nd") Integer nd,
|
||||
@Param("xqdc") Integer xqdc, @Param("jxrwbh") String jxrwbh);
|
||||
|
||||
/**
|
||||
* 教研室任务书课程明细。
|
||||
*/
|
||||
List<TeachingOfficeBookCourseVO> selectOfficeBookCourses(@Param("jxrwbh") String jxrwbh,
|
||||
@Param("jysdh") String jysdh);
|
||||
}
|
||||
|
||||
@@ -38,4 +38,194 @@
|
||||
ORDER BY 编号
|
||||
</select>
|
||||
|
||||
<sql id="CourseTaskJoin">
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = t."编号"
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0
|
||||
</sql>
|
||||
|
||||
<select id="selectManagePage" resultType="com.roomroot.jwgl.vo.jys.TeachingTaskVO">
|
||||
SELECT
|
||||
t."编号" AS bh,
|
||||
t."任务名称" AS rwmc,
|
||||
t."年度" AS nd,
|
||||
(SELECT MAX(s0."学期第次")
|
||||
FROM "学员队年度学期基本信息表" s0
|
||||
WHERE s0."教学任务编号" = t."编号"
|
||||
AND NVL(s0.DEL_FLAG, 0) = 0) AS xqdc,
|
||||
t."状态" AS zt,
|
||||
t."发布时间" AS fbsj,
|
||||
t."创建时间" AS cjsj,
|
||||
t."结束时间" AS jssj,
|
||||
(SELECT COUNT(1)
|
||||
FROM "教研室任务书" b
|
||||
WHERE b."教学任务编号" = t."编号"
|
||||
AND NVL(b.DEL_FLAG, 0) = 0) AS jyss,
|
||||
(SELECT COUNT(1)
|
||||
FROM "学员队年度学期基本信息表" s
|
||||
WHERE s."教学任务编号" = t."编号"
|
||||
AND NVL(s.DEL_FLAG, 0) = 0) AS xyds,
|
||||
(SELECT COUNT(1)
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = t."编号"
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0) AS hbqkcrws,
|
||||
(SELECT NVL(SUM(r."学时"), 0)
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = t."编号"
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0) AS hbqzxs,
|
||||
(SELECT COUNT(1) FROM (
|
||||
SELECT CASE
|
||||
WHEN r."课次序号" IS NULL THEN r."编号"
|
||||
ELSE TO_CHAR(r."课次序号")
|
||||
END AS gid
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = t."编号"
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0
|
||||
GROUP BY CASE
|
||||
WHEN r."课次序号" IS NULL THEN r."编号"
|
||||
ELSE TO_CHAR(r."课次序号")
|
||||
END
|
||||
) g) AS hbhkcrws,
|
||||
(SELECT NVL(SUM(g.mx), 0) FROM (
|
||||
SELECT MAX(r."学时") AS mx
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = t."编号"
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0
|
||||
GROUP BY CASE
|
||||
WHEN r."课次序号" IS NULL THEN r."编号"
|
||||
ELSE TO_CHAR(r."课次序号")
|
||||
END
|
||||
) g) AS hbhzxs
|
||||
FROM "教学任务" t
|
||||
<where>
|
||||
AND NVL(t.DEL_FLAG, 0) = 0
|
||||
<if test="cond != null and cond.rwmc != null and cond.rwmc != ''">
|
||||
AND t."任务名称" LIKE CONCAT('%', #{cond.rwmc}, '%')
|
||||
</if>
|
||||
<if test="cond != null and cond.nd != null">
|
||||
AND t."年度" = #{cond.nd}
|
||||
</if>
|
||||
<if test="cond != null and cond.zt != null and cond.zt != ''">
|
||||
AND t."状态" = #{cond.zt}
|
||||
</if>
|
||||
<if test="cond != null and cond.xqdc != null">
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM "学员队年度学期基本信息表" sx
|
||||
WHERE sx."教学任务编号" = t."编号"
|
||||
AND sx."学期第次" = #{cond.xqdc}
|
||||
AND NVL(sx.DEL_FLAG, 0) = 0
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY t."创建时间" DESC, t."编号" DESC
|
||||
</select>
|
||||
|
||||
<select id="selectOfficeBooks" resultType="com.roomroot.jwgl.vo.jys.TeachingOfficeBookVO">
|
||||
SELECT
|
||||
b."编号" AS bh,
|
||||
b."教学任务编号" AS jxrwbh,
|
||||
b."教研室代号" AS jysdh,
|
||||
j."教研室名称" AS jysmc,
|
||||
b."状态" AS zt,
|
||||
b."上报时间" AS sbsj,
|
||||
(SELECT COUNT(1)
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = b."教学任务编号"
|
||||
AND r."教研室代号" = b."教研室代号"
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0) AS xydkcrws,
|
||||
(SELECT COUNT(1)
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
WHERE s."教学任务编号" = b."教学任务编号"
|
||||
AND r."教研室代号" = b."教研室代号"
|
||||
AND r."教研室计划教员编号" IS NOT NULL
|
||||
AND r."教研室计划教员编号" != ''
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0) AS wczds
|
||||
FROM "教研室任务书" b
|
||||
LEFT JOIN "教研室表" j ON j."教研室代号" = b."教研室代号"
|
||||
WHERE b."教学任务编号" = #{jxrwbh}
|
||||
AND NVL(b.DEL_FLAG, 0) = 0
|
||||
ORDER BY b."教研室代号"
|
||||
</select>
|
||||
|
||||
<sql id="SquadSelect">
|
||||
SELECT
|
||||
s."编号" AS xydxqbh,
|
||||
s."学员队编号" AS xydbh,
|
||||
d."学员队名称" AS xydmc,
|
||||
d."年级" AS nj,
|
||||
d."专业代号" AS zydh,
|
||||
z."专业名称" AS zymc,
|
||||
d."学员队人数" AS xydrs,
|
||||
s."年度" AS nd,
|
||||
s."学期第次" AS xqdc,
|
||||
s."开学日期" AS kxrq,
|
||||
s."结束日期" AS jsrq,
|
||||
CASE
|
||||
WHEN s."教学任务编号" IS NOT NULL
|
||||
AND s."教学任务编号" != ''
|
||||
AND (#{jxrwbh} IS NULL OR s."教学任务编号" != #{jxrwbh})
|
||||
THEN 1 ELSE 0
|
||||
END AS occupied
|
||||
FROM "学员队年度学期基本信息表" s
|
||||
LEFT JOIN "学员队表" d ON d."学员队编号" = s."学员队编号"
|
||||
LEFT JOIN "专业表" z ON z."专业代号" = d."专业代号"
|
||||
</sql>
|
||||
|
||||
<select id="selectBoundSquads" resultType="com.roomroot.jwgl.vo.jys.TeachingTaskSquadVO">
|
||||
<include refid="SquadSelect"/>
|
||||
WHERE s."教学任务编号" = #{jxrwbh}
|
||||
AND NVL(s.DEL_FLAG, 0) = 0
|
||||
ORDER BY d."年级", d."学员队名称"
|
||||
</select>
|
||||
|
||||
<select id="selectAvailableSquads" resultType="com.roomroot.jwgl.vo.jys.TeachingTaskSquadVO">
|
||||
<include refid="SquadSelect"/>
|
||||
WHERE NVL(s.DEL_FLAG, 0) = 0
|
||||
AND s."年度" = #{nd}
|
||||
AND s."学期第次" = #{xqdc}
|
||||
AND (
|
||||
s."教学任务编号" IS NULL
|
||||
OR s."教学任务编号" = ''
|
||||
OR (#{jxrwbh} IS NOT NULL AND s."教学任务编号" = #{jxrwbh})
|
||||
)
|
||||
ORDER BY d."年级", d."学员队名称"
|
||||
</select>
|
||||
|
||||
<select id="selectOfficeBookCourses" resultType="com.roomroot.jwgl.vo.jys.TeachingOfficeBookCourseVO">
|
||||
SELECT
|
||||
r."编号" AS rwbh,
|
||||
r."课编号" AS kbh,
|
||||
k."课名称" AS kmc,
|
||||
r."课类型" AS klx,
|
||||
r."学时" AS xs,
|
||||
r."学员队编号" AS xydbh,
|
||||
d."学员队名称" AS xydmc,
|
||||
r."教研室计划教员编号" AS jysjhjybh,
|
||||
jy."教员姓名" AS jysjhjyxm
|
||||
FROM "学员队任务表" r
|
||||
INNER JOIN "学员队年度学期基本信息表" s ON s."编号" = r."学员队学期编号"
|
||||
LEFT JOIN "课表" k ON k."课编号" = r."课编号"
|
||||
LEFT JOIN "学员队表" d ON d."学员队编号" = r."学员队编号"
|
||||
LEFT JOIN "教员表" jy ON jy."教员编号" = r."教研室计划教员编号"
|
||||
WHERE s."教学任务编号" = #{jxrwbh}
|
||||
AND r."教研室代号" = #{jysdh}
|
||||
AND NVL(r.DEL_FLAG, 0) = 0
|
||||
AND NVL(s.DEL_FLAG, 0) = 0
|
||||
ORDER BY d."学员队名称", k."课名称"
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.roomroot.jwgl.mapper;
|
||||
|
||||
import com.roomroot.jwgl.vo.jwtest.PkLessonVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 排课测试全查。
|
||||
*/
|
||||
@Mapper
|
||||
public interface TestPkMapper {
|
||||
|
||||
/**
|
||||
* 查询全部排课记录,无筛选条件。
|
||||
*/
|
||||
List<PkLessonVO> selectAll();
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
<?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.roomroot.jwgl.mapper.TestPkMapper">
|
||||
|
||||
<!--
|
||||
排课全查:实施_课程表为课次主表,关联课表、教员表、学员队表、教室表。
|
||||
开始/结束时间取节次时间表;学年学期、周次按学期开学日期推算;应到人数优先课次绑定人数。
|
||||
不做业务筛选。
|
||||
-->
|
||||
<select id="selectAll" resultType="com.roomroot.jwgl.vo.jwtest.PkLessonVO">
|
||||
SELECT
|
||||
COALESCE(NULLIF(TRIM(MAX(s."教学内容")), ''), MAX(k."课名称")) AS ktmc,
|
||||
MAX(k."课名称") AS kcmc,
|
||||
MAX(jy."教员姓名") AS jymc,
|
||||
WM_CONCAT(DISTINCT xyd."学员队名称") AS bjmc,
|
||||
MAX(js."教室名称") AS jsmc,MAX(jxlb.教学楼名称) AS jxlmc,
|
||||
TO_CHAR(s."日期", 'YYYY-MM-DD') AS skrq,
|
||||
MAX(jc."开始时间") AS kssj,
|
||||
MAX(jc."结束时间") AS jssj,
|
||||
CASE
|
||||
WHEN EXTRACT(MONTH FROM MAX(xq."开学日期")) >= 8
|
||||
THEN EXTRACT(YEAR FROM MAX(xq."开学日期")) || '-' || (EXTRACT(YEAR FROM MAX(xq."开学日期")) + 1)
|
||||
ELSE (EXTRACT(YEAR FROM MAX(xq."开学日期")) - 1) || '-' || EXTRACT(YEAR FROM MAX(xq."开学日期"))
|
||||
END
|
||||
|| '学年第'
|
||||
|| TRIM(LEADING '0' FROM SUBSTR(CAST(MAX(xq."年度") AS VARCHAR), 5, 2))
|
||||
|| '学期' AS xnxq,
|
||||
CAST(
|
||||
FLOOR((TRUNC(s."日期") - TRUNC(MAX(xq."开学日期"))) / 7) + 1
|
||||
AS INT
|
||||
) AS zc,
|
||||
(
|
||||
SELECT SUM(t2."人数")
|
||||
FROM "实施_课程表_学员队" t2
|
||||
WHERE TRIM(t2."实施_课程表编号") = TRIM(s."编号")
|
||||
) AS ydrs,
|
||||
MAX(NVL(TO_CHAR(kcb."备注"), NVL(s."教务备注", s."教员备注"))) AS bz
|
||||
FROM "实施_课程表_学员队" tx
|
||||
INNER JOIN "实施_课程表" s
|
||||
ON TRIM(s."编号") = TRIM(tx."实施_课程表编号")
|
||||
LEFT JOIN "实施_课程" c
|
||||
ON REPLACE(LOWER(TRIM(CAST(c."编号" AS CHAR(36)))), '-', '')
|
||||
= REPLACE(LOWER(TRIM(s."实施_课程编号")), '-', '')
|
||||
LEFT JOIN "课表" k
|
||||
ON k."课编号" = c."科目编号"
|
||||
LEFT JOIN "课程表" kcb
|
||||
ON kcb."年度" = s."年度"
|
||||
AND kcb."安排时间" = s."计划时间安排"
|
||||
AND TRIM(kcb."教员编号") = TRIM(c."教员编号")
|
||||
LEFT JOIN "教员表" jy
|
||||
ON TRIM(jy."教员编号") = TRIM(NVL(kcb."授课教员编号", c."教员编号"))
|
||||
LEFT JOIN "学员队表" xyd
|
||||
ON xyd."学员队编号" = tx."学员队编号"
|
||||
LEFT JOIN "教室表" js
|
||||
ON js."教室编号" = NVL(kcb."教室编号", c."教室编号")
|
||||
LEFT JOIN "节次时间表" jc
|
||||
ON TRIM(jc."节次索引") = TRIM(CAST(s."节次" AS VARCHAR))
|
||||
LEFT JOIN "学期" xq
|
||||
ON CAST(xq."年度" AS VARCHAR) = CAST(s."年度" AS VARCHAR)
|
||||
AND TRUNC(s."日期") >= TRUNC(xq."开学日期")
|
||||
AND TRUNC(s."日期") <= TRUNC(xq."结束日期")
|
||||
LEFT JOIN "教学楼表" jxlb on jxlb.教学楼代号=js.教学楼代号
|
||||
WHERE NVL(s."删除状态", 0) = 0
|
||||
GROUP BY s."编号", s."日期", s."节次", s."年度"
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user