microservices/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml

224 lines
12 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.microservices.pms.project.mapper.PmsProjectSprintMapper">
<resultMap type="com.microservices.pms.project.domain.PmsProjectSprint" id="PmsProjectSprintResult">
<result property="id" column="id" />
<result property="sprintName" column="sprint_name" />
<result property="sprintAssigneeId" column="sprint_assignee_id" />
<result property="pmsProjectId" column="pms_project_id" />
<result property="sprintDescription" column="sprint_description" />
<result property="timeScale" column="time_scale" />
<result property="status" column="status" />
<result property="startTime" column="start_time" />
<result property="endTime" column="end_time" />
<result property="isTop" column="is_top" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="isDeleted" column="is_deleted" />
<result property="reservedField1" column="reserved_field_1" />
<result property="reservedField2" column="reserved_field_2" />
<result property="reservedField3" column="reserved_field_3" />
</resultMap>
<sql id="selectPmsProjectSprintVo">
select id, sprint_name, sprint_assignee_id, pms_project_id, sprint_description, time_scale, status, start_time, end_time, is_top, create_time, update_time, is_deleted, reserved_field_1, reserved_field_2, reserved_field_3 from pms_project_sprint
</sql>
<select id="selectPmsProjectSprintList" parameterType="PmsProjectSprint" resultMap="PmsProjectSprintResult">
<include refid="selectPmsProjectSprintVo"/>
<where>
<if test="sprintName != null and sprintName != ''"> and sprint_name like concat('%', #{sprintName}, '%')</if>
<if test="sprintAssigneeId != null "> and sprint_assignee_id = #{sprintAssigneeId}</if>
<if test="pmsProjectId != null "> and pms_project_id = #{pmsProjectId}</if>
<if test="sprintDescription != null and sprintDescription != ''"> and sprint_description = #{sprintDescription}</if>
<if test="timeScale != null "> and time_scale = #{timeScale}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="startTime != null "> and start_time = #{startTime}</if>
<if test="endTime != null "> and end_time = #{endTime}</if>
<if test="isTop != null "> and is_top = #{isTop}</if>
<if test="createTime != null "> and create_time = #{createTime}</if>
<if test="updateTime != null "> and update_time = #{updateTime}</if>
<if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
<if test="reservedField1 != null and reservedField1 != ''"> and reserved_field_1 = #{reservedField1}</if>
<if test="reservedField2 != null and reservedField2 != ''"> and reserved_field_2 = #{reservedField2}</if>
<if test="reservedField3 != null and reservedField3 != ''"> and reserved_field_3 = #{reservedField3}</if>
</where>
</select>
<select id="selectPmsProjectSprintById" parameterType="Long" resultMap="PmsProjectSprintResult">
<include refid="selectPmsProjectSprintVo"/>
where id = #{id}
</select>
<sql id="selectWhereBySearch">
<where>
<if test="sprintName != null and sprintName != ''">and sprint_name like concat('%', #{sprintName}, '%')
</if>
<if test="statusIds != null and statusIds != ''">and status in
<foreach item="statusIds" collection="statusIds.split(',')" open="(" separator="," close=")">
#{statusIds}
</foreach>
</if>
<if test="pmsProjectIds != null and pmsProjectIds != ''">and pms_project_id in
<foreach item="pmsProjectId" collection="pmsProjectIds.split(',')" open="(" separator="," close=")">
#{pmsProjectId}
</foreach>
</if>
<if test="pmsProjectId != null and pmsProjectId != ''">and pms_project_id = #{pmsProjectId}</if>
<if test="sprintAssigneeId != null and sprintAssigneeId != ''">and sprint_assignee_id = #{sprintAssigneeId}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>
</sql>
<select id="selectPmsProjectSprintListBySearchInput"
parameterType="com.microservices.pms.project.domain.vo.PmsProjectSprintSearchVo"
resultMap="PmsProjectSprintResult">
<include refid="selectPmsProjectSprintVo"/>
<include refid="selectWhereBySearch"/>
order by
CASE
WHEN status IN ('0', '1') THEN 0
ELSE 1
END, status,
update_time desc
</select>
<select id="selectPmsProjectSprintCount" resultType="java.lang.Integer">
select count(*)
from pms_project_sprint
<include refid="selectWhereBySearch"/>
</select>
<insert id="insertPmsProjectSprint" parameterType="PmsProjectSprint" useGeneratedKeys="true" keyProperty="id">
insert into pms_project_sprint
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="sprintName != null and sprintName != ''">sprint_name,</if>
<if test="sprintAssigneeId != null">sprint_assignee_id,</if>
<if test="pmsProjectId != null">pms_project_id,</if>
<if test="sprintDescription != null and sprintDescription != ''">sprint_description,</if>
<if test="timeScale != null">time_scale,</if>
<if test="status != null">status,</if>
<if test="startTime != null">start_time,</if>
<if test="endTime != null">end_time,</if>
<if test="isTop != null">is_top,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="isDeleted != null">is_deleted,</if>
<if test="reservedField1 != null">reserved_field_1,</if>
<if test="reservedField2 != null">reserved_field_2,</if>
<if test="reservedField3 != null">reserved_field_3,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sprintName != null and sprintName != ''">#{sprintName},</if>
<if test="sprintAssigneeId != null">#{sprintAssigneeId},</if>
<if test="pmsProjectId != null">#{pmsProjectId},</if>
<if test="sprintDescription != null and sprintDescription != ''">#{sprintDescription},</if>
<if test="timeScale != null">#{timeScale},</if>
<if test="status != null">#{status},</if>
<if test="startTime != null">#{startTime},</if>
<if test="endTime != null">#{endTime},</if>
<if test="isTop != null">#{isTop},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="isDeleted != null">#{isDeleted},</if>
<if test="reservedField1 != null">#{reservedField1},</if>
<if test="reservedField2 != null">#{reservedField2},</if>
<if test="reservedField3 != null">#{reservedField3},</if>
</trim>
</insert>
<update id="updatePmsProjectSprint" parameterType="PmsProjectSprint">
update pms_project_sprint
<trim prefix="SET" suffixOverrides=",">
<if test="sprintName != null and sprintName != ''">sprint_name = #{sprintName},</if>
<if test="sprintAssigneeId != null">sprint_assignee_id = #{sprintAssigneeId},</if>
<if test="pmsProjectId != null">pms_project_id = #{pmsProjectId},</if>
<if test="sprintDescription != null and sprintDescription != ''">sprint_description = #{sprintDescription},</if>
<if test="timeScale != null">time_scale = #{timeScale},</if>
<if test="status != null">status = #{status},</if>
<if test="startTime != null">start_time = #{startTime},</if>
<if test="endTime != null">end_time = #{endTime},</if>
<if test="isTop != null">is_top = #{isTop},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="isDeleted != null">is_deleted = #{isDeleted},</if>
<if test="reservedField1 != null">reserved_field_1 = #{reservedField1},</if>
<if test="reservedField2 != null">reserved_field_2 = #{reservedField2},</if>
<if test="reservedField3 != null">reserved_field_3 = #{reservedField3},</if>
</trim>
where id = #{id}
</update>
<delete id="deletePmsProjectSprintById" parameterType="Long">
delete from pms_project_sprint where id = #{id}
</delete>
<delete id="deletePmsProjectSprintByIds" parameterType="String">
delete from pms_project_sprint where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deletePmsProjectSprintByProjectId">
delete from pms_project_sprint where pms_project_id = #{projectId}
</delete>
<select id="selectPmsProjectSprintBYIds" resultMap="PmsProjectSprintResult">
<include refid="selectPmsProjectSprintVo"/>
where id in
<foreach item="testSheetLinkSprintId" collection="testSheetLinkSprintIds" open="(" separator="," close=")">
#{testSheetLinkSprintId}
</foreach>
</select>
<select id="selectLatestSprintByProjectIdAndNameAndAssigneeId"
resultMap="PmsProjectSprintResult">
<include refid="selectPmsProjectSprintVo"/>
where pms_project_id = #{pmsProjectId}
and sprint_name = #{sprintName}
and sprint_assignee_id = #{sprintAssigneeId}
order by id desc
limit 1
</select>
<select id="selectOpeningSprintCount" resultType="java.lang.Integer">
select count(*)
from pms_project_sprint
where pms_project_id = #{projectId}
and status IN ('0', '1')
</select>
<select id="selectOpeningSprintLastWeekIterationCount" resultType="java.lang.Integer">
select count(*)
from pms_project_sprint
where pms_project_id = #{projectId}
and status IN ('0', '1')
and start_time >= DATE_SUB(NOW(), INTERVAL 1 WEEK)
</select>
<select id="selectPmsProjectSprintStatisticsByProjectId"
resultType="com.microservices.pms.project.domain.vo.PmsProjectSprintStatisticsVo">
SELECT
(
SELECT COUNT(*)
FROM pms_project_sprint
WHERE pms_project_id = #{pmProjectId}
) AS all_sprint_count,
(
SELECT COUNT(*)
FROM pms_project_sprint
WHERE pms_project_id = #{pmProjectId} AND status = 0
) AS `todo_sprint_count`,
(
SELECT COUNT(*)
FROM pms_project_sprint
WHERE pms_project_id = #{pmProjectId} AND status = 1
) AS `doing_sprint_count`,
(
SELECT COUNT(*)
FROM pms_project_sprint
WHERE pms_project_id = #{pmProjectId} AND status = 2
) AS `closed_sprint_count`
</select>
</mapper>