AsraDailySmapper.xml 4.36 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.oa.report.mapper.smapper.AsraDailySmapper">
  <resultMap id="BaseResultMap" type="com.zteits.oa.report.domain.AsraDaily">
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="project_id" jdbcType="BIGINT" property="projectId" />
    <result column="asar_op_id" jdbcType="BIGINT" property="asarOpId" />
    <result column="asar_op_name" jdbcType="VARCHAR" property="asarOpName" />
    <result column="years" jdbcType="INTEGER" property="years" />
    <result column="weeks" jdbcType="INTEGER" property="weeks" />
    <result column="weeks_num" jdbcType="INTEGER" property="weeksNum" />
    <result column="daily_date" jdbcType="DATE" property="dailyDate" />
    <result column="data_state" jdbcType="INTEGER" property="dataState" />
    <result column="create_empid" jdbcType="VARCHAR" property="createEmpid" />
    <result column="create_emp_name" jdbcType="VARCHAR" property="createEmpName" />
    <result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
    <result column="modfiy_empid" jdbcType="VARCHAR" property="modfiyEmpid" />
    <result column="modfiy_emp_name" jdbcType="VARCHAR" property="modfiyEmpName" />
    <result column="modfiy_date" jdbcType="TIMESTAMP" property="modfiyDate" />
  </resultMap>
  
  
  <sql id="Base_Column_List">
    id, project_id, asar_op_id, asar_op_name, years, weeks, weeks_num, daily_date, data_state, 
    create_empid, create_emp_name, create_date, modfiy_empid, modfiy_emp_name, modfiy_date
  </sql>
  <sql id="Blob_Column_List">
    daily_content
  </sql>
  
   <!--工时查询-所有员工及自己或者自己日报-->
  <select id="queryAsraDailyAllForList" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq" 
  resultType="com.zteits.oa.report.domain.sdo.AsraDailyDO">
      SELECT
		    max(a.id) as id,
			a.project_id as projectId,
			c.projec_name as projectName,
			a.asar_op_id as asarOpId,
			a.asar_op_name as asarOpName,
			a.daily_date as dailyDate,
			max(a.daily_content) as dailyContent,
			'8' as asraHours
		FROM
			asra_project c,
			asra_daily a
		WHERE
			1 = 1
		AND a.project_id = c.id
		AND  a.asar_op_id  in 
		<foreach collection="opIds" item="opId" open="(" close=")" separator=",">
	         #{opId}
	      </foreach>
		AND a.data_state =1
		<![CDATA[AND a.daily_date >= #{beginTime} ]]>
		<![CDATA[AND a.daily_date <= #{endTime}]]>
		<if test="projectId != null and projectId !=''">
		    and a.project_id=#{projectId} 
		</if>
		<if test="opName != null and opName !=''">
		  and a.asar_op_name like CONCAT('%',#{opName},'%')
		</if>
		GROUP BY
			a.project_id,
			c.projec_name,
			a.asar_op_id,
			a.asar_op_name,
			a.daily_date
		order by a.project_id asc,asar_op_id asc,a.daily_date desc
  </select>
	<!-- 查询当天填报人数-->
	<select id="queryAsraDailyOpNumForCurrentDay" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq"
			resultType="java.lang.Integer">
		select count(1) from (
		   SELECT
		  a.asar_op_id,a.daily_date
		FROM
			asra_daily a
		where 1=1
		   and a.data_state=1
		   and a.daily_date = #{beginTime}
		   and a.asar_op_id in
			<foreach collection="opIds" item="opId" open="(" close=")" separator=",">
				#{opId}
			</foreach>

		group by a.asar_op_id,a.daily_date)c

	</select>
	<!--工时查询-所有员工及自己或者自己项目人数 -->
    <select id="queryAsraDailyAllCountForList" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq"
			resultType="com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO">
		SELECT

		a.project_id as projectId,
		c.projec_name as projectName,
		count(DISTINCT a.asar_op_id) as commitPersonNum
		FROM
		asra_project c,
		asra_daily a
		WHERE
		1 = 1
		AND a.project_id = c.id
		AND  a.asar_op_id  in
		<foreach collection="opIds" item="opId" open="(" close=")" separator=",">
			#{opId}
		</foreach>
		AND a.data_state =1
		<![CDATA[AND a.daily_date >= #{beginTime} ]]>
		<![CDATA[AND a.daily_date <= #{endTime}]]>
		<if test="projectId != null and projectId !=''">
			and a.project_id=#{projectId}
		</if>
		<if test="opName != null and opName !=''">
			and a.asar_op_name like CONCAT('%',#{opName},'%')
		</if>
		GROUP BY
		a.project_id,
		c.projec_name

	</select>


</mapper>