<?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.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 >= #{pd.STARTTIME} </if> <if test="pd.ENDTIME != null and pd.ENDTIME != ''"> and f.START_TIME <= #{pd.ENDTIME} </if> <if test="pd.OVERSTARTTIME != null and pd.OVERSTARTTIME != ''"><!-- 关键词检索 --> and f.END_TIME >= #{pd.OVERSTARTTIME} </if> <if test="pd.OVERENDTIME != null and pd.OVERENDTIME != ''"> and f.END_TIME <= #{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 left join bus_enterprise e on c.ENTERPRISE_ID = e.ENTERPRISE_ID where c.ISDELETE = 0 and c.STATE != '1' <if test="USER_ID != null and USER_ID != ''"><!-- 培训类型 --> AND e.CREATOR = #{USER_ID} </if> <if test="CORPINFO_ID != null and CORPINFO_ID != ''"> and c.CORPINFO_ID = #{CORPINFO_ID} </if> <if test="ENTERPRISE_ID != null and ENTERPRISE_ID != ''"> and c.ENTERPRISE_ID = #{ENTERPRISE_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' ) < DATE_FORMAT( APPLY_DEADLINE, '%Y-%m-%d' ) and STATE < 3 </when> <when test='STATE == "4"'> and DATE_FORMAT( NOW(), '%Y-%m-%d' ) < DATE_FORMAT( APPLY_DEADLINE, '%Y-%m-%d' ) and STATE < 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.STUDENTNAME != null and pd.STUDENTNAME != ''"> and bs.NAME LIKE CONCAT(CONCAT('%', #{pd.STUDENTNAME}),'%') </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>