first commit

This commit is contained in:
8324144
2026-05-18 14:39:26 +08:00
commit 3e9264ebc6
109 changed files with 13139 additions and 0 deletions

View File

@@ -0,0 +1,382 @@
<?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="cn.wepact.dfm.training.mapper.SyncTaskLogMapper">
<!-- 结果映射字段到Java对象属性的映射 -->
<resultMap id="BaseResultMap" type="cn.wepact.dfm.training.dto.entity.SyncTaskLog">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="sync_time" jdbcType="TIMESTAMP" property="syncTime"/>
<result column="offset" jdbcType="INTEGER" property="offset"/>
<result column="sync_limit" jdbcType="INTEGER" property="limit"/>
<result column="search_start_time" jdbcType="TIMESTAMP" property="searchStartTime"/>
<result column="search_end_time" jdbcType="TIMESTAMP" property="searchEndTime"/>
<result column="status" jdbcType="VARCHAR" property="status"/>
<result column="task_id" jdbcType="BIGINT" property="taskId"/>
<result column="org_id" jdbcType="BIGINT" property="orgId"/>
<result column="project_id" jdbcType="BIGINT" property="projectId"/>
<result column="main_project_id" jdbcType="BIGINT" property="mainProjectId"/>
<result column="stu_user_id" jdbcType="BIGINT" property="stuUserId"/>
<result column="third_user_id" jdbcType="BIGINT" property="thirdUserId"/>
<result column="formal" jdbcType="BOOLEAN" property="formal"/>
<result column="period_id" jdbcType="BIGINT" property="periodId"/>
<result column="result_repeat_flag" jdbcType="BOOLEAN" property="resultRepeatFlag"/>
<result column="sub_result_id" jdbcType="BIGINT" property="subResultId"/>
<result column="sub_task_id" jdbcType="BIGINT" property="subTaskId"/>
<result column="repeat_count" jdbcType="INTEGER" property="repeatCount"/>
<result column="sub_task_result_id" jdbcType="BIGINT" property="subTaskResultId"/>
<result column="order_index" jdbcType="INTEGER" property="orderIndex"/>
<result column="task_status" jdbcType="VARCHAR" property="taskStatus"/>
<result column="task_required" jdbcType="BOOLEAN" property="taskRequired"/>
<result column="task_schedule" jdbcType="INTEGER" property="taskSchedule"/>
<result column="task_manual_completed" jdbcType="BOOLEAN" property="taskManualCompleted"/>
<result column="task_start_time" jdbcType="TIMESTAMP" property="taskStartTime"/>
<result column="task_completed_time" jdbcType="TIMESTAMP" property="taskCompletedTime"/>
<result column="task_duration" jdbcType="INTEGER" property="taskDuration"/>
<result column="is_rated" jdbcType="BOOLEAN" property="isRated"/>
<result column="task_target_scores" jdbcType="INTEGER" property="taskTargetScores"/>
<result column="task_passed" jdbcType="BOOLEAN" property="taskPassed"/>
<result column="task_is_excellent" jdbcType="BOOLEAN" property="taskIsExcellent"/>
<result column="task_delay" jdbcType="INTEGER" property="taskDelay"/>
<result column="task_sign_status" jdbcType="BOOLEAN" property="taskSignStatus"/>
<result column="task_signout_status" jdbcType="BOOLEAN" property="taskSignoutStatus"/>
<result column="task_sign_time" jdbcType="TIMESTAMP" property="taskSignTime"/>
<result column="task_signout_time" jdbcType="TIMESTAMP" property="taskSignoutTime"/>
<result column="task_sign_address" jdbcType="VARCHAR" property="taskSignAddress"/>
<result column="task_signout_address" jdbcType="VARCHAR" property="taskSignoutAddress"/>
<result column="task_answer" jdbcType="VARCHAR" property="taskAnswer"/>
<result column="task_get_scores" jdbcType="INTEGER" property="taskGetScores"/>
<result column="task_get_points" jdbcType="INTEGER" property="taskGetPoints"/>
<result column="task_get_study_hours" jdbcType="INTEGER" property="taskGetStudyHours"/>
<result column="stu_deleted" jdbcType="BOOLEAN" property="stuDeleted"/>
<result column="task_result_deleted" jdbcType="BOOLEAN" property="taskResultDeleted"/>
<result column="task_has_tutor" jdbcType="BOOLEAN" property="taskHasTutor"/>
<result column="ojt_teacher_id" jdbcType="BIGINT" property="ojtTeacherId"/>
<result column="ojt_teacher_fullname" jdbcType="VARCHAR" property="ojtTeacherFullname"/>
<result column="ojt_study_status" jdbcType="VARCHAR" property="ojtStudyStatus"/>
<result column="ojt_out_time" jdbcType="TIMESTAMP" property="ojtOutTime"/>
<result column="ojt_in_time" jdbcType="TIMESTAMP" property="ojtInTime"/>
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt"/>
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt"/>
<!-- New mappings -->
<result column="tr_create_user_id" jdbcType="VARCHAR" property="trCreateUserId"/>
<result column="tr_update_user_id" jdbcType="VARCHAR" property="trUpdateUserId"/>
<result column="tr_update_time" jdbcType="TIMESTAMP" property="trUpdateTime"/>
<result column="task_type" jdbcType="INTEGER" property="taskType"/>
<result column="tr_create_time" jdbcType="TIMESTAMP" property="trCreateTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="db_create_time" jdbcType="TIMESTAMP" property="dbCreateTime"/>
<result column="db_update_time" jdbcType="TIMESTAMP" property="dbUpdateTime"/>
</resultMap>
<!-- 基础列清单 -->
<sql id="Base_Column_List">
id, sync_time, offset, sync_limit, search_start_time, search_end_time, status, task_id,
org_id, project_id, main_project_id, stu_user_id, third_user_id, formal, period_id, result_repeat_flag,
sub_result_id, sub_task_id, repeat_count, sub_task_result_id, order_index, task_status, task_required,
task_schedule, task_manual_completed, task_start_time, task_completed_time, task_duration, is_rated,
task_target_scores, task_passed, task_is_excellent, task_delay, task_sign_status, task_signout_status,
task_sign_time, task_signout_time, task_sign_address, task_signout_address, task_answer, task_get_scores,
task_get_points, task_get_study_hours, stu_deleted, task_result_deleted, task_has_tutor, ojt_teacher_id,
ojt_teacher_fullname, ojt_study_status, ojt_out_time, ojt_in_time, created_at, updated_at,
tr_create_user_id, tr_update_user_id, tr_update_time, task_type, tr_create_time, update_time, db_create_time, db_update_time
</sql>
<!-- 插入同步任务日志 -->
<insert id="insert" parameterType="cn.wepact.dfm.training.dto.entity.SyncTaskLog">
INSERT INTO sync_task_log (
sync_time,
offset,
sync_limit,
search_start_time,
search_end_time,
status,
task_id,
org_id,
project_id,
main_project_id,
stu_user_id,
third_user_id,
formal,
period_id,
result_repeat_flag,
sub_result_id,
sub_task_id,
repeat_count,
sub_task_result_id,
order_index,
task_status,
task_required,
task_schedule,
task_manual_completed,
task_start_time,
task_completed_time,
task_duration,
is_rated,
task_target_scores,
task_passed,
task_is_excellent,
task_delay,
task_sign_status,
task_signout_status,
task_sign_time,
task_signout_time,
task_sign_address,
task_signout_address,
task_answer,
task_get_scores,
task_get_points,
task_get_study_hours,
stu_deleted,
task_result_deleted,
task_has_tutor,
ojt_teacher_id,
ojt_teacher_fullname,
ojt_study_status,
ojt_out_time,
ojt_in_time,
created_at,
updated_at,
tr_create_user_id,
tr_update_user_id,
tr_update_time,
task_type,
tr_create_time,
update_time,
db_create_time,
db_update_time
)
VALUES (
#{syncTime},
#{offset},
#{limit},
#{searchStartTime},
#{searchEndTime},
#{status},
#{taskId},
#{orgId},
#{projectId},
#{mainProjectId},
#{stuUserId},
#{thirdUserId},
#{formal},
#{periodId},
#{resultRepeatFlag},
#{subResultId},
#{subTaskId},
#{repeatCount},
#{subTaskResultId},
#{orderIndex},
#{taskStatus},
#{taskRequired},
#{taskSchedule},
#{taskManualCompleted},
#{taskStartTime},
#{taskCompletedTime},
#{taskDuration},
#{isRated},
#{taskTargetScores},
#{taskPassed},
#{taskIsExcellent},
#{taskDelay},
#{taskSignStatus},
#{taskSignoutStatus},
#{taskSignTime},
#{taskSignoutTime},
#{taskSignAddress},
#{taskSignoutAddress},
#{taskAnswer},
#{taskGetScores},
#{taskGetPoints},
#{taskGetStudyHours},
#{stuDeleted},
#{taskResultDeleted},
#{taskHasTutor},
#{ojtTeacherId},
#{ojtTeacherFullname},
#{ojtStudyStatus},
#{ojtOutTime},
#{ojtInTime},
#{createdAt},
#{updatedAt},
#{trCreateUserId},
#{trUpdateUserId},
#{trUpdateTime},
#{taskType},
#{trCreateTime},
#{updateTime},
#{dbCreateTime},
#{dbUpdateTime}
)
</insert>
<!-- 根据任务ID查找同步任务日志 -->
<select id="findByTaskId" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM sync_task_log
WHERE task_id = #{taskId}
LIMIT 1
</select>
<!-- 获取最后一次同步时间 -->
<select id="getLastSyncTime" resultType="java.util.Date">
SELECT sync_time
FROM sync_task_log
ORDER BY sync_time DESC
LIMIT 1
</select>
<!-- 更新最后同步时间 -->
<update id="updateLastSyncTime" parameterType="java.util.Date">
UPDATE sync_task_log
SET sync_time = #{syncTime}
</update>
<update id="update" parameterType="cn.wepact.dfm.training.dto.entity.SyncTaskLog">
UPDATE sync_task_log
SET
sync_time = #{syncTime},
offset = #{offset},
sync_limit = #{limit},
search_start_time = #{searchStartTime},
search_end_time = #{searchEndTime},
status = #{status},
task_id = #{taskId},
org_id = #{orgId},
project_id = #{projectId},
main_project_id = #{mainProjectId},
stu_user_id = #{stuUserId},
third_user_id = #{thirdUserId},
formal = #{formal},
period_id = #{periodId},
result_repeat_flag = #{resultRepeatFlag},
sub_result_id = #{subResultId},
sub_task_id = #{subTaskId},
repeat_count = #{repeatCount},
sub_task_result_id = #{subTaskResultId},
order_index = #{orderIndex},
task_status = #{taskStatus},
task_required = #{taskRequired},
task_manual_completed = #{taskManualCompleted},
task_start_time = #{taskStartTime},
task_completed_time = #{taskCompletedTime},
task_duration = #{taskDuration},
is_rated = #{isRated},
task_target_scores = #{taskTargetScores},
task_passed = #{taskPassed},
task_is_excellent = #{taskIsExcellent},
task_delay = #{taskDelay},
task_sign_status = #{taskSignStatus},
task_signout_status = #{taskSignoutStatus},
task_sign_time = #{taskSignTime},
task_signout_time = #{taskSignoutTime},
task_sign_address = #{taskSignAddress},
task_signout_address = #{taskSignoutAddress},
task_answer = #{taskAnswer},
task_get_scores = #{taskGetScores},
task_get_points = #{taskGetPoints},
task_get_study_hours = #{taskGetStudyHours},
stu_deleted = #{stuDeleted},
task_result_deleted = #{taskResultDeleted},
task_has_tutor = #{taskHasTutor},
ojt_teacher_id = #{ojtTeacherId},
ojt_teacher_fullname = #{ojtTeacherFullname},
ojt_study_status = #{ojtStudyStatus},
ojt_out_time = #{ojtOutTime},
ojt_in_time = #{ojtInTime},
created_at = #{createdAt},
updated_at = #{updatedAt},
tr_create_user_id = #{trCreateUserId},
tr_update_user_id = #{trUpdateUserId},
tr_update_time = #{trUpdateTime},
task_type = #{taskType},
tr_create_time = #{trCreateTime},
update_time = #{updateTime},
db_create_time = #{dbCreateTime},
db_update_time = #{dbUpdateTime}
WHERE task_id = #{taskId}
</update>
<select id="getTaskScoreSummary" resultType="cn.wepact.dfm.training.dto.TaskScoreSummary">
<!-- SELECT-->
<!-- s.stu_user_id AS stuUserId,-->
<!-- s.project_id AS projectId,-->
<!-- SUM(CASE WHEN s.task_required = 1 THEN s.task_get_scores ELSE 0 END) AS requiredTotalScores,-->
<!-- SUM(CASE WHEN s.task_required = 0 THEN s.task_get_scores ELSE 0 END) AS electiveTotalScores-->
<!-- FROM-->
<!-- (SELECT -->
<!-- stu_user_id,-->
<!-- project_id,-->
<!-- task_id,-->
<!-- task_required,-->
<!-- task_get_scores,-->
<!-- task_status,-->
<!-- task_completed_time-->
<!-- FROM sync_task_log s1-->
<!-- WHERE s1.id = (-->
<!-- SELECT id -->
<!-- FROM sync_task_log s2 -->
<!-- WHERE s2.task_id = s1.task_id -->
<!-- ORDER BY created_at DESC -->
<!-- LIMIT 1-->
<!-- )-->
<!-- AND s1.task_status = 2-->
<!-- ) s-->
<!-- JOIN -->
<!-- sync_user_info_log u ON s.stu_user_id = u.user_id-->
<!-- JOIN -->
<!-- t_user tu ON u.username = tu.user_no-->
<!-- JOIN -->
<!-- t_qualification_review q ON tu.id = q.user_id -->
<!-- AND s.project_id = q.project_id-->
<!-- WHERE-->
<!-- s.task_completed_time > q.created_at-->
<!-- AND q.del_flag = '0'-->
<!-- AND q.status IN ('0', '1', '2', '3')-->
<!-- GROUP BY-->
<!-- s.stu_user_id,-->
<!-- s.project_id;-->
SELECT
s.stu_user_id AS stuUserId,
s.project_id AS projectId,
SUM(CASE WHEN s.task_required = 1 THEN s.task_get_scores ELSE 0 END) AS requiredTotalScores,
SUM(CASE WHEN s.task_required = 0 THEN s.task_get_scores ELSE 0 END) AS electiveTotalScores
FROM
(SELECT
s1.stu_user_id,
s1.project_id,
s1.task_id,
s1.task_required,
s1.task_get_scores,
s1.task_status,
s1.task_completed_time
FROM sync_task_log s1
INNER JOIN (
SELECT task_id, stu_user_id, MAX(created_at) as latest_created_at
FROM sync_task_log
WHERE task_status = 2
GROUP BY task_id, stu_user_id
) latest ON s1.task_id = latest.task_id
AND s1.stu_user_id = latest.stu_user_id
AND s1.created_at = latest.latest_created_at
) s
LEFT JOIN
sync_user_info_log u ON s.stu_user_id = u.user_id
LEFT JOIN
t_user tu ON u.username = tu.user_no
LEFT JOIN
t_qualification_review q ON tu.id = q.user_id
AND s.project_id = q.project_id
AND q.del_flag = '0'
AND q.status IN ('0', '1', '2', '3')
WHERE
s.task_completed_time > q.created_at
GROUP BY
s.stu_user_id,
s.project_id;
</select>
</mapper>