integrated_traffic/src/main/resources/mybatis/dsno3/eduStudy/ClassMapper.xml

955 lines
36 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.eduStudy.ClassMapper">
<!--表名 -->
<sql id="tableName">
BUS_CLASS
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f
.
NAME
,
f.ADMIN_DIVISION,
f.START_TIME,
f.END_TIME,
f.PRINCIPAL,
f.PRINCIPAL_PHONE,
f.TRAINTYPE,
f.POSTTYPE,
f.INDUSTRY_END_ID,
f.INDUSTRY_ALL_NAME,
f.INDUSTRY_ALL_TYPE,
f.TRAINLEVEL,
f.TRAINERS_NUMBER,
f.ISSUE,
f.EXAM_TIME,
f.ISCHECKPERIOD,
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.ISDELETE,
f.CORPINFO_ID,
f.PROVINCE,
f.CITY,
f.COUNTY,
f.VILLAGE,
f.STREET,
f.ISQUESTIONNAIRE,
f.SAMPLINGNUMBER,
f.CODE,
f.STATE,
f.SURVEY_ID,
f.ENTERPRISE_ID,
f.RECORDOR,
f.ASSESSOR,
f.SAFETYDEPTOR,
f.ISFACE,
f.EXAMINATION,
f.NUMBEROFEXAMS,
f.CLASS_ID,
f.ISSTRENGTHEN,
f.RELEASE_TYPE,
f.PERSONNEL_TYPES
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
NAME
,
ADMIN_DIVISION,
START_TIME,
END_TIME,
PRINCIPAL,
PRINCIPAL_PHONE,
TRAINTYPE,
POSTTYPE,
INDUSTRY_END_ID,
INDUSTRY_ALL_NAME,
INDUSTRY_ALL_TYPE,
TRAINLEVEL,
TRAINERS_NUMBER,
ISSUE,
EXAM_TIME,
ISCHECKPERIOD,
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
ISDELETE,
CORPINFO_ID,
PROVINCE,
CITY,
COUNTY,
VILLAGE,
STREET,
ISQUESTIONNAIRE,
SAMPLINGNUMBER,
CODE,
STATE,
SURVEY_ID,ENTERPRISE_ID,
RECORDOR,
ASSESSOR,
SAFETYDEPTOR,
NUMBEROFEXAMS,
EXAMINATION,
ISFACE,
CLASS_ID,
ISSTRENGTHEN,
RELEASE_TYPE,
PERSONNEL_TYPES
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{NAME}
,
#{ADMIN_DIVISION},
#{START_TIME},
#{END_TIME},
#{PRINCIPAL},
#{PRINCIPAL_PHONE},
#{TRAINTYPE},
#{POSTTYPE},
#{INDUSTRY_END_ID},
#{INDUSTRY_ALL_NAME},
#{INDUSTRY_ALL_TYPE},
#{TRAINLEVEL},
#{TRAINERS_NUMBER},
#{ISSUE},
#{EXAM_TIME},
#{ISCHECKPERIOD},
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{ISDELETE},
#{CORPINFO_ID},
#{PROVINCE},
#{CITY},
#{COUNTY},
#{VILLAGE},
#{STREET},
#{ISQUESTIONNAIRE},
#{SAMPLINGNUMBER},
#{CODE},
#{STATE},
#{SURVEY_ID},
#{ENTERPRISE_ID},
#{RECORDOR},
#{ASSESSOR},
#{SAFETYDEPTOR},
#{NUMBEROFEXAMS},
#{EXAMINATION},
#{ISFACE},
#{CLASS_ID},
#{ISSTRENGTHEN},
#{RELEASE_TYPE},
#{PERSONNEL_TYPES}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1',
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CLASS_ID = #{CLASS_ID}
</delete>
<!-- 修改 -->
<update id="editState" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="NEW_END_TIME != null and NEW_END_TIME != ''"><!-- 关键词检索 -->
END_TIME = #{NEW_END_TIME},
</if>
STATE = #{STATE},
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
CLASS_ID = #{CLASS_ID}
</update>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
EXAMINATION = #{EXAMINATION},
<if test="NAME != null and NAME != ''"><!-- 关键词检索 -->
NAME = #{NAME},
</if>
<if test="ADMIN_DIVISION != null and ADMIN_DIVISION != ''"><!-- 关键词检索 -->
ADMIN_DIVISION = #{ADMIN_DIVISION},
</if>
<if test="START_TIME != null and START_TIME != ''"><!-- 关键词检索 -->
START_TIME = #{START_TIME},
</if>
<if test="END_TIME != null and END_TIME != ''"><!-- 关键词检索 -->
END_TIME = #{END_TIME},
</if>
<if test="PRINCIPAL != null and PRINCIPAL != ''"><!-- 关键词检索 -->
PRINCIPAL = #{PRINCIPAL},
</if>
<if test="PRINCIPAL_PHONE != null and PRINCIPAL_PHONE != ''"><!-- 关键词检索 -->
PRINCIPAL_PHONE = #{PRINCIPAL_PHONE},
</if>
<if test="TRAINTYPE != null and TRAINTYPE != ''"><!-- 关键词检索 -->
TRAINTYPE = #{TRAINTYPE},
</if>
<if test="POSTTYPE != null and POSTTYPE != ''"><!-- 关键词检索 -->
POSTTYPE = #{POSTTYPE},
</if>
<if test="INDUSTRY_ALL_NAME != null and INDUSTRY_ALL_NAME != ''"><!-- 关键词检索 -->
INDUSTRY_ALL_NAME = #{INDUSTRY_ALL_NAME},
</if>
<if test="TRAINLEVEL != null and TRAINLEVEL != ''"><!-- 关键词检索 -->
TRAINLEVEL = #{TRAINLEVEL},
</if>
<if test="TRAINERS_NUMBER != null and TRAINERS_NUMBER != ''"><!-- 关键词检索 -->
TRAINERS_NUMBER = #{TRAINERS_NUMBER},
</if>
<if test="ISSUE != null and ISSUE != ''"><!-- 关键词检索 -->
ISSUE = #{ISSUE},
</if>
<if test="EXAM_TIME != null and EXAM_TIME != ''"><!-- 关键词检索 -->
EXAM_TIME = #{EXAM_TIME},
</if>
<if test="ISCHECKPERIOD != null and ISCHECKPERIOD != ''"><!-- 关键词检索 -->
ISCHECKPERIOD = #{ISCHECKPERIOD},
</if>
<if test="ISQUESTIONNAIRE != null and ISQUESTIONNAIRE != ''"><!-- 关键词检索 -->
ISQUESTIONNAIRE = #{ISQUESTIONNAIRE},
</if>
<if test="SAMPLINGNUMBER != null and SAMPLINGNUMBER != ''"><!-- 关键词检索 -->
SAMPLINGNUMBER = #{SAMPLINGNUMBER},
</if>
<if test="STATE != null and STATE != ''"><!-- 关键词检索 -->
STATE = #{STATE},
</if>
<if test="OPERATOR != null and OPERATOR != ''"><!-- 关键词检索 -->
OPERATOR = #{OPERATOR},
</if>
<if test="OPERATTIME != null and OPERATTIME != ''"><!-- 关键词检索 -->
OPERATTIME = #{OPERATTIME},
</if>
<if test="SURVEY_ID != null and SURVEY_ID != ''"><!-- 关键词检索 -->
SURVEY_ID = #{SURVEY_ID},
</if>
<if test="RECORDOR != null and RECORDOR != ''"><!-- 关键词检索 -->
RECORDOR = #{RECORDOR},
</if>
<if test="ASSESSOR != null and ASSESSOR != ''"><!-- 关键词检索 -->
ASSESSOR = #{ASSESSOR},
</if>
<if test="SAFETYDEPTOR != null and SAFETYDEPTOR != ''"><!-- 关键词检索 -->
SAFETYDEPTOR = #{SAFETYDEPTOR},
</if>
<if test="ISFACE != null and ISFACE != ''"><!-- 关键词检索 -->
ISFACE = #{ISFACE},
</if>
<if test="NUMBEROFEXAMS != null and NUMBEROFEXAMS != ''"><!-- 关键词检索 -->
NUMBEROFEXAMS = #{NUMBEROFEXAMS},
</if>
<if test="ISSTRENGTHEN != null and ISSTRENGTHEN != ''"><!-- 关键词检索 -->
ISSTRENGTHEN = #{ISSTRENGTHEN},
</if>
<if test="RELEASE_TYPE != null and RELEASE_TYPE != ''"><!-- 关键词检索 -->
RELEASE_TYPE = #{RELEASE_TYPE},
</if>
<if test="PERSONNEL_TYPES != null and PERSONNEL_TYPES != ''"><!-- 关键词检索 -->
PERSONNEL_TYPES = #{PERSONNEL_TYPES},
</if>
CLASS_ID = CLASS_ID
where
CLASS_ID = #{CLASS_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>,
p.NAME POSTTYPE_NAME,
t.NAME TRAININGTYPE_NAME,
bci.OFFICIAL_SEAL_PATH,
CONCAT_WS('-',IF( t.NAME= '',null ,t.NAME ),IF( lei.NAME= '',null , lei.NAME ),IF( p.NAME= '',null , p.NAME
),IF( tlt.NAME= '',null , tlt.NAME )) TYPENAME,
tlt.NAME TRAINLEVEL_NAME,
bci.CORP_NAME
from
<include refid="tableName"></include>
f
LEFT JOIN BUS_POST_TYPE p on p.POSTTYPE_ID = f.POSTTYPE
left join bus_corp_info bci on f.CORPINFO_ID = bci.CORPINFO_ID
LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = f.TRAINTYPE
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = f.TRAINLEVEL
LEFT JOIN bus_industry_type lei ON lei.INDUSTRYTYPE_ID = f.INDUSTRY_END_ID
WHERE
f.CLASS_ID = #{CLASS_ID}
</select>
<!-- 获取学员试卷相关信息 -->
<select id="getStuPaper" parameterType="pd" resultType="pd">
SELECT s.POST_ID,
pp.STAGEEXAMPAPERINPUT_ID,
c.NUMBEROFEXAMS
FROM BUS_STUDENT s
LEFT JOIN BUS_CLASS c ON c.CLASS_ID = s.CLASS_ID AND c.ISDELETE = '0'
LEFT JOIN BUS_POST_PAPER pp
ON pp.CLASS_ID = s.CLASS_ID AND pp.POST_ID = s.POST_ID AND pp.ISDELETE = '0'
WHERE s.STUDENT_ID = #{STUDENT_ID}
</select>
<!-- 通过ID获取数据 -->
<select id="findByIdForSign" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>,
us1.SIGN_PICTURE RECORDOR_SIGN, us2.SIGN_PICTURE ASSESSOR_SIGN, us3.SIGN_PICTURE SAFETYDEPTOR_SIGN
from
<include refid="tableName"></include>
f
left join SYS_USER_SIGN us1 ON us1.USERSIGNID = f.RECORDOR
LEFT JOIN SYS_USER_SIGN us2 ON us2.USERSIGNID = f.ASSESSOR
LEFT JOIN SYS_USER_SIGN us3 ON us3.USERSIGNID = f.SAFETYDEPTOR
WHERE
f.CLASS_ID = #{CLASS_ID}
LIMIT 1
</select>
<!-- 通过ID获取数据 -->
<select id="findByIdForArchives" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>,
p.NAME POSTTYPE_NAME,
t.NAME TRAININGTYPE_NAME,
iei.NAME INDUSTRY_END_NAME,
tlt.NAME TRAINLEVEL_NAME,
(select sum(cc.CLASSHOUR) from bus_class_curriculum cc where cc.CLASS_ID = f.CLASS_ID and cc.ISDELETE = '0')
SUMCLASSHOUR,
group_concat(distinct(cv.TEACHERNAME)) TEACHERS,
group_concat(distinct(cv.COURSEWARENAME)) COURSEWARENAMES,
group_concat(distinct(cu.CURRICULUMNAME)) CURRICULUMNAMES,
ci.CORP_NAME CORP_NAME
from
<include refid="tableName"></include>
f
LEFT JOIN BUS_POST_TYPE p on p.POSTTYPE_ID = f.POSTTYPE
LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = f.TRAINTYPE
LEFT JOIN BUS_INDUSTRY_TYPE iei on iei.INDUSTRYTYPE_ID = f.INDUSTRY_END_ID
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = f.TRAINLEVEL
LEFT JOIN BUS_CLASS_VIDEOCOURSEWARE cv ON cv.CLASS_ID = f.CLASS_ID AND cv.ISDELETE = '0'
LEFT JOIN bus_class_curriculum cu ON cu.CLASS_ID = f.CLASS_ID AND cu.ISDELETE = '0'
left join bus_corp_info ci on ci.CORPINFO_ID = f.CORPINFO_ID
WHERE
f.CLASS_ID = #{CLASS_ID}
GROUP BY f.CLASS_ID
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
SELECT
<include refid="Field"></include>,
p.NAME POSTTYPE_NAME,
t.NAME TRAININGTYPE_NAME,
tlt.NAME TRAINLEVEL_NAME,
sd1.NAME as PROVINCE_NAME,
sd2.NAME as CITY_NAME,
sd3.NAME as COUNTY_NAME,
sd4.NAME as VILLAGE_NAME,
sd5.NAME as STREET_NAME,
(SELECT COUNT(cp.POST_ID) FROM BUS_CLASS_POST cp WHERE cp.CLASS_ID = f.CLASS_ID AND cp.ISDELETE = '0' ) POSTNUM,
IFNULL(students.num ,0) AS STUDENT_NUM,
pa.num as PASS_NUM,
IFNULL(cvr.STUDYRECORDCNT, 0) AS STUDYRECORDCNT
FROM
<include refid="tableName"></include>
f
LEFT JOIN BUS_POST_TYPE p ON p.POSTTYPE_ID = f.POSTTYPE
LEFT JOIN BUS_TRAINING_TYPE t ON t.TRAININGTYPE_ID = f.TRAINTYPE
LEFT JOIN sys_dictionaries sd1 ON sd1.BIANMA = f.PROVINCE
LEFT JOIN sys_dictionaries sd2 ON sd2.BIANMA = f.CITY
LEFT JOIN sys_dictionaries sd3 ON sd3.BIANMA = f.COUNTY
LEFT JOIN sys_dictionaries sd4 ON sd4.BIANMA = f.VILLAGE
LEFT JOIN sys_dictionaries sd5 ON sd5.BIANMA = f.STREET
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt ON tlt.TRAINLEVEL_ID = f.TRAINLEVEL
LEFT JOIN(SELECT COUNT(1) num,s.CLASS_ID FROM BUS_STUDENT s WHERE s.ISDELETE = '0' GROUP BY s.CLASS_ID )
students ON students.CLASS_ID = f.CLASS_ID
LEFT JOIN(SELECT COUNT(1) num,s.CLASS_ID FROM BUS_STUDENT s
LEFT JOIN BUS_STAGESTUDENTRELATION rel on rel.STUDENT_ID = s.STUDENT_ID
WHERE s.ISDELETE = '0' AND ((rel.STAGEEXAMSTATE = 0 AND rel.STUDYSTATE=2) or rel.STAGEEXAMSTATE = 2 OR
rel.STUDYSTATE = 3) GROUP BY
s.CLASS_ID) pa
ON pa.CLASS_ID = f.CLASS_ID
LEFT JOIN ( SELECT COUNT( 1 ) STUDYRECORDCNT,CLASS_ID FROM bus_coursestudyvideorecord GROUP BY CLASS_ID) cvr ON cvr.CLASS_ID = f.CLASS_ID
WHERE f.ISDELETE = '0'
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and ( f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
<if test="pd.CODE != null and pd.CODE != ''"><!-- 关键词检索 -->
and ( f.CODE LIKE CONCAT(CONCAT('%', #{pd.CODE}),'%') )
</if>
<if test="pd.PRINCIPAL != null and pd.PRINCIPAL != ''"><!-- 关键词检索 -->
and ( f.PRINCIPAL LIKE CONCAT(CONCAT('%', #{pd.PRINCIPAL}),'%') )
</if>
<if test="pd.PRINCIPAL_PHONE != null and pd.PRINCIPAL_PHONE != ''"><!-- 关键词检索 -->
and ( f.PRINCIPAL_PHONE LIKE CONCAT(CONCAT('%', #{pd.PRINCIPAL_PHONE}),'%') )
</if>
<if test="pd.TRAINTYPE != null and pd.TRAINTYPE != ''"><!-- 培训类型 -->
and f.TRAINTYPE = #{pd.TRAINTYPE}
</if>
<if test="pd.POSTTYPE != null and pd.POSTTYPE != ''"><!-- 岗位类型 -->
and f.POSTTYPE = #{pd.POSTTYPE}
</if>
<if test="pd.INDUSTRY != null and pd.INDUSTRY != ''"><!-- 培训行业类型 -->
and f.INDUSTRY_ALL_TYPE LIKE CONCAT(CONCAT('%', #{pd.INDUSTRY}),'%')
</if>
<if test="pd.TRAINLEVEL != null and pd.TRAINLEVEL != ''"><!-- 等级类型 -->
and f.TRAINLEVEL = #{pd.TRAINLEVEL}
</if>
<if test="pd.STARTTIME != null and pd.STARTTIME != ''"><!-- 关键词检索 -->
and f.START_TIME &gt;= #{pd.STARTTIME}
</if>
<if test="pd.ENDTIME != null and pd.ENDTIME != ''">
and f.START_TIME &lt;= #{pd.ENDTIME}
</if>
<if test="pd.OVERSTARTTIME != null and pd.OVERSTARTTIME != ''"><!-- 关键词检索 -->
and f.END_TIME &gt;= #{pd.OVERSTARTTIME}
</if>
<if test="pd.OVERENDTIME != null and pd.OVERENDTIME != ''">
and f.END_TIME &lt;= #{pd.OVERENDTIME}
</if>
<if test="pd.POSSESSION != null and pd.POSSESSION != '' and pd.POSSESSIONLEVEL != null and pd.POSSESSIONLEVEL != '' ">
<choose>
<when test='pd.POSSESSIONLEVEL=="1"'>
and f.PROVINCE = #{pd.POSSESSION}
</when>
<when test='pd.POSSESSIONLEVEL=="2"'>
and f.CITY = #{pd.POSSESSION}
</when>
<when test='pd.POSSESSIONLEVEL=="3"'>
and f.COUNTY = #{pd.POSSESSION}
</when>
<when test='pd.POSSESSIONLEVEL=="4"'>
and f.VILLAGE = #{pd.POSSESSION}
</when>
<when test='pd.POSSESSIONLEVEL=="5"'>
and f.STREET = #{pd.POSSESSION}
</when>
</choose>
</if>
<if test="pd.STATE != null and pd.STATE != ''"><!-- 培训行业类型 -->
and f.STATE = #{pd.STATE}
</if>
<if test="pd.PERSONNELTYPE != null and pd.PERSONNELTYPE != ''"><!-- 培训行业类型 -->
and f.STATE !='1'
</if>
<if test="pd.ORGCOUNT != null and pd.ORGCOUNT != ''"><!-- 培训行业类型 -->
and f.STATE != #{pd.ORGCOUNT}
</if>
<if test="pd.SURVEY_ID != null and pd.SURVEY_ID != ''"><!-- 培训行业类型 -->
and f.SURVEY_ID = #{pd.SURVEY_ID}
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''"><!-- 培训行业类型 -->
AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
ORDER BY
f.CREATTIME DESC
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
WHERE f.ISDELETE = '0'
<if test="STATEARRAY != null and STATEARRAY != ''">
and f.STATE in
<foreach item="item" index="index" collection="STATEARRAY" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
<!-- 列表(全部)定时器使用 -->
<select id="listAllScheduled" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
WHERE f.ISDELETE = '0'
<if test="STATEARRAY != null and STATEARRAY != ''">
and f.STATE in
<foreach item="item" index="index" collection="STATEARRAY" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY
f.CLASS_ID
</select>
<select id="findClassInfo" resultType="com.zcloud.entity.PageData">
select a.NAME as name, a.START_TIME as date, (select count(1) from bus_student b where b.CLASS_ID = a.CLASS_ID) as studentCount
from bus_class a
where a.CORPINFO_ID = #{CORPINFO_ID} and a.STATE != '1'
order by str_to_date(a.START_TIME, '%Y-%m-%d %H:%i:%s') desc
limit 0, 6;
</select>
<select id="findByTraining" resultType="com.zcloud.entity.PageData">
select count(1) as value, a.TRAINTYPE, (select b.NAME from bus_training_type b where b.TRAININGTYPE_ID = a.TRAINTYPE) as name
from bus_class a
where a.TRAINTYPE in ('9cbe83925bbb4d84bc057b5eb5607a53'
, 'bd73ea91fdcd4ef38ecd6f45a42f26af')
and a.CORPINFO_ID = #{CORPINFO_ID}
group by TRAINTYPE;
</select>
<select id="countByCorp" resultType="java.lang.Integer">
select count(1) from bus_class f
LEFT JOIN BUS_ENTERPRISE e ON e.ENTERPRISE_ID = f.ENTERPRISE_ID
where f.ISDELETE = 0 and f.STATE != '1'
<if test="AUTHORITY != null and AUTHORITY != ''"><!-- 培训类型 -->
AND e.CREATOR = #{AUTHORITY}
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ENTERPRISE_ID != null and ENTERPRISE_ID != ''">
and f.ENTERPRISE_ID = #{ENTERPRISE_ID}
</if>
<if test="USER_ID != null and USER_ID != ''">
and exists(select 1 from bus_student s where s.ISDELETE = 0 and s.CLASS_ID = f.CLASS_ID and s.USER_ID =
#{USER_ID})
</if>
<if test="YEAR != null and YEAR != ''">
and YEAR(f.CREATTIME)=#{YEAR}
</if>
<if test="ACTIVATE != null and ACTIVATE != ''">
and f.STATE = 5
</if>
<if test="FINISH != null and FINISH != ''">
and f.STATE = 6
</if>
</select>
<select id="getDateDashboardList" resultType="com.zcloud.entity.PageData">
select count(1) as number ,DATE_FORMAT(a.CREATTIME,'%Y-%m') as CREATTIME
from bus_class a
where a.ISDELETE = 0 and a.STATE != '1'
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and a.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ENTERPRISE_ID != null and ENTERPRISE_ID != ''">
and a.ENTERPRISE_ID = #{ENTERPRISE_ID}
</if>
GROUP by DATE_FORMAT(a.CREATTIME,'%Y-%m-%d');
</select>
<select id="getMonthDashboardList" resultType="com.zcloud.entity.PageData">
select count(1) as number ,DATE_FORMAT(a.CREATTIME,'%Y-%m') as CREATTIME
from bus_class a LEFT JOIN bus_class c on a.CLASS_ID = c.CLASS_ID
where a.ISDELETE = 0 and c.STATE != '1'
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and a.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ENTERPRISE_ID != null and ENTERPRISE_ID != ''">
and a.ENTERPRISE_ID = #{ENTERPRISE_ID}
</if>
GROUP by DATE_FORMAT(a.CREATTIME,'%Y-%m');
</select>
<select id="getClassNum" resultType="java.lang.Integer" parameterType="pd">
select count(*)
from
bus_class c
where c.ISDELETE = 0 and c.STATE != '1'
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and c.CORPINFO_ID = #{CORPINFO_ID}
</if>
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
CLASS_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 修改 -->
<update id="editStateByDate" parameterType="pd">
update
<include refid="tableName"></include>
set
STATE = #{STATE},
OPERATOR = #{OPERATOR},
OPERATTIME = #{OPERATTIME}
where
ISDELETE = '0'
<if test="STATE != null and STATE != ''"><!-- 培训行业类型 -->
<choose>
<when test='STATE == "3"'>
and DATE_FORMAT( NOW(), '%Y-%m-%d' ) &lt; DATE_FORMAT( APPLY_DEADLINE, '%Y-%m-%d' )
and STATE &lt; 3
</when>
<when test='STATE == "4"'>
and DATE_FORMAT( NOW(), '%Y-%m-%d' ) &lt; DATE_FORMAT( APPLY_DEADLINE, '%Y-%m-%d' )
and STATE &lt; 3
</when>
</choose>
</if>
</update>
<update id="editNumberofexams">
UPDATE <include refid="tableName"></include> SET NUMBEROFEXAMS = #{NUMBEROFEXAMS} WHERE CLASS_ID = #{CLASS_ID}
</update>
<update id="updateStagestudentrelation">
update bus_stagestudentrelation
set STAGEEXAMSTATE = #{STAGEEXAMSTATE},
STUDYSTATE = #{STUDYSTATE}
where STAGESTUDENTRELATION_ID = #{STAGESTUDENTRELATION_ID}
</update>
<select id="sumClasshour" resultType="java.lang.Double">
select
IFNULL(SUM(ch.SUM_CLASSHOUR),0) SUM_CLASSHOUR
from
<include refid="tableName"></include>
c
LEFT JOIN
BUS_STUDENT s ON c.CLASS_ID = s.CLASS_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
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
BUS_ENTERPRISE e on e.ENTERPRISE_ID = c.ENTERPRISE_ID
WHERE s.ISDELETE = 0
AND c.ISDELETE = 0
AND c.STATE > 1
AND s.ENTERPRISE_ID = #{ENTERPRISE_ID}
<if test="ACTIVATE != null and ACTIVATE != ''">
AND c.STATE = 5
</if>
<if test="FINISH != null and FINISH != ''">
AND c.STATE = 6
</if>
</select>
<select id="getStuInfo" parameterType="pd" resultType="pd">
select c.*,
s.NAME STUNAME,
IFNULL(sum(ch.SUM_CLASSHOUR), 0) SUM_CLASSHOUR,
IFNULL(sum(sr.COMPLETE_CLASSHOUR), 0) COMPLETE_CLASSHOUR
from BUS_CLASS c
LEFT JOIN
BUS_STUDENT s ON c.CLASS_ID = s.CLASS_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
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
BUS_ENTERPRISE e on e.ENTERPRISE_ID = c.ENTERPRISE_ID
LEFT JOIN
BUS_STAGESTUDENTRELATION sr ON sr.STUDENT_ID = s.STUDENT_ID
WHERE s.ISDELETE = 0
AND c.ISDELETE = 0
AND c.STATE > 1
AND s.ENTERPRISE_ID = #{ENTERPRISE_ID}
GROUP BY s.USER_ID
ORDER BY SUM_CLASSHOUR desc
</select>
<select id="getClassAllByCorp" resultType="com.zcloud.entity.PageData">
SELECT
c.CLASS_ID,
c.`NAME`
from bus_class c
WHERE c.STATE > 1
and c.ISDELETE = 0
and c.CORPINFO_ID = #{CORPINFO_ID}
<if test="TRAINTYPE_ID != NULL and TRAINTYPE_ID != ''">
and c.TRAINTYPE != #{TRAINTYPE_ID}
</if>
ORDER BY c.`NAME`
</select>
<select id="listStrengthenByCorpNamelistPage" parameterType="page" resultType="pd">
SELECT
<include refid="Field"></include>,
count(bt.STUDENT_ID) ALLSTUDENTCOUNT,
count(bss.STUDENT_ID) PASSSTUDENTCOUNT,
bc.CORP_NAME,
bc.CORP_TYPE_NAME,
bc.CONTACTS,
bc.CONTACTS_PHONE
FROM
<include refid="tableName"></include>
f
LEFT JOIN ( SELECT * FROM bus_corp_info WHERE CORPINFO_ID = #{pd.CORPINFO_ID} AND ISDELETE = 0) bc ON bc.CORPINFO_ID =
f.CORPINFO_ID
left join bus_student bt on bt.CLASS_ID = f.CLASS_ID and bt.ISDELETE = '0'
left join ( select * from bus_strengthenstudentrelation where STRENGTHENEXAMSTATE = '3' and ISDELETE = 0) bss on
bss.STUDENT_ID = bt.STUDENT_ID
left join (select * from bus_stagestudentrelation where STAGEEXAMSTATE = '3' and ISDELETE = 0) bsr on bsr.STUDENT_ID =
bt.STUDENT_ID
left join bus_stageexampaper_input bsi on bsi.STAGEEXAMPAPERINPUT_ID = bsr.STAGEEXAMPAPER_ID
WHERE
( f.ISSTRENGTHEN = '1'
OR f.ISSTRENGTHEN = '2' )
AND f.ISDELETE = 0
and bc.CORPINFO_ID = #{pd.CORPINFO_ID}
and CEILING(bsr.STAGEEXAMSCORE) != bsi.EXAMSCORE
</select>
<select id="listStrengthenClassByIdlistPage" parameterType="page" resultType="pd">
SELECT
<include refid="Field"></include>,
btt.`NAME` TRAINTYPENAME,
bpt.`NAME` POSTTYPENAME,
count(bs.STUDENT_ID) ALLSTUDENTCOUNT,
count(bst.STUDENT_ID) PASSSTUDENTCOUNT
FROM
<include refid="tableName"></include>
f
left join bus_training_type btt on btt.TRAININGTYPE_ID = f.TRAINTYPE
left join bus_post_type bpt on bpt.POSTTYPE_ID = f.POSTTYPE
LEFT join bus_student bs on bs.CLASS_ID = f.CLASS_ID and bs.ISDELETE ='0'
left join (select * from bus_strengthenstudentrelation where STRENGTHENEXAMSTATE = '3' and isdelete = 0) bst on
bst.STUDENT_ID = bs.STUDENT_ID
left join (select * from bus_stagestudentrelation where STAGEEXAMSTATE = '3' and isdelete = 0) bsr on bsr.STUDENT_ID =
bs.STUDENT_ID
left join bus_stageexampaper_input bsi on bsi.STAGEEXAMPAPERINPUT_ID = bsr.STAGEEXAMPAPER_ID
WHERE
f.CORPINFO_ID = #{pd.CORPINFO_ID}
AND f.ISDELETE = 0
and ( f.ISSTRENGTHEN = '1'
OR f.ISSTRENGTHEN = '2' )
and CEILING(bsr.STAGEEXAMSCORE) != bsi.EXAMSCORE
<if test="pd.NAME != null and pd.NAME != ''">
and f.NAME LIKE CONCAT(CONCAT('%', #{pd.NAME}),'%')
</if>
<if test="pd.YEAR != null and pd.YEAR != ''">
and f.CREATTIME LIKE CONCAT(#{pd.YEAR},'%')
</if>
GROUP BY f.CLASS_ID
ORDER BY f.NAME
</select>
<select id="listStrengthenStudentByIdlistPage" parameterType="page" resultType="pd">
SELECT
<include refid="Field"></include>,
bs.STUDENT_ID,
bs.name STUDENTNAME,
bs.USER_ID_CARD USERIDCARD,
bs.PHONE,
bst.STRENGTHENEXAMSCORE,
bst.STRENGTHENEXAMSTATE
FROM
<include refid="tableName"></include>
f
LEFT JOIN bus_student bs ON bs.CLASS_ID = f.CLASS_ID and bs.ISDELETE ='0'
LEFT JOIN bus_strengthenstudentrelation bst ON bst.STUDENT_ID = bs.STUDENT_ID and bst.isdelete = 0
left join (select * from bus_stagestudentrelation where STAGEEXAMSTATE = '3' and isdelete = 0) bsr on bsr.STUDENT_ID =
bs.STUDENT_ID
left join bus_stageexampaper_input bsi on bsi.STAGEEXAMPAPERINPUT_ID = bsr.STAGEEXAMPAPER_ID
WHERE
f.class_id = #{pd.CLASS_ID}
and f.ISDELETE = 0
and ( f.ISSTRENGTHEN = '1'
OR f.ISSTRENGTHEN = '2' )
and CEILING(bsr.STAGEEXAMSCORE) != bsi.EXAMSCORE
<if test="pd.NAME != null and pd.NAME != ''">
and bs.NAME LIKE CONCAT(CONCAT('%', #{pd.NAME}),'%')
</if>
<if test="pd.YEAR != null and pd.YEAR != ''">
and f.CREATTIME LIKE CONCAT(#{pd.YEAR},'%')
</if>
group by bs.STUDENT_ID
</select>
<select id="listallstrengthenlistlistPage" parameterType="page" resultType="pd">
SELECT bci.*,
count(DISTINCT bst.STUDENT_ID)
FROM bus_class f
LEFT JOIN bus_corp_enterprise_contact bce ON bce.CORPINFO_ID = f.CORPINFO_ID
LEFT JOIN bus_corp_info bci ON bci.CORPINFO_ID = bce.CORPINFO_ID
left join bus_student bst on bst.CLASS_ID = f.CLASS_ID and bst.ISDELETE ='0'
left join (select * from bus_stagestudentrelation where STAGEEXAMSTATE = '3' and isdelete = 0) bsr
on bsr.STUDENT_ID = bst.STUDENT_ID
left join bus_stageexampaper_input bsi on bsi.STAGEEXAMPAPERINPUT_ID = bsr.STAGEEXAMPAPER_ID
WHERE ( f.ISSTRENGTHEN = '1'
OR f.ISSTRENGTHEN = '2' )
AND f.ISDELETE = 0
and bsr.STAGEEXAMSCORE != bsi.EXAMSCORE
GROUP BY
bci.CORPINFO_ID
</select>
<select id="listStudentStrengthenbyIdlistPage" resultType="com.zcloud.entity.PageData">
SELECT
f.*,
bsc.STRENGTHENEXAMSTATE,
bsc.STRENGTHENEXAMSCORE,
bc.`NAME` CLASS_NAME,
bc.INDUSTRY_ALL_NAME,
bc.CODE,
btt.`NAME` TRAINTYPENAME,
bpt.`NAME` POSTTYPENAME
FROM
bus_student f
left join bus_strengthenstudentrelation bsc on bsc.STUDENT_ID = f.STUDENT_ID and bsc.isdelete = 0
left join bus_class bc on bc.CLASS_ID = f.CLASS_ID
left join bus_training_type btt on btt.TRAININGTYPE_ID = bc.TRAINTYPE
left join bus_post_type bpt on bpt.POSTTYPE_ID = bc.POSTTYPE
left join bus_stagestudentrelation bsr on bsr.CLASS_ID = bc.CLASS_ID and bsr.ISDELETE = 0
left join bus_stageexampaper_input bsi on bsi.STAGEEXAMPAPERINPUT_ID = bsr.STAGEEXAMPAPER_ID
and bsr.STAGEEXAMSTATE = '3'
and bsr.STAGEEXAMSCORE != bsi.EXAMSCORE
WHERE
f.USER_ID = #{pd.USER_ID}
AND f.ISDELETE = 0
AND ( bc.isstrengthen = 1
OR bc.isstrengthen = 2 )
<if test="pd.YEAR != null and pd.YEAR != ''">
and bc.CREATTIME LIKE CONCAT(#{pd.YEAR},'%')
</if>
group by f.STUDENT_ID
order by bc.NAME
</select>
<select id="listStagestudentrelationByClassId" resultType="com.zcloud.entity.PageData">
select STAGESTUDENTRELATION_ID,
STAGEEXAMSTATE,
STUDYSTATE,
STUDENT_ID
from bus_stagestudentrelation f
where f.CLASS_ID = #{CLASS_ID}
and f.ISDELETE = '0'
</select>
<!--效果评估表-->
<select id="getEvaluation" resultType="com.zcloud.entity.PageData">
select
f.NAME as CLASS_NAME,
f.START_TIME,
f.END_TIME,
bci.CORP_NAME,
(select count(*)
from bus_stagestudentrelation
where (STAGEEXAMSTATE = '2' or STAGEEXAMSTATE = '3')
and CLASS_ID = f.CLASS_ID
and ISDELETE = 0) as EXMA_COUNT,
(select count(*)
from bus_stagestudentrelation
where STAGEEXAMSTATE = '3'
and CLASS_ID = f.CLASS_ID
and ISDELETE = 0) as PASS_COUNT,
(select count(*)
from bus_stagestudentrelation
where STAGEEXAMSTATE = '2'
and CLASS_ID = f.CLASS_ID
and ISDELETE = 0) as NO_PASS_COUNT,
(select count(*)
from bus_strengthenstudentrelation
where CLASS_ID = f.CLASS_ID
and ISDELETE = 0) as STR_EXMA_COUNT,
(select count(*)
from bus_strengthenstudentrelation
where STRENGTHENEXAMSTATE = '3'
and CLASS_ID = f.CLASS_ID
and ISDELETE = 0) as STR_PASS_COUNT
from bus_class f
LEFT JOIN BUS_CORP_INFO bci on bci.CORPINFO_ID = f.CORPINFO_ID
where f.CLASS_ID = #{CLASS_ID}
</select>
<select id="getStrengthenStudent" resultType="com.zcloud.entity.PageData">
select
s.NAME,
s.SEX,
s.USER_ID_CARD,
s.PHONE,
s.STUDENT_ID,
f.STRENGTHENEXAMSCORE
from
bus_strengthenstudentrelation f
left join bus_student s on s.STUDENT_ID = f.STUDENT_ID
where
f.CLASS_ID = #{CLASS_ID}
and f.ISDELETE = 0
<if test="TYPE != null and TYPE != '' and TYPE == 'NO_PASS'">
and f.STRENGTHENEXAMSTATE != 3
</if>
<if test="TYPE != null and TYPE != '' and TYPE == 'PASS'">
and f.STRENGTHENEXAMSTATE = 3
</if>
</select>
<!-- 培训类型是职业健康的列表 -->
<select id="classForHealthlistPage" parameterType="page" resultType="pd">
SELECT
<include refid="Field"></include>,
p.NAME POSTTYPE_NAME,
t.NAME TRAININGTYPE_NAME,
IFNULL(students.num ,0) AS STUDENT_NUM
FROM
<include refid="tableName"></include>
f
LEFT JOIN BUS_POST_TYPE p ON p.POSTTYPE_ID = f.POSTTYPE
LEFT JOIN BUS_TRAINING_TYPE t ON t.TRAININGTYPE_ID = f.TRAINTYPE
LEFT JOIN(SELECT COUNT(1) num,s.CLASS_ID FROM BUS_STUDENT s WHERE s.ISDELETE = '0' GROUP BY s.CLASS_ID ) students ON students.CLASS_ID = f.CLASS_ID
WHERE f.ISDELETE = '0'
AND f.STATE > 1
<if test="pd.TRAINTYPE_ID != null and pd.TRAINTYPE_ID != ''"><!-- 培训类型 -->
AND f.TRAINTYPE = #{pd.TRAINTYPE_ID}
</if>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and ( f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') )
</if>
<if test="pd.CODE != null and pd.CODE != ''"><!-- 关键词检索 -->
and ( f.CODE LIKE CONCAT(CONCAT('%', #{pd.CODE}),'%') )
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''"><!-- 机构 -->
AND f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
ORDER BY f.CREATTIME DESC
</select>
</mapper>