feat: 提交课表冲突检查相关功能模块

This commit is contained in:
dengxiaoyue
2026-08-21 14:39:03 +08:00
parent 179b12e3bf
commit f190c29e05
857 changed files with 10838 additions and 5 deletions
@@ -0,0 +1,223 @@
<?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.XYJXQJBMapper">
<resultMap id="BaseResultMap" type="com.roomroot.jwgl.entity.XYJXQJB">
<id column="编号" property="bh"/>
<result column="名称" property="mc"/>
<result column="起始时间" property="qssj"/>
<result column="结束时间" property="jssj"/>
<result column="状态" property="zt"/>
<result column="原因" property="yy"/>
<result column="请假类型" property="qjlx"/>
<result column="备注" property="bz"/>
<result column="学员队编号" property="xydbh"/>
<result column="课堂数" property="kts"/>
<result column="学员人数" property="xyrs"/>
<result column="创建时间" property="cjsj"/>
<result column="上报时间" property="sbsj"/>
<result column="目的地" property="mdd"/>
<result column="佐证文件1编号" property="zzwj1bh"/>
<result column="佐证文件2编号" property="zzwj2bh"/>
</resultMap>
<select id="selectByXydbh" resultMap="BaseResultMap">
SELECT * FROM "学员教学请假表"
WHERE "学员队编号" = #{xydbh}
AND "状态" != '4'
<if test="nd != null">
AND EXTRACT(YEAR FROM "起始时间") = #{nd}
</if>
ORDER BY "起始时间" DESC
</select>
<resultMap id="AbsenceResultMap" type="com.roomroot.jwgl.vo.elective.StudentAbsenceVO">
<result column="请假编号" property="qjbh"/>
<result column="名称" property="mc"/>
<result column="起始时间" property="qssj"/>
<result column="结束时间" property="jssj"/>
<result column="原因" property="yy"/>
<result column="学员编号" property="xybh"/>
<result column="姓名" property="xm"/>
<result column="学号" property="xh"/>
<result column="课堂数" property="kts"/>
</resultMap>
<select id="selectAbsenceByXydbh" resultMap="AbsenceResultMap">
SELECT
q."编号" AS 请假编号, q."名称", q."起始时间", q."结束时间", q."原因",
q."课堂数",
qj."学员编号" AS 学员编号, xy."姓名", xy."学号"
FROM "学员教学请假表" q
JOIN "请假学员表" qj ON qj."请假编号" = q."编号"
LEFT JOIN "学员信息表" xy ON xy."编号" = qj."学员编号"
WHERE q."学员队编号" = #{xydbh}
AND q."状态" != '4'
<if test="nd != null">
AND EXTRACT(YEAR FROM q."起始时间") = #{nd}
</if>
ORDER BY q."起始时间" DESC
</select>
<resultMap id="StudentLeaveApplyMap" type="com.roomroot.jwgl.vo.courserunning.StudentLeaveApplyVO">
<result column="请假编号" property="qjbh"/>
<result column="学员编号" property="xybh"/>
<result column="学员姓名" property="xyxm"/>
<result column="学员队编号" property="xydbh"/>
<result column="学员队名称" property="xydmc"/>
<result column="原因" property="yy"/>
<result column="请假类型" property="qjlx"/>
<result column="起始时间" property="qssj"/>
<result column="结束时间" property="jssj"/>
<result column="审批状态" property="spzt"/>
<result column="审批状态名称" property="spztmc"/>
<result column="创建时间" property="cjsj"/>
</resultMap>
<select id="selectPageList" resultMap="StudentLeaveApplyMap">
SELECT
q."编号" AS 请假编号,
qjxy."学员编号",
xy."姓名" AS 学员姓名,
q."学员队编号",
xyd."学员队名称",
q."原因",
q."请假类型",
q."起始时间",
q."结束时间",
q."创建时间",
sp."审批状态",
CASE
WHEN q."状态" = '4' THEN '已撤回'
WHEN sp."审批状态" = '0' THEN '待审批'
WHEN sp."审批状态" = '1' THEN '已同意'
WHEN sp."审批状态" = '2' THEN '已拒绝'
WHEN sp."审批状态" = '3' THEN '已发回'
ELSE '待审批'
END AS 审批状态名称
FROM "学员教学请假表" q
LEFT JOIN "请假学员表" qjxy ON qjxy."请假编号" = q."编号"
LEFT JOIN "学员信息表" xy ON xy."编号" = qjxy."学员编号"
LEFT JOIN "学员队表" xyd ON xyd."学员队编号" = q."学员队编号"
LEFT JOIN (
SELECT "请假编号", "审批状态"
FROM "学员请假审批表" sp1
WHERE sp1."审批时间" = (
SELECT MAX(sp2."审批时间")
FROM "学员请假审批表" sp2
WHERE sp2."请假编号" = sp1."请假编号"
)
) sp ON sp."请假编号" = q."编号"
<where>
<if test="qjbh != null and qjbh != ''">
AND q."编号" = #{qjbh}
</if>
<if test="xybh != null and xybh != ''">
AND qjxy."学员编号" = #{xybh}
</if>
<if test="xyxm != null and xyxm != ''">
AND xy."姓名" LIKE '%' || #{xyxm} || '%'
</if>
<if test="xydbh != null and xydbh != ''">
AND q."学员队编号" = #{xydbh}
</if>
<if test="qjlx != null and qjlx != ''">
AND q."请假类型" = #{qjlx}
</if>
<if test="spzt != null">
AND sp."审批状态" = CAST(#{spzt} AS VARCHAR(50))
</if>
<if test="nd != null">
AND EXTRACT(YEAR FROM q."起始时间") = #{nd}
</if>
<if test="cjsjStart != null and cjsjStart != ''">
AND TO_CHAR(q."创建时间", 'YYYY-MM-DD HH24:MI:SS') &gt;= #{cjsjStart}
</if>
<if test="cjsjEnd != null and cjsjEnd != ''">
AND TO_CHAR(q."创建时间", 'YYYY-MM-DD HH24:MI:SS') &lt;= #{cjsjEnd}
</if>
</where>
ORDER BY q."创建时间" DESC
</select>
<resultMap id="LeaveLessonMap" type="com.roomroot.jwgl.vo.courserunning.LeaveLessonVO">
<result column="课次编号" property="sskcbbh"/>
<result column="课程名称" property="kcmc"/>
<result column="上课日期" property="rq"/>
<result column="节次" property="jc"/>
</resultMap>
<resultMap id="StudentLeaveDetailMap" type="com.roomroot.jwgl.vo.courserunning.StudentLeaveDetailVO">
<result column="请假编号" property="qjbh"/>
<result column="学员编号" property="xybh"/>
<result column="学员姓名" property="xyxm"/>
<result column="学员队编号" property="xydbh"/>
<result column="学员队名称" property="xydmc"/>
<result column="原因" property="yy"/>
<result column="请假类型" property="qjlx"/>
<result column="起始时间" property="qssj"/>
<result column="结束时间" property="jssj"/>
<result column="目的地" property="mdd"/>
<result column="备注" property="bz"/>
<result column="审批状态" property="spzt"/>
<result column="审批状态名称" property="spztmc"/>
<result column="审批人编号" property="sprbh"/>
<result column="审批人姓名" property="sprxm"/>
<result column="审批时间" property="spsj"/>
<result column="审批意见" property="spyj"/>
<result column="创建时间" property="cjsj"/>
<collection property="lessonList" resultMap="LeaveLessonMap"/>
</resultMap>
<select id="selectDetailById" resultMap="StudentLeaveDetailMap">
SELECT
q."编号" AS 请假编号,
qjxy."学员编号",
xy."姓名" AS 学员姓名,
q."学员队编号",
xyd."学员队名称",
q."原因",
q."请假类型",
q."起始时间",
q."结束时间",
q."目的地",
q."备注",
q."创建时间",
sp."审批状态",
CASE
WHEN q."状态" = '4' THEN '已撤回'
WHEN sp."审批状态" = '0' THEN '待审批'
WHEN sp."审批状态" = '1' THEN '已同意'
WHEN sp."审批状态" = '2' THEN '已拒绝'
WHEN sp."审批状态" = '3' THEN '已发回'
ELSE '待审批'
END AS 审批状态名称,
sp."审批人编号",
j."教员姓名" AS 审批人姓名,
sp."审批时间",
sp."发回意见" AS 审批意见,
sskcb."编号" AS 课次编号,
kb."课名称" AS 课程名称,
sskcb."日期" AS 上课日期,
sskcb."节次"
FROM "学员教学请假表" q
LEFT JOIN "请假学员表" qjxy ON qjxy."请假编号" = q."编号"
LEFT JOIN "学员信息表" xy ON xy."编号" = qjxy."学员编号"
LEFT JOIN "学员队表" xyd ON xyd."学员队编号" = q."学员队编号"
LEFT JOIN (
SELECT "请假编号", "审批状态", "审批人编号", "审批时间", "发回意见"
FROM "学员请假审批表" sp1
WHERE sp1."审批时间" = (
SELECT MAX(sp2."审批时间")
FROM "学员请假审批表" sp2
WHERE sp2."请假编号" = sp1."请假编号"
)
) sp ON sp."请假编号" = q."编号"
LEFT JOIN "教员表" j ON j."教员编号" = sp."审批人编号"
LEFT JOIN "请假课堂表" qjkt ON qjkt."请假编号" = q."编号"
LEFT JOIN "实施_课程表" sskcb ON sskcb."编号" = qjkt."实施_课堂编号"
LEFT JOIN "实施_课程" sskc ON sskcb."实施_课程编号" = sskc."编号"
LEFT JOIN "课表" kb ON sskc."科目编号" = kb."课编号"
WHERE q."编号" = #{qjbh}
</select>
</mapper>