zhengqiang 4 роки тому
батько
коміт
2f3f949fd6

+ 3 - 0
common/src/main/java/com/jpsoft/shinestar/modules/base/dao/MeetingPersonDAO.java

@@ -19,4 +19,7 @@ public interface MeetingPersonDAO {
 	List<MeetingPerson> findByMeetingId(String meetingId);
 	MeetingPerson findByMeetingIdAndPersonId(@Param("meetingId") String meetingId, @Param("personId")Long personId);
 	List<MeetingPerson> search(Map<String, Object> searchParams, List<Sort> sortList);
+    List<Map> realToSearch(Map<String, Object> searchParams, List<Sort> sortList);
+	List<MeetingPerson> absentSearch(Map<String, Object> searchParams, List<Sort> sortList);
+	List<Map> lateSearch(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 2 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/entity/MeetingPerson.java

@@ -22,5 +22,6 @@ public class MeetingPerson {
 	private String updateBy;
 	private Date updateTime;
 	private Boolean delFlag;
-
+	private Date signTime;
+	private String signType;
 }

+ 3 - 0
common/src/main/java/com/jpsoft/shinestar/modules/base/service/MeetingPersonService.java

@@ -15,4 +15,7 @@ public interface MeetingPersonService {
 	List<MeetingPerson> list();
 	List<MeetingPerson> findByMeetingId(String meetingId);
 	Page<MeetingPerson> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+	Page<Map> realToSearch(Map<String, Object> searchParams, int pageIndex, int pageSize, boolean count, List<Sort> sortList);
+	Page<MeetingPerson> absentSearch(Map<String, Object> searchParams, int pageIndex, int pageSize, boolean count, List<Sort> sortList);
+	Page<Map> lateSearch(Map<String, Object> searchParams, int pageIndex, int pageSize, boolean count, List<Sort> sortList);
 }

+ 27 - 0
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/MeetingPersonServiceImpl.java

@@ -73,4 +73,31 @@ public class MeetingPersonServiceImpl implements MeetingPersonService {
         return page;
 	}
 
+
+	@Override
+	public Page<Map> realToSearch(Map<String, Object> searchParams, int pageIndex, int pageSize, boolean count, List<Sort> sortList) {
+		Page<Map> page = PageHelper.startPage(pageIndex,pageSize,count).doSelectPage(()->{
+			meetingPersonDAO.realToSearch(searchParams,sortList);
+		});
+
+		return page;
+	}
+
+	@Override
+	public Page<MeetingPerson> absentSearch(Map<String, Object> searchParams, int pageIndex, int pageSize, boolean count, List<Sort> sortList) {
+		Page<MeetingPerson> page = PageHelper.startPage(pageIndex,pageSize,count).doSelectPage(()->{
+			meetingPersonDAO.absentSearch(searchParams,sortList);
+		});
+
+		return page;
+	}
+
+	@Override
+	public Page<Map> lateSearch(Map<String, Object> searchParams, int pageIndex, int pageSize, boolean count, List<Sort> sortList) {
+		Page<Map> page = PageHelper.startPage(pageIndex,pageSize,count).doSelectPage(()->{
+			meetingPersonDAO.lateSearch(searchParams,sortList);
+		});
+
+		return page;
+	}
 }

+ 1 - 7
common/src/main/java/com/jpsoft/shinestar/modules/business/dao/MeetingPersonRecodeDAO.java

@@ -19,13 +19,7 @@ public interface MeetingPersonRecodeDAO {
 	List<MeetingPersonRecode> list();
 	MeetingPersonRecode findByMeetingIdAndSignTime(@Param("meetingId") String meetingId, @Param("personId") Long personId,@Param("startTime")Date startTime, @Param("endTime")Date endTime,@Param("signType")String signType);
 	List<MeetingPersonRecode> search(Map<String, Object> searchParams, List<Sort> sortList);
-
-	List<Map> realToSearch(Map<String, Object> searchParams, List<Sort> sortList);
-	List<Map> noAbsentSearch(Map<String, Object> searchParams, List<Sort> sortList);
-
-
-	List<Map> lateSearch(Map<String, Object> searchParams, List<Sort> sortList);
-	List<Map> leaveEarlySearch(Map<String, Object> searchParams, List<Sort> sortList);
+//	List<Map> leaveEarlySearch(Map<String, Object> searchParams, List<Sort> sortList);
 	List<Map> meetingRecordPageList(Map<String, Object> searchParams, List<Sort> sortList);
     List<MeetingPersonRecode> findByPersonIdAndSignTime(Long personId, Date startDate, Date endDate);
 }

+ 1 - 6
common/src/main/java/com/jpsoft/shinestar/modules/business/service/MeetingPersonRecodeService.java

@@ -17,12 +17,7 @@ public interface MeetingPersonRecodeService {
 	List<MeetingPersonRecode> list();
 	boolean punchIn(String deviceNo, Long personId, Date recordTime) throws ParseException;
 	Page<MeetingPersonRecode> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
-	Page<Map> realToSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList);
-	Page<Map> noAbsentSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList);
-	Page<Map> lateSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList);
-	Page<Map> leaveEarlySearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList);
-
+//	Page<Map> leaveEarlySearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList);
 	Page<Map> meetingRecordPageList(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
-
     Map<String, Object> findByPersonIdAndDate(Long personId, Date attendanceDate);
 }

+ 31 - 68
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/MeetingPersonRecodeServiceImpl.java

@@ -117,20 +117,18 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
 						if(flag){
 							MeetingPerson meetingPerson = meetingPersonDAO.findByMeetingIdAndPersonId(meetingTime.getMeetingId(),personId);
 
-							boolean isSignPerson = false;
-
 							if(meetingPerson !=null){
-								isSignPerson = true;
-							}
+								if(meetingPerson.getSignTime()==null){
+									meetingPerson.setSignTime(recordTime);
+								}
+								else if(recordTime.before(meetingPerson.getSignTime())){
+									meetingPerson.setSignTime(recordTime);
+								}
 
-//							for (MeetingPerson meetingPerson:meetingPersonList) {
-//								if(meetingPerson.getPersonId() == personId){
-//									isSignPerson = true;
-//									break;
-//								}
-//							}
+								meetingPerson.setUpdateTime(new Date());
+								meetingPerson.setSignType("0");
+								meetingPersonDAO.update(meetingPerson);
 
-							if(isSignPerson) {
 								MeetingPersonRecode meetingPersonRecode = new MeetingPersonRecode();
 								meetingPersonRecode.setId(UUID.randomUUID().toString());
 								meetingPersonRecode.setMeetingInfoId(meetingTime.getMeetingId());
@@ -146,7 +144,6 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
 						}
 					}
 
-
 					//会议中打卡
                     if(StringUtils.isNotEmpty(meetingTimeStr)) {
                         Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"2",meetingTimeStr,meetingDateStr,recordTime);
@@ -154,29 +151,32 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
                         if(flag){
                             MeetingPerson meetingPerson = meetingPersonDAO.findByMeetingIdAndPersonId(meetingTime.getMeetingId(),personId);
 
-                            boolean isSignPerson = false;
-
                             if(meetingPerson !=null){
-                                isSignPerson = true;
-                            }
-
-                            if(isSignPerson) {
-                                MeetingPersonRecode meetingPersonRecode = new MeetingPersonRecode();
-                                meetingPersonRecode.setId(UUID.randomUUID().toString());
-                                meetingPersonRecode.setMeetingInfoId(meetingTime.getMeetingId());
-                                meetingPersonRecode.setCreateTime(new Date());
-                                meetingPersonRecode.setDelFlag(false);
-                                meetingPersonRecode.setPersonId(personId);
-                                meetingPersonRecode.setSignTime(recordTime);
-                                meetingPersonRecode.setSignType("2");
-                                meetingPersonRecodeDAO.insert(meetingPersonRecode);
-                                result = true;
-                                break;
+								if(meetingPerson.getSignTime()==null){
+									meetingPerson.setSignTime(recordTime);
+									meetingPerson.setUpdateTime(new Date());
+									meetingPerson.setSignType("2");
+
+									meetingPersonDAO.update(meetingPerson);
+
+									MeetingPersonRecode meetingPersonRecode = new MeetingPersonRecode();
+									meetingPersonRecode.setId(UUID.randomUUID().toString());
+									meetingPersonRecode.setMeetingInfoId(meetingTime.getMeetingId());
+									meetingPersonRecode.setCreateTime(new Date());
+									meetingPersonRecode.setDelFlag(false);
+									meetingPersonRecode.setPersonId(personId);
+									meetingPersonRecode.setSignTime(recordTime);
+									meetingPersonRecode.setSignType("2");
+									meetingPersonRecodeDAO.insert(meetingPersonRecode);
+									result = true;
+									break;
+								}
                             }
                         }
                     }
 
 					String endTimeStr = meetingTime.getEndSignInTime();
+
 					if(StringUtils.isNotEmpty(endTimeStr)) {
 						Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"1",endTimeStr,meetingDateStr,recordTime);
 						//如果在签到时间范围内
@@ -189,18 +189,6 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
 								isSignPerson = true;
 							}
 
-
-//							List<MeetingPerson> meetingPersonList = meetingPersonDAO.findByMeetingId(meetingTime.getMeetingId());
-//
-//							boolean isSignPerson = false;
-//
-//							for (MeetingPerson meetingPerson:meetingPersonList) {
-//								if(meetingPerson.getPersonId() == personId){
-//									isSignPerson = true;
-//									break;
-//								}
-//							}
-
 							if(isSignPerson) {
 								MeetingPersonRecode meetingPersonRecode = new MeetingPersonRecode();
 								meetingPersonRecode.setId(UUID.randomUUID().toString());
@@ -260,38 +248,13 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
         return page;
 	}
 
-	@Override
-	public Page<Map> realToSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-		Page<Map> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-			meetingPersonRecodeDAO.realToSearch(searchParams,sortList);
-		});
-		return page;
-	}
-
-	@Override
-	public Page<Map> noAbsentSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-		Page<Map> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-			meetingPersonRecodeDAO.noAbsentSearch(searchParams,sortList);
-		});
-		return page;
-	}
-
-
-	@Override
-	public Page<Map> lateSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-		Page<Map> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-			meetingPersonRecodeDAO.lateSearch(searchParams,sortList);
-		});
-		return page;
-	}
-
-	@Override
+/*	@Override
 	public Page<Map> leaveEarlySearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
 		Page<Map> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
 			meetingPersonRecodeDAO.leaveEarlySearch(searchParams,sortList);
 		});
 		return page;
-	}
+	}*/
 
 	@Override
 	public Page<Map> meetingRecordPageList(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList){

+ 150 - 94
common/src/main/resources/mapper/base/MeetingPerson.xml

@@ -1,105 +1,161 @@
 <?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">
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!-- namespace必须指向DAO接口 -->
 <mapper namespace="com.jpsoft.shinestar.modules.base.dao.MeetingPersonDAO">
-	<resultMap id="MeetingPersonMap" type="com.jpsoft.shinestar.modules.base.entity.MeetingPerson">
-		<id property="id" column="id_" />
-			<result property="personId" column="person_id" />
-			<result property="meetingInfoId" column="meetingInfo_id" />
-			<result property="createBy" column="create_by" />
-			<result property="createTime" column="create_time" />
-			<result property="updateBy" column="update_by" />
-			<result property="updateTime" column="update_time" />
-			<result property="delFlag" column="del_flag" />
-			</resultMap>
-	<insert id="insert" parameterType="MeetingPerson">
-	<!--
-	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
-		select sys_guid() from dual
-	</selectKey>
-	-->
-	<![CDATA[
+    <resultMap id="MeetingPersonMap" type="com.jpsoft.shinestar.modules.base.entity.MeetingPerson">
+        <id property="id" column="id_"/>
+        <result property="personId" column="person_id"/>
+        <result property="meetingInfoId" column="meetingInfo_id"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="signTime" column="sign_time"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="signType" column="sign_type"/>
+    </resultMap>
+    <insert id="insert" parameterType="com.jpsoft.shinestar.modules.base.entity.MeetingPerson">
+        <!--
+        <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+            select sys_guid() from dual
+        </selectKey>
+        -->
+        <![CDATA[
 		insert into base_meeting_person
-	    (id_,person_id,meetingInfo_id,create_by,create_time,update_by,update_time,del_flag)
+	    (id_,person_id,meetingInfo_id,create_by,create_time,update_by,update_time,del_flag,sign_time,sign_type)
 		values
 		(
-#{id,jdbcType=VARCHAR}
-,#{personId,jdbcType= NUMERIC }
-,#{meetingInfoId,jdbcType=VARCHAR}
-,#{createBy,jdbcType=VARCHAR}
-,#{createTime,jdbcType= TIMESTAMP }
-,#{updateBy,jdbcType=VARCHAR}
-,#{updateTime,jdbcType= TIMESTAMP }
-,#{delFlag,jdbcType= NUMERIC }
+            #{id,jdbcType=VARCHAR}
+            ,#{personId,jdbcType= NUMERIC }
+            ,#{meetingInfoId,jdbcType=VARCHAR}
+            ,#{createBy,jdbcType=VARCHAR}
+            ,#{createTime,jdbcType= TIMESTAMP }
+            ,#{updateBy,jdbcType=VARCHAR}
+            ,#{updateTime,jdbcType= TIMESTAMP }
+            ,#{delFlag,jdbcType= NUMERIC }
+            ,#{signTime,jdbcType= TIMESTAMP }
+            ,#{signType,jdbcType=VARCHAR}
 		)
 	]]>
-	</insert>
-	<delete id="delete" parameterType="string">
-		delete from base_meeting_person where id_=#{id,jdbcType=VARCHAR}
-	</delete>
-	<update id="update" parameterType="MeetingPerson">
-		update base_meeting_person
-		<set>
-				<if test="personId!=null">
-		person_id=#{personId,jdbcType= NUMERIC },
-		</if>
-				<if test="meetingInfoId!=null">
-		meetingInfo_id=#{meetingInfoId,jdbcType=VARCHAR},
-		</if>
-				<if test="createBy!=null">
-		create_by=#{createBy,jdbcType=VARCHAR},
-		</if>
-				<if test="createTime!=null">
-		create_time=#{createTime,jdbcType= TIMESTAMP },
-		</if>
-				<if test="updateBy!=null">
-		update_by=#{updateBy,jdbcType=VARCHAR},
-		</if>
-				<if test="updateTime!=null">
-		update_time=#{updateTime,jdbcType= TIMESTAMP },
-		</if>
-				<if test="delFlag!=null">
-		del_flag=#{delFlag,jdbcType= NUMERIC },
-		</if>
-		</set>
-	where id_=#{id}
-	</update>
-	<select id="get" parameterType="string" resultMap="MeetingPersonMap">
-		select 
-id_,person_id,meetingInfo_id,create_by,create_time,update_by,update_time,del_flag		from base_meeting_person where id_=#{0}
-	</select>
-	<select id="exist" parameterType="string" resultType="int">
-		select count(*) from base_meeting_person where id_=#{0}
-	</select>
-	<select id="list" resultMap="MeetingPersonMap">
-		select * from base_meeting_person
-	</select>
-	<select id="findByMeetingId" resultMap="MeetingPersonMap">
-		select * from base_meeting_person where del_flag=false and meetingInfo_id=#{0}
-	</select>
-	<select id="findByMeetingIdAndPersonId" resultMap="MeetingPersonMap">
-		select * from base_meeting_person where del_flag=false and meetingInfo_id = #{meetingId} and person_id = #{personId} limit 1
-	</select>
-	<select id="search" parameterType="hashmap" resultMap="MeetingPersonMap">
-		<![CDATA[
+    </insert>
+    <delete id="delete" parameterType="string">
+        delete from base_meeting_person where id_=#{id,jdbcType=VARCHAR}
+    </delete>
+    <update id="update" parameterType="com.jpsoft.shinestar.modules.base.entity.MeetingPerson">
+        update base_meeting_person
+        <set>
+            <if test="personId!=null">
+                person_id=#{personId,jdbcType= NUMERIC },
+            </if>
+            <if test="meetingInfoId!=null">
+                meetingInfo_id=#{meetingInfoId,jdbcType=VARCHAR},
+            </if>
+            <if test="createBy!=null">
+                create_by=#{createBy,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime!=null">
+                create_time=#{createTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="updateBy!=null">
+                update_by=#{updateBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime!=null">
+                update_time=#{updateTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="delFlag!=null">
+                del_flag=#{delFlag,jdbcType= NUMERIC },
+            </if>
+            <if test="signTime!=null">
+                sign_time=#{signTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="signType!=null">
+                sign_type=#{signType,jdbcType= VARCHAR },
+            </if>
+        </set>
+        where id_=#{id}
+    </update>
+    <select id="get" parameterType="string" resultMap="MeetingPersonMap">
+        select * from base_meeting_person where id_=#{0}
+    </select>
+    <select id="exist" parameterType="string" resultType="int">
+        select count(*) from base_meeting_person where id_=#{0}
+    </select>
+    <select id="list" resultMap="MeetingPersonMap">
+        select * from base_meeting_person
+    </select>
+    <select id="findByMeetingId" resultMap="MeetingPersonMap">
+        select * from base_meeting_person where del_flag=false and meetingInfo_id=#{0}
+    </select>
+    <select id="findByMeetingIdAndPersonId" resultMap="MeetingPersonMap">
+        select * from base_meeting_person where del_flag=false and meetingInfo_id = #{meetingId} and person_id =
+        #{personId} limit 1
+    </select>
+    <select id="search" parameterType="hashmap" resultMap="MeetingPersonMap">
+        <![CDATA[
 			select * from base_meeting_person
 		]]>
-		<where>
-			del_flag = false
-			<if test="searchParams.meetingId != null">
-				and meetingInfo_id = #{searchParams.meetingId}
-			</if>
-			<if test="searchParams.personIdList!=null">
-				<foreach collection="searchParams.personIdList" index="index" item="item" open=" and person_id not in (" separator="," close=")">
-					#{item}
-				</foreach>
-			</if>
-		</where>
-		<foreach item="sort" collection="sortList"  open="order by" separator=",">
-	        ${sort.name} ${sort.order}
-	 	</foreach>
-	</select>
-
-
+        <where>
+            del_flag = false
+            <if test="searchParams.meetingId != null">
+                and meetingInfo_id = #{searchParams.meetingId}
+            </if>
+            <if test="searchParams.personIdList!=null">
+                <foreach collection="searchParams.personIdList" index="index" item="item" open=" and person_id not in ("
+                         separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
+    <select id="absentSearch" parameterType="hashmap" resultMap="MeetingPersonMap">
+        <![CDATA[
+			select a.*
+			FROM base_meeting_person a
+		]]>
+        <where>
+            a.del_flag=0 and a.sign_time is null
+            <if test="searchParams.meetingId != null">
+                and a.meetingInfo_id = #{searchParams.meetingId}
+            </if>
+        </where>
+        <foreach item="sort" collection="sortList"  open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+        <!--and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='1') is not null-->
+    </select>
+    <select id="realToSearch" parameterType="hashmap" resultType="java.util.HashMap">
+        <![CDATA[
+			select a.person_id,a.sign_time
+			FROM base_meeting_person a
+		]]>
+        <where>
+            a.del_flag=0 and a.sign_time is not null
+            <if test="searchParams.meetingId != null">
+                and a.meetingInfo_id = #{searchParams.meetingId}
+            </if>
+        </where>
+        <foreach item="sort" collection="sortList"  open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+        <!--and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='1') is not null-->
+    </select>
+    <select id="lateSearch" parameterType="hashmap" resultType="java.util.HashMap">
+        <![CDATA[
+			select a.person_id,a.sign_time
+			from base_meeting_person a
+		]]>
+        <where>
+            a.del_flag=0 and a.sign_type='2'
+            <if test="searchParams.meetingId != null">
+                and a.meetingInfo_id = #{searchParams.meetingId}
+            </if>
+        </where>
+        <foreach item="sort" collection="sortList"  open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
 </mapper>

+ 4 - 53
common/src/main/resources/mapper/business/MeetingPersonRecode.xml

@@ -92,7 +92,6 @@
 			and sign_time >= #{startTime} and sign_time <= #{endTime} limit 1
 		]]>
 	</select>
-
 	<select id="search" parameterType="hashmap" resultMap="MeetingPersonRecodeMap">
 		<![CDATA[
 			select * from business_meeting_person_recode
@@ -106,50 +105,7 @@
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
-
-
-	<select id="noAbsentSearch" parameterType="hashmap" resultType="java.util.HashMap">
-		<![CDATA[
-			select a.person_id,
-			(SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='0' and meetingInfo_id = #{searchParams.meetingId} limit 1) as startTime,
-			(SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='1' and meetingInfo_id = #{searchParams.meetingId} limit 1) as endTime
-			FROM business_meeting_person_recode a
-		]]>
-		<where>
-			<if test="searchParams.meetingId != null">
-				and meetingInfo_id = #{searchParams.meetingId}
-			</if>
-		</where>
-		GROUP BY a.person_id
-		<foreach item="sort" collection="sortList"  open="order by" separator=",">
-			${sort.name} ${sort.order}
-		</foreach>
-	</select>
-
-	<select id="realToSearch" parameterType="hashmap" resultType="java.util.HashMap">
-		<![CDATA[
-			select a.person_id,
-			(SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='0' and meetingInfo_id = #{searchParams.meetingId} limit 1) as startTime,
-			(SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='1' and meetingInfo_id = #{searchParams.meetingId} limit 1) as endTime
-			FROM business_meeting_person_recode a
-		]]>
-		<where>
-			<if test="searchParams.meetingId != null">
-				and meetingInfo_id = #{searchParams.meetingId}
-			</if>
-			<![CDATA[
-			and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and meetingInfo_id = #{searchParams.meetingId} limit 1) is not null
-			]]>
-		</where>
-		GROUP BY a.person_id
-		<foreach item="sort" collection="sortList"  open="order by" separator=",">
-			${sort.name} ${sort.order}
-		</foreach>
-		<!--and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='1') is not null-->
-	</select>
-
-
-	<select id="lateSearch" parameterType="hashmap" resultType="java.util.HashMap">
+<!--	<select id="noAbsentSearch" parameterType="hashmap" resultType="java.util.HashMap">
 		<![CDATA[
 			select a.person_id,
 			(SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='0' and meetingInfo_id = #{searchParams.meetingId} limit 1) as startTime,
@@ -160,17 +116,13 @@
 			<if test="searchParams.meetingId != null">
 				and meetingInfo_id = #{searchParams.meetingId}
 			</if>
-			<![CDATA[
-			  and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='2' and meetingInfo_id = #{searchParams.meetingId} limit 1) is not null
-			]]>
 		</where>
 		GROUP BY a.person_id
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 			${sort.name} ${sort.order}
 		</foreach>
-
-	</select>
-	<select id="leaveEarlySearch" parameterType="hashmap" resultType="java.util.HashMap">
+	</select>-->
+<!--	<select id="leaveEarlySearch" parameterType="hashmap" resultType="java.util.HashMap">
 		<![CDATA[
 			select a.person_id,
 			(SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='0' and meetingInfo_id = #{searchParams.meetingId} limit 1) as startTime,
@@ -190,8 +142,7 @@
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 			${sort.name} ${sort.order}
 		</foreach>
-
-	</select>
+	</select>-->
 	<select id="meetingRecordPageList" parameterType="hashmap" resultType="java.util.HashMap">
 		<![CDATA[
 			SELECT a.name_ as name,a.id_ as id,a.status_ as status,

+ 41 - 67
web/src/main/java/com/jpsoft/shinestar/modules/business/controller/MeetingPersonRecodeController.java

@@ -171,7 +171,7 @@ public class MeetingPersonRecodeController {
             Map<String, Object> searchParams = new HashMap<>();
 
             List<Sort> sortList = new ArrayList<>();
-            sortList.add(new Sort("create_time", "desc"));
+            sortList.add(new Sort("sign_time", "desc"));
 
             if (StringUtils.isNotEmpty(meetingId)) {
                 searchParams.put("meetingId", meetingId);
@@ -181,17 +181,16 @@ public class MeetingPersonRecodeController {
 
             if(type.equals("2")){
                 //实到
-                page = meetingPersonRecodeService.realToSearch(searchParams, pageIndex, pageSize, true, sortList);
-            }
-            else if(type.equals("5")){
-                //迟到
-                page = meetingPersonRecodeService.lateSearch(searchParams, pageIndex, pageSize, true, sortList);
+                page = meetingPersonService.realToSearch(searchParams, pageIndex, pageSize, true, sortList);
             }
             else{
-                //早退
-                page = meetingPersonRecodeService.leaveEarlySearch(searchParams, pageIndex, pageSize, true, sortList);
+                //if(type.equals("5")) 迟到
+                page = meetingPersonService.lateSearch(searchParams, pageIndex, pageSize, true, sortList);
             }
-
+//            else{
+                //早退
+//                page = meetingPersonRecodeService.leaveEarlySearch(searchParams, pageIndex, pageSize, true, sortList);
+//            }
 
             Page<MeetingPersonRecodeDTO> pageDto = new Page<>();
 
@@ -208,8 +207,8 @@ public class MeetingPersonRecodeController {
                     }
                 }
 
-                if (map.get("startTime") != null) {
-                    Date startSignTime = sdf.parse(map.get("startTime").toString());
+                if (map.get("sign_time") != null) {
+                    Date startSignTime = sdf.parse(map.get("sign_time").toString());
                     dto.setStartSignTime(startSignTime);
                 }
                 if (map.get("endTime") != null) {
@@ -255,16 +254,16 @@ public class MeetingPersonRecodeController {
 
         if(type.equals("2")){
             //实到
-            page = meetingPersonRecodeService.realToSearch(searchParams, pageIndex, pageSize, true, sortList);
+            page = meetingPersonService.realToSearch(searchParams, pageIndex, pageSize, true, sortList);
         }
-        else if(type.equals("5")){
-            //迟到
-            page = meetingPersonRecodeService.lateSearch(searchParams, pageIndex, pageSize, true, sortList);
-        }
-        else{
-            //早退
-            page = meetingPersonRecodeService.leaveEarlySearch(searchParams, pageIndex, pageSize, true, sortList);
+        else {
+            //if(type.equals("5")) 迟到
+            page = meetingPersonService.lateSearch(searchParams, pageIndex, pageSize, true, sortList);
         }
+//        else{
+//            //早退
+//            page = meetingPersonRecodeService.leaveEarlySearch(searchParams, pageIndex, pageSize, true, sortList);
+//        }
 
         for (Map map:page) {
             String name = "";
@@ -309,28 +308,17 @@ public class MeetingPersonRecodeController {
             Map<String, Object> searchParams = new HashMap<>();
 
             List<Sort> sortList = new ArrayList<>();
-            sortList.add(new Sort("create_time", "desc"));
+            sortList.add(new Sort("sign_time", "desc"));
 
             if (StringUtils.isNotEmpty(meetingId)) {
                 searchParams.put("meetingId", meetingId);
             }
 
-            //缺席
-            Page<Map> pageTemp = meetingPersonRecodeService.noAbsentSearch(searchParams, pageIndex, 10000, true, sortList);
-            List<Long> personIdList = new ArrayList<>();
-            for (Map map:pageTemp) {
-                if(map.get("person_id")!=null){
-                    personIdList.add(Long.parseLong(map.get("person_id").toString()));
-                }
-            }
-            if(personIdList.size()>0){
-                searchParams.put("personIdList", personIdList);
-            }
-
-            Page<MeetingPerson> page = meetingPersonService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
-
             Page<MeetingPersonRecodeDTO> pageDto = new Page<>();
 
+            //缺席
+            Page<MeetingPerson> page = meetingPersonService.absentSearch(searchParams, pageIndex, pageSize, true, sortList);
+
             for (MeetingPerson meetingPerson : page) {
                 MeetingPersonRecodeDTO dto = new MeetingPersonRecodeDTO();
 
@@ -369,27 +357,16 @@ public class MeetingPersonRecodeController {
         Map<String, Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time", "desc"));
+        sortList.add(new Sort("sign_time", "desc"));
 
         if (StringUtils.isNotEmpty(meetingId)) {
             searchParams.put("meetingId", meetingId);
         }
 
         //缺席
-        Page<Map> pageTemp = meetingPersonRecodeService.noAbsentSearch(searchParams, pageIndex, 10000, true, sortList);
-        List<Long> personIdList = new ArrayList<>();
-        for (Map map:pageTemp) {
-            if(map.get("person_id")!=null){
-                personIdList.add(Long.parseLong(map.get("person_id").toString()));
-            }
-        }
-        if(personIdList.size()>0){
-            searchParams.put("personIdList", personIdList);
-        }
+        Page<MeetingPerson> page = meetingPersonService.absentSearch(searchParams, pageIndex, pageSize, true, sortList);
 
-        Page<MeetingPerson> page = meetingPersonService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
-
-        for (MeetingPerson meetingPerson:page) {
+        for (MeetingPerson meetingPerson : page) {
             Map<String,Object> map = new HashMap<>();
 
             Long personId = meetingPerson.getPersonId();
@@ -432,10 +409,7 @@ public class MeetingPersonRecodeController {
             Map<String, Object> searchParams = new HashMap<>();
 
             List<Sort> sortList = new ArrayList<>();
-            sortList.add(new Sort("a.create_time", "desc"));
-
-            List<Sort> sortList1 = new ArrayList<>();
-            sortList1.add(new Sort("create_time", "desc"));
+            sortList.add(new Sort("a.sign_time", "desc"));
 
             if (StringUtils.isNotEmpty(meetingId)) {
                 searchParams.put("meetingId", meetingId);
@@ -470,33 +444,33 @@ public class MeetingPersonRecodeController {
                 searchParams.put("meetingId", id);
 
                 //缺席
-                Page<Map> pageTemp = meetingPersonRecodeService.noAbsentSearch(searchParams, pageIndex, 10000, true, sortList1);
-                List<Long> personIdList = new ArrayList<>();
-                for (Map tempMap:pageTemp) {
-                    if(tempMap.get("person_id")!=null){
-                        personIdList.add(Long.parseLong(tempMap.get("person_id").toString()));
-                    }
-                }
-                if(personIdList.size()>0){
-                    searchParams.put("personIdList", personIdList);
-                }
+//                Page<Map> pageTemp = meetingPersonRecodeService.noAbsentSearch(searchParams, pageIndex, 10000, true, sortList1);
+//                List<Long> personIdList = new ArrayList<>();
+//                for (Map tempMap:pageTemp) {
+//                    if(tempMap.get("person_id")!=null){
+//                        personIdList.add(Long.parseLong(tempMap.get("person_id").toString()));
+//                    }
+//                }
+//                if(personIdList.size()>0){
+//                    searchParams.put("personIdList", personIdList);
+//                }
 
                 //缺席人数
-                Page<MeetingPerson> page0 = meetingPersonService.pageSearch(searchParams, pageIndex, 10000, true, sortList1);
+                Page<MeetingPerson> page0 = meetingPersonService.absentSearch(searchParams, pageIndex, 10000, true, sortList);
 
                 //实到
-                Page<Map>  page1 = meetingPersonRecodeService.realToSearch(searchParams, pageIndex, 10000, true, sortList);
+                Page<Map>  page1 = meetingPersonService.realToSearch(searchParams, pageIndex, 10000, true, sortList);
 
                 //迟到
-                Page<Map>  page2 = meetingPersonRecodeService.lateSearch(searchParams, pageIndex, 10000, true, sortList);
+                Page<Map>  page2 = meetingPersonService.lateSearch(searchParams, pageIndex, 10000, true, sortList);
 
                 //早退
-                Page<Map>  page3 = meetingPersonRecodeService.leaveEarlySearch(searchParams, pageIndex, 10000, true, sortList);
+//                Page<Map>  page3 = meetingPersonRecodeService.leaveEarlySearch(searchParams, pageIndex, 10000, true, sortList);
 
                 map.put("absentNum",page0.getTotal());
                 map.put("realNum",page1.getTotal());
                 map.put("lateNum",page2.getTotal());
-                map.put("leaveEarlyNum",page3.getTotal());
+//                map.put("leaveEarlyNum",page3.getTotal());
 
                 String statusN="";