jhprjv2/yanzhu-jh/src/main/resources/mapper/project/SurProjectScheduleMapper.xml

221 lines
13 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.yanzhu.jh.project.mapper.SurProjectScheduleMapper">
<resultMap type="SurProjectSchedule" id="SurProjectScheduleResult">
<result property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="projectName" column="projectName" />
<result property="image" column="image" />
<result property="plannedNode" column="planned_node" />
<result property="actualNode" column="actual_node" />
<result property="purchaseProgress" column="purchase_progress" />
<result property="designProgress" column="design_progress" />
<result property="constructionProgress" column="construction_progress" />
<result property="acceptanceProgress" column="acceptance_progress" />
<result property="planForNextWeek" column="plan_for_next_week" />
<result property="existingProblem" column="existing_problem" />
<result property="problemProgress" column="problem_progress" />
<result property="isDel" column="is_del" />
<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" />
<result property="mainImage" column="mainImage" />
<result property="dataTemplate" column="data_template" />
<result property="projectType" column="projectType" />
<association property="surProject" javaType="SurProject">
<result property="id" column="project_id" />
<result property="projectName" column="projectName"/>
<result property="projectSort" column="projectSort"/>
<result property="projectSchedule" column="projectSchedule"/>
</association>
</resultMap>
<sql id="selectSurProjectScheduleVo">
SELECT * from (
SELECT s.*,p.projectType,p.projectName
FROM sur_project_schedule AS s LEFT JOIN sur_project AS p ON s.project_id=p.id ) as a
</sql>
<select id="selectSurProjectScheduleList" parameterType="SurProjectSchedule" resultMap="SurProjectScheduleResult">
SELECT * from (
SELECT s.*,substring_index(s.image,',',1) as mainImage,p.projectName
FROM sur_project_schedule AS s LEFT JOIN sur_project AS p ON s.project_id=p.id
<!--监理单位/总包公司/分包单位-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> left join sur_project_unit_info spui on spui.projectId = p.id</if>
<!--普通用户查询项目人员-->
<if test='nowRole == "15" or nowRole == "16" or nowRole == "17" or nowRole == "99"'> left join sur_project_userinfo spu on spu.project_id = p.id</if>
where 1=1
<!--子部门数据-->
<if test='nowRole == "4"'> and p.deptId = #{nowDept}</if>
<!--监理单位/总包公司/分包单位查询当前关联数据-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> and spui.unitId = #{nowDept}</if>
<!--普通用户查询项目人员-->
<if test='nowRole == "15" or nowRole == "16" or nowRole == "17" or nowRole == "99"'> and spu.user_id = #{nowUser} and spu.is_del=0</if>
<!-- 查询条件-项目部门 -->
<if test="projectDeptId != null "> and p.deptId = #{projectDeptId}</if>
) as a
<where>
<if test="projectId != null "> and project_id = #{projectId}</if>
<if test="plannedNode != null and plannedNode != ''"> and planned_node = #{plannedNode}</if>
<if test="actualNode != null and actualNode != ''"> and actual_node = #{actualNode}</if>
<if test="purchaseProgress != null and purchaseProgress != ''"> and purchase_progress = #{purchaseProgress}</if>
<if test="designProgress != null and designProgress != ''"> and design_progress = #{designProgress}</if>
<if test="constructionProgress != null and constructionProgress != ''"> and construction_progress = #{constructionProgress}</if>
<if test="acceptanceProgress != null and acceptanceProgress != ''"> and acceptance_progress = #{acceptanceProgress}</if>
<if test="planForNextWeek != null and planForNextWeek != ''"> and plan_for_next_week = #{planForNextWeek}</if>
<if test="existingProblem != null and existingProblem != ''"> and existing_problem = #{existingProblem}</if>
<if test="problemProgress != null and problemProgress != ''"> and problem_progress = #{problemProgress}</if>
<if test="params.beginMarksTime != null and params.beginMarksTime != '' and params.endMarksTime != null and params.endMarksTime != ''"> and create_time between #{params.beginMarksTime} and #{params.endMarksTime}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
<if test="projectName != null and projectName != ''">
AND projectName like concat('%', #{projectName}, '%')
</if>
</where>
order by create_time desc
</select>
<select id="selectSurProjectScheduleById" parameterType="Long" resultMap="SurProjectScheduleResult">
<include refid="selectSurProjectScheduleVo"/>
where id = #{id}
</select>
<select id="getProjectConstructionProgress" parameterType="Long" resultMap="SurProjectScheduleResult">
<include refid="selectSurProjectScheduleVo"/>
<where>
<if test="projectId != null "> project_id = #{projectId}</if>
</where>
order by id desc LIMIT 0,1 ;
</select>
<insert id="insertSurProjectSchedule" parameterType="SurProjectSchedule">
insert into sur_project_schedule
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="projectId != null">project_id,</if>
<if test="image != null">image,</if>
<if test="plannedNode != null">planned_node,</if>
<if test="actualNode != null">actual_node,</if>
<if test="purchaseProgress != null">purchase_progress,</if>
<if test="designProgress != null">design_progress,</if>
<if test="constructionProgress != null">construction_progress,</if>
<if test="acceptanceProgress != null">acceptance_progress,</if>
<if test="planForNextWeek != null">plan_for_next_week,</if>
<if test="existingProblem != null">existing_problem,</if>
<if test="problemProgress != null">problem_progress,</if>
<if test="dataTemplate != null">data_template,</if>
<if test="isDel != null">is_del,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="projectId != null">#{projectId},</if>
<if test="image != null">#{image},</if>
<if test="plannedNode != null">#{plannedNode},</if>
<if test="actualNode != null">#{actualNode},</if>
<if test="purchaseProgress != null">#{purchaseProgress},</if>
<if test="designProgress != null">#{designProgress},</if>
<if test="constructionProgress != null">#{constructionProgress},</if>
<if test="acceptanceProgress != null">#{acceptanceProgress},</if>
<if test="planForNextWeek != null">#{planForNextWeek},</if>
<if test="existingProblem != null">#{existingProblem},</if>
<if test="problemProgress != null">#{problemProgress},</if>
<if test="dataTemplate != null">#{dataTemplate},</if>
<if test="isDel != null">#{isDel},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateSurProjectSchedule" parameterType="SurProjectSchedule">
update sur_project_schedule
<trim prefix="SET" suffixOverrides=",">
<if test="projectId != null">project_id = #{projectId},</if>
<if test="image != null">image = #{image},</if>
<if test="plannedNode != null">planned_node = #{plannedNode},</if>
<if test="actualNode != null">actual_node = #{actualNode},</if>
<if test="purchaseProgress != null">purchase_progress = #{purchaseProgress},</if>
<if test="designProgress != null">design_progress = #{designProgress},</if>
<if test="constructionProgress != null">construction_progress = #{constructionProgress},</if>
<if test="acceptanceProgress != null">acceptance_progress = #{acceptanceProgress},</if>
<if test="planForNextWeek != null">plan_for_next_week = #{planForNextWeek},</if>
<if test="existingProblem != null">existing_problem = #{existingProblem},</if>
<if test="problemProgress != null">problem_progress = #{problemProgress},</if>
<if test="dataTemplate != null">data_template = #{dataTemplate},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSurProjectScheduleById" parameterType="Long">
delete from sur_project_schedule where id = #{id}
</delete>
<delete id="deleteSurProjectScheduleByIds" parameterType="String">
delete from sur_project_schedule where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="selectByProjectType" parameterType="SurProjectScheduleWhere" resultMap="SurProjectScheduleResult">
select * from vw_sur_project_schedule c
left join sur_project p on c.project_id = p.id
WHERE c.id IN (
SELECT MAX(spc.id) FROM sur_project_schedule spc
left join sur_project sp on spc.project_id = sp.id
where spc.is_del=0 and sp.projectType=#{prjType} and sp.isDel=0 and sp.progressVisible=0
<if test="deptId>0">and sp.deptId=#{deptId}</if>
<if test="proType != null and proType != ''"> and sp.projectType = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and spc.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
GROUP BY spc.project_id
)
order by p.projectSort
</select>
<select id="getConstructionProgressByDept" parameterType="SurProjectScheduleWhere" resultMap="SurProjectScheduleResult">
select s.*,p.projectName from (
select * from sur_project_schedule where id in (
select max(spc.id)
from sur_project_schedule spc
left join sur_project sp on sp.id=spc.project_id
where spc.is_del=0 and sp.isDel=0 and sp.progressVisible=0
<if test="deptId!=null and deptId>0">
and sp.deptId= #{deptId}
</if>
<if test="proType != null and proType != ''"> and sp.projectType = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and spc.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<!--
and ( (existing_problem is not null and existing_problem not like '暂无%' and existing_problem not like '无%' and length(trim(existing_problem))>0 )
or (problem_progress IS NOT NULL AND problem_progress NOT LIKE '暂无%' AND problem_progress NOT LIKE '无%' AND LENGTH(TRIM(problem_progress))>0 ))
-->
group by spc.project_id
)
) s LEFT JOIN sur_project AS p ON s.project_id=p.id order by p.projectSort
</select>
</mapper>