Просмотр исходного кода

Merge branch 'feature/attendance_0104' into 'wrdp'

考勤,增加对申述审批通过后计算考勤状态并重新发起统计。

See merge request o2oa/o2oa!2723
o2null 5 лет назад
Родитель
Сommit
cfe472d96c

+ 1 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailStatisticFactory.java

@@ -301,6 +301,7 @@ public class AttendanceDetailStatisticFactory extends AbstractFactory {
 		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);	
 		Predicate p = root.get(AttendanceDetail_.empName).in( employeeNames );		
 		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
+		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isAbsent) ));
 		if( cycleYear == null || cycleYear.isEmpty() ){
 			logger.error( new CycleYearEmptyException() );
 		}else{

+ 1 - 1
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java

@@ -595,7 +595,7 @@ public class AttendanceDetailAnalyseService {
 	 * @param debugger
 	 * @throws Exception
 	 */
-	private void recordStatisticRequireLog( AttendanceDetail detail, Boolean debugger ) throws Exception{
+	public void recordStatisticRequireLog( AttendanceDetail detail, Boolean debugger ) throws Exception{
 		//数据分析完成,那么需要记录一下需要统计的信息数据
 		AttendanceStatisticRequireLog log = null;
 		AttendanceStatisticRequireLogFactory attendanceStatisticRequireLogFactory = null;

+ 12 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailService.java

@@ -23,6 +23,7 @@ import javax.persistence.criteria.Root;
 public class AttendanceDetailService {
 	
 	private static  Logger logger = LoggerFactory.getLogger( AttendanceDetailService.class );
+	private AttendanceDetailAnalyseService attendanceDetailAnalyseService = new AttendanceDetailAnalyseService();
 
 	public AttendanceDetail get( EntityManagerContainer emc, String id ) throws Exception {
 		return emc.find(id, AttendanceDetail.class);
@@ -165,7 +166,18 @@ public class AttendanceDetailService {
 				attendanceDetail.setAppealProcessor( null );
 			}
 			attendanceDetail.setAppealStatus( status );
+			if(status == 9){
+				//若申述通过则更新Detail状态,使得Detail为正常打卡
+				attendanceDetail.setIsGetSelfHolidays(false);
+				attendanceDetail.setIsLate(false);
+				attendanceDetail.setIsAbsent(false);
+				attendanceDetail.setIsAbnormalDuty(false);
+				attendanceDetail.setIsLackOfTime(false);
+				//并对该条考勤数据发起统计请求
+				attendanceDetailAnalyseService.recordStatisticRequireLog(attendanceDetail,true);
+			}
 			emc.check( attendanceDetail, CheckPersistType.all );
+
 		}
 		if( autoCommit ){
 			emc.commit();