Files
platform/ruoyi-system/src/main/resources/mapper/fbs/FbsProjectTaskMapper.xml
2025-03-13 18:55:03 +08:00

95 lines
3.7 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.ruoyi.fbs.mapper.FbsProjectTaskMapper">
<resultMap type="com.ruoyi.fbs.domain.FbsProjectTask" id="FbsProjectTaskResult">
<result property="id" column="id"/>
<result property="projectId" column="project_id"/>
<result property="sectionId" column="section_id"/>
<result property="subId" column="sub_id"/>
<result property="taskName" column="task_name"/>
<result property="taskAddress" column="task_address"/>
<result property="taskAmount" column="task_amount"/>
<result property="taskStaffNum" column="task_staff_num"/>
<result property="taskBeginTime" column="task_begin_time"/>
<result property="taskContactPerson" column="task_contact_person"/>
<result property="taskContactPhone" column="task_contact_phone"/>
<result property="taskDescribe" column="task_describe"/>
<result property="taskImg" column="task_img"/>
<result property="qualification" column="qualification"/>
<result property="userId" column="user_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="appQueryPageList" resultType="com.ruoyi.fbs.domain.vo.AppTaskVO">
SELECT
fpt.id,
fpt.project_id,
fpt.section_id,
fpt.sub_id,
fpt.task_name,
fpt.task_img,
fpt.task_staff_num,
fpt.task_amount,
fpt.task_begin_time,
fpt.task_end_time,
zp.project_name,
fpt.task_describe,
fpt.task_address,
fpt.create_time,
#{dto.myTask} as myTask,
COALESCE(apply.applyNum, 0) as applyNum,
COALESCE(wage.taskReceiveAmount, 0) as taskReceiveAmount
FROM fbs_project_task fpt
LEFT JOIN zbf_project zp ON fpt.project_id = zp.id
LEFT JOIN
(SELECT task_id, COUNT(*) as applyNum
FROM fbs_project_task_apply
GROUP BY task_id)
apply ON fpt.id = apply.task_id
LEFT JOIN
(SELECT task_id, SUM(applicant_amount) as taskReceiveAmount
FROM bgt_wage_application
WHERE audit_status = '2'
GROUP BY task_id)
wage ON fpt.id = wage.task_id
<where>
<if test='!dto.myTask and dto.status != null and dto.status == "0"'>
AND NOT EXISTS (
SELECT 1
FROM fbs_project_task_apply
WHERE task_id = fpt.id
AND user_id = #{dto.userId}
)
</if>
<if test='dto.myTask and dto.status != null and dto.status == "0"'>
AND EXISTS (
SELECT 1
FROM fbs_project_task_apply
WHERE task_id = fpt.id
AND user_id = #{dto.userId}
)
</if>
<if test="dto.taskName != null and dto.taskName != '' ">
AND fpt.task_name LIKE CONCAT('%', #{dto.taskName}, '%')
</if>
<if test='dto.myTask and dto.status != null and dto.status != "0"'>
AND fpt.user_id = #{dto.userId}
</if>
<if test="dto.status != null and dto.status != '' ">
AND fpt.status = #{dto.status}
</if>
</where>
ORDER BY fpt.create_time DESC
</select>
</mapper>