中扬CRM客户关系管理系统
#
lsh
2024-09-03 b633b8048cfe9a4f4e9c25e574551cedfd1ed28f
src/main/resources/mapper/PlanMapper.xml
@@ -16,9 +16,9 @@
        <result column="apple_time" property="appleTime" />
        <result column="plan_need" property="planNeed" />
        <result column="be_item" property="beItem" />
        <result column="form" property="form" />
        <result column="planner" property="planner" />
        <result column="finish_time" property="finishTime" />
        <result column="form" property="form" />
        <result column="change" property="change" />
        <result column="change_time" property="changeTime" />
        <result column="change_reason" property="changeReason" />
@@ -34,7 +34,125 @@
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
        <result column="memo" property="memo" />
        <result column="user_xml_sel_phone" property="userXmlSelPhone" />
        <result column="director" property="director" />
        <result column="status2" property="status2" />
        <result column="assistant_plan_id" property="assistantPlanId" />
        <result column="host_plan_id" property="hostPlanId" />
        <result column="assistant_host_sign" property="assistantHostSign" />
        <result column="settle_size" property="settleSize" />
    </resultMap>
    <select id="selectByUuid" resultMap="BaseResultMap">
        select * from man_plan
        where 1=1
        and uuid = #{uuid}
        <if test="hostId != null">
            and host_id = #{hostId}
        </if>
    </select>
    <select id="selectPlanByNewestUuid" resultMap="BaseResultMap">
        select top 1 * from man_plan
        where 1=1
        <if test="hostId != null">
            and host_id = #{hostId}
        </if>
        order by uuid + 0 desc
    </select>
    <select id="listByPage" resultMap="BaseResultMap">
        SELECT
        mp.*
        FROM man_plan mp
        LEFT JOIN sys_dept sd ON mp.dept_id = sd.id
        WHERE 1=1
        <choose>
            <when test="deptId != null and deptId != ''">
                AND ( (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
                or
                (
                    mp.user_id = #{userId}
                    or
                    mp.id in
                    (
                        select
                        plan_id
                        from man_plan_foll
                        where 1=1
                        and user_id = #{userId}
                    )
                ))
            </when>
            <otherwise>
                and
                (
                    <if test="userId != null and userId != ''">
                        mp.user_id = #{userId}
                        or
                        mp.director = #{userId}
                        or
                    </if>
                    mp.id in
                    (
                        select
                        plan_id
                        from man_plan_foll
                        where 1=1
                        and user_id = #{userId}
                    )
                )
            </otherwise>
        </choose>
        <if test="hostId != null">
            and mp.host_id = #{hostId}
        </if>
        <if test="condition != null and condition != ''">
            and (
            mp.uuid like concat('%',#{condition},'%')
            or mp.name like concat('%',#{condition},'%')
            or mp.planner like concat('%',#{condition},'%')
            )
        </if>
        <if test="director != null and director != ''">
            or mp.director = #{director}
        </if>
        ORDER BY mp.update_time DESC,mp.create_time DESC
    </select>
    <select id="selectPendingTaskCount" resultType="java.lang.Integer">
        select count(1) from man_plan
        where 1=1
        and director = #{director}
        and settle &lt; settle_size
    </select>
    <select id="selctPlanListByDirector" resultMap="BaseResultMap">
        select DISTINCT user_id from man_plan
        where 1=1
        and director = #{director}
    </select>
    <select id="getApproval" resultMap="BaseResultMap">
        SELECT user_id,status2,host_id,director,dept_id,plan_type,order_id,COUNT(*) num
        FROM man_plan
        WHERE settle = #{settle} AND assistant_host_sign = #{assistantHostSign}
        GROUP BY user_id,status2,host_id,director,dept_id,plan_type,order_id
    </select>
    <select id="selectMonth" resultMap="BaseResultMap">
        SELECT count(0) as count, MONTH(create_time) as month FROM man_plan
        where 1=1
        group by MONTH(create_time)
    </select>
    <select id="selectUserYear" resultType="com.zy.crm.common.entity.UserYear">
        select COUNT(1) as count,YEAR(p.create_time) as year
        from (select DISTINCT m.plan_id,m.user_id from man_plan_foll as m where m.user_id = #{userId}) as f
        LEFT JOIN man_plan as p on (f.plan_id = p.id)
        where f.user_id = #{userId}
        group by YEAR(p.create_time)
    </select>
</mapper>