|
@@ -2,5 +2,155 @@
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
<mapper namespace="com.dayou.mapper.MajorAppraiserUnitMapper">
|
|
|
|
|
|
+ <resultMap id="orderStatMap" type="com.dayou.vo.MajorOrderStatEvaluateUnitVO">
|
|
|
+ <result column="id" property="id" />
|
|
|
+ <result column="orderName" property="orderName" />
|
|
|
+ <result column="orderId" property="orderId" />
|
|
|
+ <result column="evaluateUnit" property="evaluateUnit" />
|
|
|
+ <result column="businessObjectType" property="businessObjectType"/>
|
|
|
+ <result column="clientManager" property="clientManager"/>
|
|
|
+ <result column="principal" property="principal"/>
|
|
|
+ <result column="department" property="department"/>
|
|
|
+ <result column="created" property="createTime"/>
|
|
|
+ <collection property="allotUnits" ofType="com.dayou.vo.UserRateVO" select="selectUserRate" column="id"/>
|
|
|
|
|
|
-</mapper>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <sql id="getOrderStatSQL">
|
|
|
+ SELECT
|
|
|
+ m.id AS id,
|
|
|
+ m.NAME as orderName,
|
|
|
+ m.order_id as orderId,
|
|
|
+ u.NAME AS clientManager,
|
|
|
+ u1.NAME AS principal,
|
|
|
+ d.NAME AS department,
|
|
|
+ m.business_object_type as businessObjectType,
|
|
|
+ m.financial,
|
|
|
+ m.allot_type as allotType,
|
|
|
+ m.evaluate_unit as evaluateUnit,
|
|
|
+ m.created
|
|
|
+ FROM
|
|
|
+ major m
|
|
|
+ LEFT JOIN user u ON u.id = m.client_manager_id
|
|
|
+ LEFT JOIN user u1 ON u1.id = m.principal_id
|
|
|
+ LEFT JOIN department d ON d.id = m.department_id
|
|
|
+ WHERE
|
|
|
+ m.deleted = 0 and m.evaluate_unit is not null
|
|
|
+ <if test="unit!=null and unit.orderName!=null and unit.orderName!=''">
|
|
|
+ and m.name like concat('%',#{unit.orderName},'%')
|
|
|
+ </if>
|
|
|
+ <if test="unit!=null and unit.orderId!=null and unit.orderId!=''">
|
|
|
+ and m.order_id like concat('%',#{unit.orderId},'%')
|
|
|
+ </if>
|
|
|
+ <if test="unit!=null and unit.principal!=null and unit.principal!=''">
|
|
|
+ and u1.NAME like concat('%',#{unit.principal},'%')
|
|
|
+ </if>
|
|
|
+ order by m.created desc
|
|
|
+ </sql>
|
|
|
+ <select id="getOrderStat" parameterType="com.dayou.vo.MajorOrderStatEvaluateUnitVO" resultMap="orderStatMap">
|
|
|
+ <include refid="getOrderStatSQL" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="selectUserRate" parameterType="java.lang.Long" resultType="com.dayou.vo.UserRateVO">
|
|
|
+ SELECT
|
|
|
+ u.NAME AS userName,
|
|
|
+ round(ma.unit_rate,1) as userRate
|
|
|
+ FROM
|
|
|
+ major_appraiser_unit ma
|
|
|
+ LEFT JOIN user u ON u.id = ma.user_id
|
|
|
+ WHERE
|
|
|
+ ma.deleted = 0
|
|
|
+ AND ma.major_id = #{id}
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="exportOrderExport" parameterType="com.dayou.vo.MajorOrderStatEvaluateUnitVO" resultMap="orderStatMap">
|
|
|
+ <include refid="getOrderStatSQL" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <sql id="userStatSQL">
|
|
|
+ SELECT
|
|
|
+ dy.*,
|
|
|
+ dx.department,
|
|
|
+ @rank := @rank+1 as ranks
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ u.id as userId,
|
|
|
+ u.NAME AS userName,
|
|
|
+ ur.userRate
|
|
|
+ FROM
|
|
|
+ ( SELECT user_id, sum( round(unit_rate,1) ) AS userRate FROM major_appraiser_unit
|
|
|
+ WHERE deleted = 0
|
|
|
+ <if test="rate!=null and rate.startDate!=null and rate.startDate!=''">
|
|
|
+ AND created >= #{rate.startDate}
|
|
|
+ </if>
|
|
|
+ <if test="rate!=null and rate.endDate!=null and rate.endDate!=''">
|
|
|
+ AND created <= #{rate.endDate}
|
|
|
+ </if>
|
|
|
+ GROUP BY user_id ) ur
|
|
|
+ LEFT JOIN USER u ON u.id = ur.user_id
|
|
|
+ ) dy
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ d.id,
|
|
|
+ d.NAME AS department,
|
|
|
+ dp.user_id
|
|
|
+ FROM
|
|
|
+ ( SELECT DISTINCT p.department_id, up.user_id FROM user_post up LEFT JOIN post p ON up.post_id = p.id ) dp
|
|
|
+ LEFT JOIN department d ON d.id = dp.department_id
|
|
|
+ ) dx ON dx.user_id = dy.userId ,(select @rank:=0) b where dy.userRate!=0
|
|
|
+ <if test="rate!=null and rate.departmentId!=null">
|
|
|
+ and dx.id = #{rate.departmentId}
|
|
|
+ </if>
|
|
|
+ <if test="rate!=null and rate.userName!=null and rate.userName!=''">
|
|
|
+ and dy.userName like concat('%',#{rate.userName},'%')
|
|
|
+ </if>
|
|
|
+ order by dy.userRate desc
|
|
|
+ </sql>
|
|
|
+ <select id="getUserStat" parameterType="com.dayou.vo.UserRateVO" resultType="com.dayou.vo.UserRateVO">
|
|
|
+ <include refid="userStatSQL" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getUserStatExport" parameterType="com.dayou.vo.UserRateVO" resultType="com.dayou.vo.UserRateVO">
|
|
|
+ <include refid="userStatSQL" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getUserDetail" parameterType="com.dayou.vo.MajorOrderStatEvaluateUnitVO" resultType="com.dayou.vo.MajorOrderStatEvaluateUnitVO">
|
|
|
+ SELECT
|
|
|
+ m.id AS majorId,
|
|
|
+ m.NAME AS orderName,
|
|
|
+ m.order_id AS orderId,
|
|
|
+ u.NAME AS clientManager,
|
|
|
+ u1.NAME AS principal,
|
|
|
+ d.NAME AS department,
|
|
|
+ m.business_object_type AS businessObjectType,
|
|
|
+ m.financial,
|
|
|
+ m.allot_type AS allotType,
|
|
|
+ m.evaluate_unit AS evaluateUnit,
|
|
|
+ ma.userRate,
|
|
|
+ ma.created as createTime
|
|
|
+ FROM
|
|
|
+ ( SELECT round( unit_rate, 1 ) AS userRate,major_id,created FROM major_appraiser_unit
|
|
|
+ WHERE user_id = #{unit.userId} AND deleted = 0
|
|
|
+ <if test="unit!=null and unit.startDate!=null and unit.startDate!=''">
|
|
|
+ AND created >= #{unit.startDate}
|
|
|
+ </if>
|
|
|
+ <if test="unit!=null and unit.endDate!=null and unit.endDate!=''">
|
|
|
+ AND created <= #{unit.endDate}
|
|
|
+ </if>
|
|
|
+ ) ma
|
|
|
+ LEFT JOIN major m ON m.id = ma.major_id
|
|
|
+ LEFT JOIN user u ON u.id = m.client_manager_id
|
|
|
+ LEFT JOIN user u1 ON u1.id = m.principal_id
|
|
|
+ LEFT JOIN department d ON d.id = m.department_id
|
|
|
+ <where>
|
|
|
+ <if test="unit!=null and unit.orderName!=null and unit.orderName!=''">
|
|
|
+ and m.name like concat('%',#{unit.orderName},'%')
|
|
|
+ </if>
|
|
|
+ <if test="unit!=null and unit.orderId!=null and unit.orderId!=''">
|
|
|
+ and m.order_id like concat('%',#{unit.orderId},'%')
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ order by m.id desc
|
|
|
+ </select>
|
|
|
+ </mapper>
|