PartyAttendanceRecordMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.inspur.mapper.PartyAttendanceRecordMapper">
  6. <resultMap type="com.inspur.domain.partywork.PartyAttendanceRecord" id="PartyAttendanceRecordResult">
  7. <result property="id" column="id" />
  8. <result property="meetingId" column="meeting_id" />
  9. <result property="type" column="type" />
  10. <result property="memberId" column="member_id" />
  11. <result property="memberName" column="name" />
  12. <result property="username" column="name" />
  13. <result property="sex" column="gender" />
  14. <result property="picPath" column="pic_path" />
  15. <result property="attendanceStatus" column="attendance_status" />
  16. <result property="createTime" column="create_time" />
  17. <result property="signTime" column="sign_time" />
  18. <result property="attence_time" column="sign_time" />
  19. <result property="attendanceCount" column="attendance_count" />
  20. </resultMap>
  21. <resultMap type="com.inspur.domain.partywork.PartyAttendanceVo" id="PartyAttendanceResult">
  22. <result property="title" column="title" />
  23. <result property="attendanceStatus" column="attendance_status" />
  24. <result property="wxcode_url" column="code_img_url" />
  25. <result property="address" column="address" />
  26. <result property="type" column="type" />
  27. <result property="djOrgid" column="dj_orgid" />
  28. <result property="begin_time" column="begin_time" />
  29. <result property="end_time" column="end_time" />
  30. <result property="from_org" column="from_org" />
  31. <result property="join_num" column="join_num" />
  32. <result property="wxcode_url" column="wxcode_url" />
  33. <result property="join_member" column="join_member" />
  34. <result property="status" column="status" />
  35. <result property="code_url" column="code_url" />
  36. <result property="num" column="num" />
  37. <result property="percent" column="percent" />
  38. </resultMap>
  39. <sql id="selectPartyAttendanceRecordVo">
  40. select r.id, r.meeting_id,m.name, m.gender, m.pic_path, r.type, r.member_id, r.attendance_status, r.create_time,r.sign_time from party_attendance_record r
  41. left join party_member_manage m on m.id = r.member_id
  42. </sql>
  43. <select id="selectPartyAttendanceRecordList" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord" resultMap="PartyAttendanceRecordResult">
  44. <include refid="selectPartyAttendanceRecordVo"/>
  45. <where>
  46. <if test="meetingId != null "> and r.meeting_id = #{meetingId}</if>
  47. <if test="type != null "> and r.type = #{type}</if>
  48. <if test="memberId != null "> and member_id = #{memberId}</if>
  49. <if test="attendanceStatus != null "> and r.attendance_status = #{attendanceStatus}</if>
  50. <if test="memberName != null "> and m.name like concat('%', #{memberName}, '%') </if>
  51. and r.id not in (select id from party_attendance_record where member_id in(select member_id from party_attendance_record where meeting_id = #{meetingId} and attendance_status = '2') and (attendance_status = '1' or attendance_status = '0'))
  52. </where>
  53. </select>
  54. <select id="selectAttendanceRecordList" parameterType="Long" resultMap="PartyAttendanceRecordResult">
  55. <include refid="selectPartyAttendanceRecordVo"/>
  56. <where>
  57. <if test="id != null "> and r.meeting_id = #{id}</if>
  58. and attendance_status = '1'
  59. </where>
  60. order by sign_time
  61. </select>
  62. <select id="selectAttendanceRecord2List" parameterType="Long" resultMap="PartyAttendanceRecordResult">
  63. <include refid="selectPartyAttendanceRecordVo"/>
  64. <where>
  65. <if test="id != null "> and r.meeting_id = #{id}</if>
  66. and attendance_status = '0'
  67. </where>
  68. order by sign_time
  69. </select>
  70. <select id="selectleaveList" parameterType="Long" resultMap="PartyAttendanceRecordResult">
  71. <include refid="selectPartyAttendanceRecordVo"/>
  72. <where>
  73. <if test="id != null "> and r.meeting_id = #{id}</if>
  74. and attendance_status = '2'
  75. </where>
  76. </select>
  77. <select id="selectAttendance" parameterType="Long" resultMap="PartyAttendanceResult">
  78. select DISTINCT a.id, a.title, a.type, a.dj_orgid, a.attendance_status,a.code_img_url, a.address, a.begin_time, a.end_time, a.from_org, a.join_num, a.join_member, a.num, concat(round(a.num/a.join_num*100 ,2) ,'%') as percent
  79. from (select me.id, me.title, me.type, me.dj_orgid, me.attendance_status, me.code_img_url, me.address, me.begin_time, me.end_time, me.from_org,(select count(id) from party_attendance_record where meeting_id = #{id} and attendance_status = '1') as num,
  80. (select count(id) as num from party_attendance_record where meeting_id = #{id}) as join_num,
  81. (select GROUP_CONCAT(org.name SEPARATOR ',') AS name
  82. from party_meeting_msg_ref msg
  83. left join party_org_manage org on msg.msg_id = org.id
  84. where msg.type = '1' and msg.meeting_id = #{id}) as join_member
  85. from party_meeting_info me
  86. left join party_attendance_record re on me.id = re.meeting_id
  87. where me.id = #{id}) a
  88. </select>
  89. <select id="selectPartyAttendanceList" parameterType="com.inspur.domain.screen.MenuDataReqVo" resultMap="PartyAttendanceRecordResult">
  90. <include refid="selectPartyAttendanceRecordVo"/>
  91. <where>
  92. <if test="id != null"> and id = #{id}</if>
  93. <if test="keywords != null and keywords != ''"> and topic like concat('%', #{keywords}, '%')</if>
  94. <if test="begintime != null"><!-- 开始时间检索 -->
  95. and date_format(startdata,'%Y%m%d %H:%i:%S') &gt;= date_format(#{begintime},'%Y%m%d %H:%i:%S')
  96. </if>
  97. <if test="endtime != null"><!-- 结束时间检索 -->
  98. and date_format(enddata,'%Y%m%d %H:%i:%S') &lt;= date_format(#{endtime},'%Y%m%d %H:%i:%S')
  99. </if>
  100. </where>
  101. </select>
  102. <select id="selectPartyAttendanceRecordById" parameterType="Long" resultMap="PartyAttendanceRecordResult">
  103. <include refid="selectPartyAttendanceRecordVo"/>
  104. where r.id = #{id}
  105. </select>
  106. <insert id="insertPartyAttendanceRecord" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord" useGeneratedKeys="true" keyProperty="id">
  107. insert into party_attendance_record
  108. <trim prefix="(" suffix=")" suffixOverrides=",">
  109. <if test="meetingId != null">meeting_id,</if>
  110. <if test="type != null">type,</if>
  111. <if test="memberId != null">member_id,</if>
  112. <if test="attendanceStatus != null">attendance_status,</if>
  113. <if test="createTime != null">create_time,</if>
  114. <if test="reason != null">reason,</if>
  115. </trim>
  116. <trim prefix="values (" suffix=")" suffixOverrides=",">
  117. <if test="meetingId != null">#{meetingId},</if>
  118. <if test="type != null">#{type},</if>
  119. <if test="memberId != null">#{memberId},</if>
  120. <if test="attendanceStatus != null">#{attendanceStatus},</if>
  121. <if test="createTime != null">#{createTime},</if>
  122. <if test="reason != null">#{reason},</if>
  123. </trim>
  124. </insert>
  125. <update id="updataAppAttendanceRecord" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord">
  126. update party_attendance_record
  127. <trim prefix="SET" suffixOverrides=",">
  128. <if test="attendanceStatus != null">attendance_status = #{attendanceStatus},</if>
  129. <if test="reason != null">reason = #{reason},</if>
  130. </trim>
  131. where id = #{id}
  132. </update>
  133. <update id="updatePartyAttendanceRecord" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord">
  134. update party_attendance_record
  135. <trim prefix="SET" suffixOverrides=",">
  136. <if test="meetingId != null">meeting_id = #{meetingId},</if>
  137. <if test="type != null">type = #{type},</if>
  138. <if test="memberId != null">member_id = #{memberId},</if>
  139. <if test="attendanceStatus != null">attendance_status = #{attendanceStatus},</if>
  140. <if test="createTime != null">create_time = #{createTime},</if>
  141. </trim>
  142. where id = #{id}
  143. </update>
  144. <update id="updateAppAttendanceRecord" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord">
  145. update party_attendance_record
  146. <trim prefix="SET" suffixOverrides=",">
  147. <if test="attendanceStatus != null">attendance_status = #{attendanceStatus},</if>
  148. <if test="createTime != null">sign_time = #{createTime},</if>
  149. <if test="signtype != null">sign_type = #{signtype},</if>
  150. </trim>
  151. where meeting_id = #{meetingId}
  152. and member_id = #{memberId}
  153. </update>
  154. <delete id="deletePartyAttendanceRecordById" parameterType="Long">
  155. delete from party_attendance_record where id = #{id}
  156. </delete>
  157. <delete id="deletePartyAttendanceRecordByIds" parameterType="String">
  158. delete from party_attendance_record where id in
  159. <foreach item="id" collection="array" open="(" separator="," close=")">
  160. #{id}
  161. </foreach>
  162. </delete>
  163. <delete id="deletePartyAttendanceRecordByMeetingId" parameterType="Long">
  164. delete from party_attendance_record where meeting_id = #{id}
  165. </delete>
  166. <update id="updatePartyAttendanceRecordByMeetingId" parameterType="Long">
  167. update party_attendance_record set attendance_status = 1,sign_Time = now() where meeting_id = #{meetingId} and attendance_status=0
  168. </update>
  169. <select id="getAttendanceRateByMeeting" parameterType="Long" resultMap="PartyAttendanceRecordResult">
  170. select count(1) as attendance_count,m.attendance_status from party_attendance_record m
  171. WHERE
  172. m.meeting_id in
  173. <foreach collection="ids" item="id" open="(" close=")" separator=",">
  174. #{id}
  175. </foreach>
  176. GROUP BY attendance_status
  177. </select>
  178. <update id="updatePartyAttendanceRecordByMeetingAndMemeber" parameterType="com.inspur.domain.partywork.PartyAttendanceRecord">
  179. update party_attendance_record set attendance_status = 2 where meeting_id = #{meetingId} and member_id=#{memberId}
  180. </update>
  181. <update id="updateStatusByMeetingIdAndMemberId">
  182. update party_attendance_record set attendance_status = #{attendanceStatus},sign_Time = now() where meeting_id = #{meetingId} and member_id=#{memberId}
  183. </update>
  184. <select id="selectAttendanced" resultMap="PartyAttendanceRecordResult">
  185. <include refid="selectPartyAttendanceRecordVo" />
  186. where r.meeting_id = #{meetingId} and r.member_id=#{memberId} and r.attendance_status = 1 limit 1
  187. </select>
  188. </mapper>