Browse Source

会议管理打卡统计问题

yanliming 4 years ago
parent
commit
d1016866db

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

@@ -109,6 +109,8 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
 					String meetingDateStr = sdf.format(meetingDate);
 					String meetingDateStr = sdf.format(meetingDate);
 
 
 					String startTimeStr = meetingTime.getStartSignInTime();
 					String startTimeStr = meetingTime.getStartSignInTime();
+                    String meetingTimeStr =  meetingTime.getMeetingTime();
+
 					if(StringUtils.isNotEmpty(startTimeStr)) {
 					if(StringUtils.isNotEmpty(startTimeStr)) {
 						Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"0",startTimeStr,meetingDateStr,recordTime);
 						Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"0",startTimeStr,meetingDateStr,recordTime);
 						//如果在签到时间范围内
 						//如果在签到时间范围内
@@ -144,6 +146,36 @@ public class MeetingPersonRecodeServiceImpl implements MeetingPersonRecodeServic
 						}
 						}
 					}
 					}
 
 
+
+					//会议中打卡
+                    if(StringUtils.isNotEmpty(meetingTimeStr)) {
+                        Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"2",meetingTimeStr,meetingDateStr,recordTime);
+                        //如果在会议中时间范围内
+                        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;
+                            }
+                        }
+                    }
+
 					String endTimeStr = meetingTime.getEndSignInTime();
 					String endTimeStr = meetingTime.getEndSignInTime();
 					if(StringUtils.isNotEmpty(endTimeStr)) {
 					if(StringUtils.isNotEmpty(endTimeStr)) {
 						Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"1",endTimeStr,meetingDateStr,recordTime);
 						Boolean flag = isInSignInTime(meetingTime.getMeetingId(),personId,"1",endTimeStr,meetingDateStr,recordTime);

+ 2 - 3
common/src/main/resources/mapper/business/MeetingPersonRecode.xml

@@ -138,7 +138,7 @@
 				and meetingInfo_id = #{searchParams.meetingId}
 				and meetingInfo_id = #{searchParams.meetingId}
 			</if>
 			</if>
 			<![CDATA[
 			<![CDATA[
-			and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='0') is not null
+			and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id) is not null
 			]]>
 			]]>
 		</where>
 		</where>
 		GROUP BY a.person_id
 		GROUP BY a.person_id
@@ -161,8 +161,7 @@
 				and meetingInfo_id = #{searchParams.meetingId}
 				and meetingInfo_id = #{searchParams.meetingId}
 			</if>
 			</if>
 			<![CDATA[
 			<![CDATA[
-			and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='0') is null
-			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
+			  and (SELECT b.sign_time FROM business_meeting_person_recode b  WHERE b.person_id = a.person_id and b.sign_type='2') is not null
 			]]>
 			]]>
 		</where>
 		</where>
 		GROUP BY a.person_id
 		GROUP BY a.person_id