TpEEmployeeTailSMapper.xml 6.91 KB
<?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.zteits.park.mapper.smapper.TpEEmployeeTailSMapper">
  <resultMap id="BaseResultMap" type="com.zteits.park.domain.TpEEmployeeTail">
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="sign_record_id" jdbcType="BIGINT" property="signRecordId" />
    <result column="sign_record_detail_id" jdbcType="BIGINT" property="signRecordDetailId" />
    <result column="lon_id" jdbcType="DOUBLE" property="lonId" />
    <result column="lat_id" jdbcType="DOUBLE" property="latId" />
    <result column="sign_distance" jdbcType="DOUBLE" property="signDistance" />
    <result column="record_time" jdbcType="TIMESTAMP" property="recordTime" />
    <result column="charger_code" jdbcType="VARCHAR" property="chargerCode" />
    <result column="charger_name" jdbcType="VARCHAR" property="chargerName" />
    <result column="remark" jdbcType="VARCHAR" property="remark" />
    <result column="data_state" jdbcType="INTEGER" property="dataState" />
    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
    <result column="create_op" jdbcType="BIGINT" property="createOp" />
    <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
    <result column="modify_op" jdbcType="BIGINT" property="modifyOp" />
  </resultMap>
  <sql id="Example_Where_Clause">
    <where>
      <foreach collection="oredCriteria" item="criteria" separator="or">
        <if test="criteria.valid">
          <trim prefix="(" prefixOverrides="and" suffix=")">
            <foreach collection="criteria.criteria" item="criterion">
              <choose>
                <when test="criterion.noValue">
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue">
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue">
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue">
                  and ${criterion.condition}
                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause">
    <where>
      <foreach collection="example.oredCriteria" item="criteria" separator="or">
        <if test="criteria.valid">
          <trim prefix="(" prefixOverrides="and" suffix=")">
            <foreach collection="criteria.criteria" item="criterion">
              <choose>
                <when test="criterion.noValue">
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue">
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue">
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue">
                  and ${criterion.condition}
                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List">
    id, sign_record_id,sign_record_detail_id, lon_id, lat_id, sign_distance, record_time, charger_code, charger_name,
    remark, data_state, create_time, create_op, modify_time, modify_op
  </sql>
  <select id="querySignRecordPointInfoBySignId" resultType="com.zteits.park.domain.TpESignRecord">
    SELECT
    sign_record_id               id,
    count(0)                     pointAll,
    ifnull(sum((CASE WHEN sign_distance &lt;= 100
    THEN 1
    ELSE 0 END)), 0) radius100,
    ifnull(sum((CASE WHEN sign_distance &lt;= 200
    THEN 1
    ELSE 0 END)), 0) radius200,
    ifnull(sum((CASE WHEN sign_distance &lt;= 300
    THEN 1
    ELSE 0 END)), 0) radius300,
    ifnull(sum((CASE WHEN sign_distance &lt;= 400
    THEN 1
    ELSE 0 END)), 0) radius400,
    ifnull(sum((CASE WHEN sign_distance &lt;= 500
    THEN 1
    ELSE 0 END)), 0) radius500,
    ifnull(sum((CASE WHEN sign_distance &lt;= 600
    THEN 1
    ELSE 0 END)), 0) radius600

    FROM tp_e_employee_tail
    WHERE sign_record_id = #{signId}
    AND data_state = 1;
  </select>

  <select id="querySignRecordPointInfoBySignDetailId" resultType="com.zteits.park.domain.TpESignRecordDetail">
    SELECT
      sign_record_detail_id               id,
      count(0)                     pointAll,
      ifnull(sum((CASE WHEN sign_distance &lt;= 100
                         THEN 1
                       ELSE 0 END)), 0) radius100,
      ifnull(sum((CASE WHEN sign_distance &lt;= 200
                         THEN 1
                       ELSE 0 END)), 0) radius200,
      ifnull(sum((CASE WHEN sign_distance &lt;= 300
                         THEN 1
                       ELSE 0 END)), 0) radius300,
      ifnull(sum((CASE WHEN sign_distance &lt;= 400
                         THEN 1
                       ELSE 0 END)), 0) radius400,
      ifnull(sum((CASE WHEN sign_distance &lt;= 500
                         THEN 1
                       ELSE 0 END)), 0) radius500,
      ifnull(sum((CASE WHEN sign_distance &lt;= 600
                         THEN 1
                       ELSE 0 END)), 0) radius600

    FROM tp_e_employee_tail
    WHERE sign_record_detail_id = #{signDetailId}
      AND data_state = 1;
  </select>

    <!--按照时间分组,dat作为入参的统计时间-->
    <select id="getEmployeeTailDateList" parameterType="com.zteits.clouds.api.dto.clouds.param.QueryEmployeeDetailRequest"
            resultType="com.zteits.clouds.api.dto.park.dto.EmployeeStaticDateDTO">
      select
      date_format(t.record_time, '%Y-%m-%d') dat,
      count(*) coun,
      t.charger_code chargerCode,
      t.record_time recordTime,
      t.charger_name chargerName
      from tp_e_employee_tail t
      where t.data_state = 1
      <if test="chargerCode != null ">
        and t.charger_code = #{chargerCode}
      </if>
      <!--<if test="chargerCodes != null and chargerCodes.size>0">
        and t.charger_code in
        <foreach collection="chargerCodes" item="chargerCode" index="index" open="(" close=")" separator=",">
          #{chargerCode}
        </foreach>
      </if>-->
      <if test="beginTime != null and endTime != null">
        and t.record_time between #{beginTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}
      </if>
      group by date_format(t.record_time, '%Y-%m-%d')
    </select>

</mapper>