<?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="cn.wise.sc.cement.business.mapper.DataStatisticsMapper"> <select id="countTeamByTime" resultType="cn.wise.sc.cement.business.model.vo.DataStatisticsVo"> SELECT DATE_FORMAT(sd.create_time,'%Y-%m') as name, count(sd.id) as value FROM sample_distribution sd where sd.finish_time is not null <if test="params.startDate != null and params.startDate != ''"> and DATE(sd.create_time) >= #{params.startDate} </if> <if test="params.endDate != null and params.endDate != ''"> and DATE(sd.create_time) <= #{params.endDate} </if> group by name </select> <select id="countTeamByOrigin" resultType="cn.wise.sc.cement.business.model.vo.DataStatisticsVo"> SELECT s.origin as name, count(sd.id) as value FROM sample_distribution sd left join sample s on s.id = sd.sample_id where sd.finish_time is not null <if test="params.startDate != null and params.startDate != ''"> and DATE(sd.create_time) >= #{params.startDate} </if> <if test="params.endDate != null and params.endDate != ''"> and DATE(sd.create_time) <= #{params.endDate} </if> group by s.origin </select> <select id="countItemDistributionSample" resultType="cn.wise.sc.cement.business.entity.ItemDistributionSample"> SELECT COUNT(sd.team_id) as `count`,t.`name` FROM sample_distribution sd LEFT JOIN sample s ON sd.sample_id = s.id LEFT JOIN team t ON t.id = sd.team_id WHERE sd.finish_time BETWEEN #{start} AND #{end} <if test="origin != null and origin != '' "> AND s.origin = #{origin} </if> <if test="teamId != '' and teamId != null"> AND sd.team_id = #{teamId} </if> </select> <select id="countItemDistribution" resultType="cn.wise.sc.cement.business.entity.ItemDistribution"> SELECT COUNT(a.sample_id) as `count`,`key` from (SELECT sd.team_id,sd.sample_id,t.`name`,sd.finish_time,CONCAT(sd.team_id,',',s.origin,',',s.is_foreign) as `key` FROM sample_distribution sd LEFT JOIN sample s ON sd.sample_id = s.id LEFT JOIN team t ON t.id = sd.team_id WHERE (sd.finish_time between #{start} and #{end}) <if test="origins != null"> AND s.origin in <foreach collection="origins" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> <if test="itemId != null"> AND sd.team_id = #{itemId} </if> ) a GROUP BY a.`key` </select> </mapper>