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

修复个人顶层组织的判断错误bug

zhourui 5 лет назад
Родитель
Сommit
b0a449f1f3
100 измененных файлов с 0 добавлено и 12764 удалено
  1. 0 768
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/date/DateOperation.java
  2. 0 275
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/Excel2003Reader.java
  3. 0 233
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/Excel2007Reader.java
  4. 0 58
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/ExcelReaderUtil.java
  5. 0 13
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/IRowReader.java
  6. 0 23
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/ImportExcelReader.java
  7. 0 225
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/UserModelEventListener.java
  8. 0 225
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/AbstractExcel2007Writer.java
  9. 0 60
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/Excel2003Writer.java
  10. 0 44
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/Excel2007WriterImpl.java
  11. 0 48
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/XMLEncoder.java
  12. 0 24
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/AbstractFactory.java
  13. 0 33
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/ApplicationServletContextListener.java
  14. 0 16
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/CacheUtil.java
  15. 0 13
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/ExceptionWrapInConvert.java
  16. 0 7
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/MimeTypeDefinition.java
  17. 0 16
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/exception/PersonHasNoIdentityException.java
  18. 0 53
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceAdminFactory.java
  19. 0 508
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceAppealInfoFactory.java
  20. 0 958
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceDetailFactory.java
  21. 0 159
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceDetailMobileFactory.java
  22. 0 925
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceDetailStatisticFactory.java
  23. 0 67
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceEmployeeConfigFactory.java
  24. 0 53
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceImportFileInfoFactory.java
  25. 0 97
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceScheduleSettingFactory.java
  26. 0 274
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceSelfHolidayFactory.java
  27. 0 85
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceSettingFactory.java
  28. 0 124
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceStatisticRequireLogFactory.java
  29. 0 73
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceStatisticalCycleFactory.java
  30. 0 217
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceWorkDayConfigFactory.java
  31. 0 53
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceWorkPlaceFactory.java
  32. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/CycleMonthEmptyException.java
  33. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/CycleYearEmptyException.java
  34. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/EmployeeNamesEmptyException.java
  35. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/RecordDateEmptyException.java
  36. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticDateEmptyException.java
  37. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticMonthEmptyException.java
  38. 0 652
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticPersonForMonthFactory.java
  39. 0 281
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticTopUnitForDayFactory.java
  40. 0 263
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticTopUnitForMonthFactory.java
  41. 0 353
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticUnitForDayFactory.java
  42. 0 872
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticUnitForMonthFactory.java
  43. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticYearEmptyException.java
  44. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/TopUnitNamesEmptyException.java
  45. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/UnitNamesEmptyException.java
  46. 0 10
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/AppealConfig.java
  47. 0 34
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/AttendanceJaxrsFilter.java
  48. 0 15
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/AttendanceSimpleJaxrsFilter.java
  49. 0 39
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/DateRecord.java
  50. 0 11
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/DingdingJaxrsFilter.java
  51. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/ExceptionAttendanceProcess.java
  52. 0 158
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionExportAbnormalDetail.java
  53. 0 164
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionExportHolidayDetail.java
  54. 0 36
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionImportFileDownload.java
  55. 0 153
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionImportFileUpload.java
  56. 0 27
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/AttendanceImportFileInfoCache.java
  57. 0 11
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/BaseAction.java
  58. 0 114
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/FileImportExportAction.java
  59. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/exception/ExceptionCheckImportData.java
  60. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/exception/ExceptionEmptyExtension.java
  61. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/exception/ExceptionGetFileName.java
  62. 0 44
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionDelete.java
  63. 0 67
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionGet.java
  64. 0 74
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionListAll.java
  65. 0 139
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionSave.java
  66. 0 129
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/AttendanceAdminAction.java
  67. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/BaseAction.java
  68. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/exception/ExceptionAttendanceAdminProcess.java
  69. 0 46
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealArchive.java
  70. 0 254
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealAudit.java
  71. 0 243
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealCheck.java
  72. 0 296
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealCreate.java
  73. 0 112
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealProcessFirst.java
  74. 0 114
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealProcessSecond.java
  75. 0 228
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAttendanceDetailAppeal.java
  76. 0 46
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAttendanceDetailArchive.java
  77. 0 43
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionDelete.java
  78. 0 63
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionGet.java
  79. 0 87
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionListNextWithFilter.java
  80. 0 91
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionListPrevWithFilter.java
  81. 0 231
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/AttendanceAppealInfoAction.java
  82. 0 18
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/BaseAction.java
  83. 0 133
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/WrapInFilterAppeal.java
  84. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionAttendanceAppealNotExists.java
  85. 0 16
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionAttendanceAppealProcess.java
  86. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionAttendanceDetailNotExists.java
  87. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionPersonHasNoIdenitity.java
  88. 0 12
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionPersonHasNoUnit.java
  89. 0 89
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionAnalyseAttendanceDetail.java
  90. 0 82
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionAnalyseAttendanceDetails.java
  91. 0 50
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionArchiveAttendanceDetail.java
  92. 0 101
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionCheckWithPersonByCycle.java
  93. 0 47
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionDelete.java
  94. 0 49
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionDeleteMobile.java
  95. 0 71
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionGet.java
  96. 0 71
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionGetMobile.java
  97. 0 83
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListImportByFileName.java
  98. 0 242
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListMobileWithFilter.java
  99. 0 128
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListNextWithFilter.java
  100. 0 129
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListPrevWithFilter.java

+ 0 - 768
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/date/DateOperation.java

@@ -1,768 +0,0 @@
-package com.x.attendance.assemble.common.date;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-
-public class DateOperation {
-	/**
-	 * 根据样式得到格式化对象SimpleDateFormat
-	 * @param date
-	 * @param style
-	 * @return
-	 */
-	public String getDate(Date date, String style) {
-		SimpleDateFormat format = new SimpleDateFormat(style);
-		return format.format(date);
-	}
-
-	/**
-	 * 得到某日期的日期部分
-	 * 
-	 * @param date
-	 * @return yyyy-MM-dd
-	 */
-	public String getDate(Date date) {
-		return format1.format(date);
-	}
-
-	/**
-	 * 得到某日期的时间部分
-	 * 
-	 * @param date
-	 * @return HH:mm:ss
-	 */
-	public  String getTime(Date date) {
-		return format2.format(date);
-	}
-
-	public  Date getDateFromString(String dateString, String style) throws Exception{
-		Date date = null;
-		if(style==null||"".equals(style.trim())){
-			date = format1.parse(dateString);
-		}else if("yyyy-MM-dd HH:mm:ss".equalsIgnoreCase(style.trim())){
-			date = format3.parse(dateString);
-		}else if("yyyy-MM-dd HH:mm".equalsIgnoreCase(style.trim())){
-			date = format3_2.parse(dateString);
-		}else if("yyyy/MM/dd HH:mm:ss".equalsIgnoreCase(style.trim())){
-			date = format3_1.parse(dateString);
-		}else if("yyyy/MM/dd".equalsIgnoreCase(style.trim())){
-			date = format4.parse(dateString);
-		}else if("yyyy-MM-dd".equalsIgnoreCase(style.trim())){
-			date = format1.parse(dateString);
-		}else if("yyyyMMdd".equalsIgnoreCase(style.trim())){
-			date = format5.parse(dateString);
-		}else if("yyyyMMddHHmmss".equalsIgnoreCase(style.trim())){
-			date = format7.parse(dateString);
-		}else if("HH:mm:ss".equalsIgnoreCase(style.trim())){
-			date = format2.parse(dateString);
-		}else if("HH:mm".equalsIgnoreCase(style.trim())){
-			date = format2_1.parse(dateString);
-		}else{
-			throw new Exception("对不起,您输入的日期style系统无法识别,请检查您的参数输入!");
-		}
-		return date;
-	}
-	
-	/**
-	 * 将字符串转换为日期格式
-	 * 会尝试多种格式转换,转换成功后返回结果
-	 * @param dateString
-	 * @return
-	 * @throws Exception
-	 */
-	public  Date getDateFromString( String dateString ) throws Exception{
-		Date date = null;
-		try{
-			date = getDateFromString( dateString, "yyyy-MM-dd HH:mm:ss" );
-			return date;
-		}catch(Exception e){}
-
-		try{
-			date = getDateFromString( dateString, "yyyy-MM-dd HH:mm" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "yyyy/MM/dd HH:mm:ss" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "yyyy-MM-dd" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "yyyy/MM/dd" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "yyyyMMdd" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "yyyyMMddHHmmss" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "HH:mm:ss" );
-			return date;
-		}catch(Exception e){}
-		
-		try{
-			date = getDateFromString( dateString, "HH:mm" );
-			return date;
-		}catch(Exception e){}
-		
-		return date;
-	}
-	
-	
-	public  String getDateStringFromDate(Date date, String style) throws Exception{
-		String dateString = null;
-		if(style==null||"".equals(style.trim())){
-			dateString = format1.format(date);
-		}else if("yyyy-MM-dd HH:mm:ss".equalsIgnoreCase(style.trim())){
-			dateString = format3.format(date);
-		}else if("yyyy/MM/dd HH:mm:ss".equalsIgnoreCase(style.trim())){
-			dateString = format3_1.format(date);
-		}else if("yyyy/MM/dd".equalsIgnoreCase(style.trim())){
-			dateString = format4.format(date);
-		}else if("yyyy-MM-dd".equalsIgnoreCase(style.trim())){
-			dateString = format1.format(date);
-		}else if("yyyyMMdd".equalsIgnoreCase(style.trim())){
-			dateString = format5.format(date);
-		}else if("yyyyMMddHHmmss".equalsIgnoreCase(style.trim())){
-			dateString = format7.format(date);
-		}else if("HH:mm:ss".equalsIgnoreCase(style.trim())){
-			dateString = format2.format(date);
-		}else{
-			throw new Exception("对不起,您输入的日期style系统无法识别,请检查您的参数输入!style=" + style);
-		}
-		return dateString;
-	}
-	
-	/**
-	 * 得到某日期加上或减去天数后的日期,day为负数时减去
-	 * 
-	 * @param date
-	 * @param month
-	 * @return "yyyy-MM-dd"
-	 * @throws Exception 
-	 */
-	public  String getDayAdd(String dateString, int day, String style) throws Exception {
-		Date date = getDateFromString(dateString, style);
-		return getDayAdd(date, day);
-	}
-	
-	/**
-	 * 得到某日期加上或减去天数后的日期,day为负数时减去
-	 * 
-	 * @param date
-	 * @param month
-	 * @return "yyyy-MM-dd"
-	 */
-	public  String getDayAdd(Date date, int day) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.DATE, day);
-		return format1.format(calendar.getTime());
-	}
-
-	/**
-	 * 得到某日期加上或减去月份后的日期,month为负数时减去
-	 * 
-	 * @param date
-	 * @param month
-	 * @return "yyyy-MM-dd"
-	 */
-	public  String getMonthAdd(Date date, int month) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.MONTH, month);
-		return format1.format(calendar.getTime());
-	}
-	
-	/**
-	 * 得到某日期加上或减去分钟后的日期,min为负数时减去
-	 * 
-	 * @param date
-	 * @param month
-	 * @return "yyyy-MM-dd HH:mi:ss"
-	 */
-	public  String getMinutesAdd(Date date, int min) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.MINUTE, min);
-		return format3.format(calendar.getTime());
-	}
-	/**
-	 * 得到某日期的日
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 */
-	public  String getDay(Date date) {
-		try{
-			return format10.format(date);
-		}catch(Exception e){
-			return "0";
-		}
-	}
-	public int getDayNumber(Date date) {
-		String result = null;
-		try{
-			result = format10.format(date);
-		}catch(Exception e){
-			result = "0";
-		}
-		return Integer.parseInt(result);
-	}
-	/**
-	 * 得到某日期的月份
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 */
-	public  String getMonth(Date date) {
-		try{
-			return format9.format(date);
-		}catch(Exception e){
-			return "0";
-		}
-	}
-	public int getMonthNumber(Date date) {
-		String result = null;
-		try{
-			result = format9.format(date);
-		}catch(Exception e){
-			result = "0";
-		}
-		return Integer.parseInt(result);
-	}
-
-	/**
-	 * 得到某日期的年份
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 */
-	public  String getYear(Date date) {
-		try{
-			return format8.format(date);
-		}catch(Exception e){
-			return "0";
-		}
-	}
-	public int getYearNumber(Date date) {
-		String result = null;
-		try{
-			result = format8.format(date);
-		}catch(Exception e){
-			result = "0";
-		}
-		return Integer.parseInt(result);
-	}
-	/**
-	 * 得到某日期的小时
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 */
-	public  String getHour(Date date) {
-		try{
-			return format11.format(date);
-		}catch(Exception e){
-			return "0";
-		}
-	}
-	/**
-	 * 得到某日期的分钟
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 */
-	public  String getMinites(Date date) {
-		return format12.format(date);
-	}
-	/**
-	 * 得到某日期的秒
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 */
-	public  String getSeconds(Date date) {
-		return format13.format(date);
-	}
-	/**
-	 * 得到某年有多少天
-	 * 
-	 * @param String
-	 *            date "yyyy-MM-dd"
-	 * @return
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("static-access")
-	public  int getDaysForYear(String date) throws ParseException {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(format1.parse(date));
-		return calendar.get(calendar.DAY_OF_YEAR);
-	}
-
-	/**
-	 * 得到某年有多少天
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("static-access")
-	public  int getDaysForYear(Date date) throws ParseException {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		return calendar.get(calendar.DAY_OF_YEAR);
-	}
-
-	/**
-	 * 得到某年有多少天
-	 * 
-	 * @param String
-	 *            year "yyyy"
-	 * @return
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("static-access")
-	public  int getDaysForYear_YYYY(String year) throws ParseException {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(format8.parse(year));
-		return calendar.get(calendar.DAY_OF_YEAR);
-	}
-
-	/**
-	 * 得到某月有多少天
-	 * 
-	 * @param String
-	 *            date "yyyy-MM-dd"
-	 * @return
-	 * @throws ParseException
-	 */
-	public  int getDaysForMonth(String date) throws ParseException {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(format1.parse(date));
-		return calendar.getActualMaximum( Calendar.DAY_OF_MONTH);
-	}
-
-	/**
-	 * 得到某月有多少天
-	 * 
-	 * @param String
-	 *            date "yyyy-MM"
-	 * @return
-	 * @throws ParseException
-	 */
-	@SuppressWarnings("static-access")
-	public  int getDaysForMonth_MM(String date) throws ParseException {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(format14.parse(date));
-		return calendar.get(calendar.DAY_OF_MONTH);
-	}
-
-	/**
-	 * 得到某月有多少天
-	 * 
-	 * @param Date
-	 *            date
-	 * @return
-	 * @throws ParseException
-	 */
-	public  int getDaysForMonth(Date date) throws ParseException {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		return calendar.get(Calendar.DAY_OF_MONTH);
-	}
-
-	/**
-	 * 得到当前的日期
-	 * 
-	 * @return
-	 */
-	public  String getNowDate() {
-		return format1.format(new Date());
-	}
-
-	/**
-	 * 得到当前的时间
-	 * 
-	 * @return
-	 */
-	public  String getNowTime() {
-		return format2.format(new Date());
-	}
-	/**
-	 * 得到当前的时间
-	 * yyyyMMddHHmmss
-	 * @return
-	 */
-	public  String getNowTimeChar() {
-		return format7.format(new Date());
-	}
-	/**
-	 * 得到当前的时间
-	 * yyyy-MM-dd HH:mm:ss
-	 * @return
-	 */
-	public  String getNowDateTime() {
-		return format3.format(new Date());
-	}
-	/**
-	 * 得到两个时间之前的分差
-	 * @param date1 yyyy-MM-dd HH:mm:ss
-	 * @param date2 yyyy-MM-dd HH:mm:ss
-	 * @return
-	 * @throws ParseException 
-	 */
-	public  long getDeff(String date1,String date2) throws ParseException {
-		long dayNumber = 0;
-		// 1小时=60分钟=3600秒=3600000
-		long mins = 60L * 1000L;
-		// long day= 24L * 60L * 60L * 1000L;计算天数之差
-		SimpleDateFormat df = null;
-		if(date1.length() == 19){
-			df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		}else if(date1.length() == 10){
-			df = new SimpleDateFormat("yyyy-MM-dd");
-		}else if(date1.length() == 8){
-			df = new SimpleDateFormat("HH:mm:ss");
-		}else{
-			df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		}
-		java.util.Date d1 = df.parse(date1);
-		java.util.Date d2 = df.parse(date2);
-		dayNumber = (d2.getTime() - d1.getTime()) / mins;
-		return dayNumber;
-	}
-	/**
-	 * 得到两个时间之前的分差
-	 * @param date1 yyyy-MM-dd HH:mm:ss
-	 * @param date2 yyyy-MM-dd HH:mm:ss
-	 * @return
-	 */
-	public long getDeff(Date date1,Date date2) {
-		long dayNumber = 0;
-		long mins = 60L * 1000L;
-		dayNumber = (date2.getTime() - date1.getTime()) / mins;
-		return dayNumber;
-	}
-	/**
-	 * 
-	 * 日期格式转换
-	 * 从YYYY-MM-DD转换到YYYYMMDD
-	 * @param date
-	 * @throws ParseException 
-	 */
-	public  String changeDateFormat(String dateString) throws ParseException{
-		Date date;
-		String reslut = null;
-		try {
-			if("".equals(dateString)){
-				dateString="0000-00-00";
-			}
-			date = format1.parse(dateString);
-			reslut = format5.format(date);
-		} catch (ParseException e) {
-			date = format1.parse("0000-00-00");
-		}
-		return reslut;
-	}
-	
-	/** 格式 yyyy-MM-dd */
-	public  final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
-	/** 格式 HH:mm:ss */
-	public  final SimpleDateFormat format2 = new SimpleDateFormat("HH:mm:ss");
-	public  final SimpleDateFormat format2_1 = new SimpleDateFormat("HH:mm");
-	/** 格式 yyyy-MM-dd HH:mm:ss */
-	public  final SimpleDateFormat format3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-	public  final SimpleDateFormat format3_2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-	public  final SimpleDateFormat format3_1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
-	/** 格式 yyyy/MM/dd */
-	public  final SimpleDateFormat format4 = new SimpleDateFormat("yyyy/MM/dd");
-	/** 格式 yyyyMMdd */
-	public  final SimpleDateFormat format5 = new SimpleDateFormat("yyyyMMdd");
-	/** 格式 HHmmss */
-	public  final SimpleDateFormat format6 = new SimpleDateFormat("HHmmss");
-	/** 格式 yyyyMMddHHmmss */
-	public  final SimpleDateFormat format7 = new SimpleDateFormat("yyyyMMddHHmmss");
-	/** 格式 yyyy */
-	public  final SimpleDateFormat format8 = new SimpleDateFormat("yyyy");
-	/** 格式 MM */
-	public  final SimpleDateFormat format9 = new SimpleDateFormat("MM");
-	/** 格式 dd */
-	public  final SimpleDateFormat format10 = new SimpleDateFormat("dd");
-	/** 格式 HH */
-	public  final SimpleDateFormat format11 = new SimpleDateFormat("HH");
-	/** 格式 mm */
-	public  final SimpleDateFormat format12 = new SimpleDateFormat("mm");
-	/** 格式 ss */
-	public  final SimpleDateFormat format13 = new SimpleDateFormat("ss");
-	/** 格式 ss */
-	public  final SimpleDateFormat format14 = new SimpleDateFormat("yyyy-MM");
-	
-	
-	public  String getStartOfWeek(String dateString) throws Exception{
-		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-		Date date = format.parse(dateString);
-		Calendar cal = Calendar.getInstance();
-		cal.setTime(date);
-		cal.setFirstDayOfWeek(Calendar.MONDAY);
-		int tmp = cal.get(Calendar.DAY_OF_WEEK) - 1;
-		if (0 == tmp) {
-			tmp = 7;
-		}
-		cal.add(Calendar.DATE, -(tmp-1));
-		return getDateStringFromDate(cal.getTime(), "yyyy-MM-dd") + " 00:00:00";
-	}
-	
-	public  String getEndOfWeek(String dateString) throws Exception{
-		Date date = getDateFromString(getStartOfWeek(dateString), "yyyy-MM-dd HH:mm:ss");
-		Calendar cal = Calendar.getInstance();
-		cal.setTime(date);
-		cal.setFirstDayOfWeek(Calendar.MONDAY);
-		cal.add(Calendar.DATE, 6);
-		return getDateStringFromDate(cal.getTime(), "yyyy-MM-dd") + " 23:59:59";
-	}
-	
-	
-	
-	/**
-	 * 将时间格式转换为 **月**日**时**分的格式
-	 * @param dateString
-	 * @param style
-	 * @return
-	 * @throws Exception
-	 */
-	public String getDateCNString( String dateString, String style ) throws Exception{
-		StringBuffer ch_date_string = new StringBuffer();
-		Date _date = null;
-		_date = getDateFromString( dateString, style );
-		if(_date == null ){
-			_date = new Date();
-		}
-		String year = getYear( _date );
-		String month = getMonth( _date );
-		String day = getDay( _date );
-		String hour = getHour( _date );
-		String min = getMinites( _date );
-		ch_date_string.append( year );
-		ch_date_string.append( "年" );
-		ch_date_string.append( month );
-		ch_date_string.append( "月" );
-		ch_date_string.append( day );
-		ch_date_string.append( "日" );
-		ch_date_string.append( hour );
-		ch_date_string.append( "时" );
-		ch_date_string.append( min );
-		ch_date_string.append( "分" );		
-		return ch_date_string.toString();
-	}
-	
-	/**
-	 * 将时间格式转换为 **月**日**时**分**秒 的格式
-	 * @param dateString
-	 * @param style
-	 * @return
-	 * @throws Exception
-	 */
-	public String getDateCNString2( String dateString, String style ) throws Exception{
-		StringBuffer ch_date_string = new StringBuffer();
-		Date _date = null;
-		_date = getDateFromString( dateString, style );
-		if(_date == null ){
-			_date = new Date();
-		}
-		String year = getYear( _date );
-		String month = getMonth( _date );
-		String day = getDay( _date );
-		String hour = getHour( _date );
-		String min = getMinites( _date );
-		String sec = getSeconds( _date );
-		ch_date_string.append( year );
-		ch_date_string.append( "年" );
-		ch_date_string.append( month );
-		ch_date_string.append( "月" );
-		ch_date_string.append( day );
-		ch_date_string.append( "日" );
-		ch_date_string.append( hour );
-		ch_date_string.append( "时" );
-		ch_date_string.append( min );
-		ch_date_string.append( "分" );
-		ch_date_string.append( sec );
-		ch_date_string.append( "秒" );
-		return ch_date_string.toString();
-	}
-	
-	/**
-	 * 获取日期在一年中的周数
-	 * 结果从1开始
-	 * @param dateString yyyy-mm-dd
-	 * @return
-	 * @throws Exception 
-	 */
-	public  int getWeekNumOfYear( String dateString ) throws Exception{
-		Date date = getDateFromString( dateString , "yyyy-MM-dd");
-		Calendar cal = Calendar.getInstance();
-		cal.setTime(date);
-		cal.setFirstDayOfWeek(2); //设置每周的第一天是星期一
-		return cal.get(Calendar.WEEK_OF_YEAR);
-	}
-	
-	/**
-	 * 判断是否周末
-	 * @param recordDate
-	 * @return
-	 */
-	public boolean isWeekend( Date recordDate ) {
-		Calendar cal = Calendar.getInstance();
-	    cal.setTime( recordDate );
-	    if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||cal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
-	       return true;
-	    }
-		return false;
-	}
-	
-	public long getMinutes( Date date1, Date data2){
-		 long l=data2.getTime()-date1.getTime();
-		 long min=((l/(60*1000)));
-		 return min;
-	}
-
-	/**
-	 * 根据提供的年份月份,获取当月所有的日期字符串:yyyy-mm-dd
-	 * @param s_year
-	 * @param _month
-	 * @return
-	 */
-	public List<String> getDateStringFormMonth(String s_year, String _month) {
-		List<String> result = new ArrayList<String>();
-		Calendar cal = Calendar.getInstance();
-		int year = 0;
-		int month = 0;
-		int days = 0;
-		try{
-			year = Integer.parseInt( s_year );
-		}catch(Exception e){
-			e.printStackTrace();
-		}
-		try{
-			month = Integer.parseInt( _month );
-		}catch(Exception e){
-			e.printStackTrace();
-		}
-		cal.set(year, month-1, 1);
-		days = cal.getActualMaximum(Calendar.DATE);
-		for( int i =1; i<= days ; i++){
-			result.add( s_year + "-" + (month<10?"0"+month:month) + "-" + (i<10?"0"+i:i));
-		}
-		return result;
-	}
-	
-	/**
-	 * 根据提供的两个时间之间所有的日期字符串:yyyy-mm-dd
-	 * @param startDate
-	 * @param endDate
-	 * @return
-	 * @throws Exception 
-	 */
-	public List<String> listDateStringBetweenDate( Date startDate, Date endDate ) throws Exception {		
-		List<String> result = new ArrayList<String>();
-		Calendar cal = Calendar.getInstance();
-		startDate = getDateFromString( getDateStringFromDate( startDate, "yyyy-MM-dd") );
-		endDate = getDateFromString( getDateStringFromDate( endDate, "yyyy-MM-dd") + " 23:59:59");	
-		cal.setTime( startDate );
-		while( cal.getTime().before(endDate)){
-			result.add( getDateStringFromDate( cal.getTime(), "yyyy-MM-dd"));
-			cal.add(Calendar.DATE, 1);
-		}
-		return result;
-	}
-	
-	/**
-	 * 获取日期所在月份的第一天
-	 * @param recordDate
-	 * @return
-	 * @throws Exception 
-	 */
-	public Date getFirstDateInMonth(Date recordDate) throws Exception {
-		String year = format8.format(recordDate);
-		String month = format9.format(recordDate);
-		return getDateFromString( year + "-" + month + "-01" );
-	}
-	
-	/**
-	 * 获取日期所在月份的第一天
-	 * @param recordDate yyyy-MM-dd
-	 * @return
-	 * @throws Exception 
-	 */
-	public String getFirstDateStringInMonth(Date recordDate) throws Exception {
-		String year = format8.format(recordDate);
-		String month = format9.format(recordDate);
-		return year + "-" + month + "-01";
-	}
-	
-	/**
-	 * 获取当月的最后一日
-	 * @param date
-	 * @return
-	 */
-	public static Date getLastDayOfMonth(Date date) {  
-        Calendar calendar = convert(date);  
-        calendar.set(Calendar.DATE, calendar.getMaximum(Calendar.DATE));  
-        return calendar.getTime();  
-    }  
-	/** 
-     * 将日期转换为日历 
-     * @param date 日期 
-     * @return 日历 
-     */  
-    private static Calendar convert(Date date) {  
-        Calendar calendar = Calendar.getInstance();  
-        calendar.setTime(date);  
-        return calendar;  
-    }  
-	/**
-	 * 获取日期所在月份的第一天
-	 * @param recordDate
-	 * @return
-	 * @throws Exception 
-	 */
-	public Date getLastDateInMonth(Date recordDate) throws Exception {
-		Date lastDate = getLastDayOfMonth( recordDate );
-		return getDateFromString( getDateStringFromDate( lastDate, "yyyy-MM-dd") );
-	}
-	
-	/**
-	 * 获取日期所在月份的第一天
-	 * @param recordDate yyyy-MM-dd
-	 * @return
-	 * @throws Exception 
-	 */
-	public String getLastDateStringInMonth(Date recordDate) throws Exception {
-		Date lastDate = getLastDayOfMonth(recordDate);
-		return getDateStringFromDate( lastDate, "yyyy-MM-dd");
-	}
-}

+ 0 - 275
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/Excel2003Reader.java

@@ -1,275 +0,0 @@
-package com.x.attendance.assemble.common.excel.reader;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.poi.hssf.eventusermodel.EventWorkbookBuilder.SheetRecordCollectingListener;
-import org.apache.poi.hssf.eventusermodel.FormatTrackingHSSFListener;
-import org.apache.poi.hssf.eventusermodel.HSSFEventFactory;
-import org.apache.poi.hssf.eventusermodel.HSSFListener;
-import org.apache.poi.hssf.eventusermodel.HSSFRequest;
-import org.apache.poi.hssf.eventusermodel.MissingRecordAwareHSSFListener;
-import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord;
-import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingCellDummyRecord;
-import org.apache.poi.hssf.model.HSSFFormulaParser;
-import org.apache.poi.hssf.record.BOFRecord;
-import org.apache.poi.hssf.record.BlankRecord;
-import org.apache.poi.hssf.record.BoolErrRecord;
-import org.apache.poi.hssf.record.BoundSheetRecord;
-import org.apache.poi.hssf.record.FormulaRecord;
-import org.apache.poi.hssf.record.LabelRecord;
-import org.apache.poi.hssf.record.LabelSSTRecord;
-import org.apache.poi.hssf.record.NumberRecord;
-import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.SSTRecord;
-import org.apache.poi.hssf.record.StringRecord;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-
-/**
- * 抽象Excel2003读取器,通过实现HSSFListener监听器,采用事件驱动模式解析excel2003
- * 中的内容,遇到特定事件才会触发,大大减少了内存的使用。
- */
-public  class Excel2003Reader implements HSSFListener{
-	private int minColumns = -1;
-	private POIFSFileSystem fs;
-	private int lastRowNumber;
-	private int lastColumnNumber;
-
-	/** Should we output the formula, or the value it has? */
-	private boolean outputFormulaValues = true;
-
-	/** For parsing Formulas */
-	private SheetRecordCollectingListener workbookBuildingListener;
-	//excel2003工作薄
-	private HSSFWorkbook stubWorkbook;
-
-	// Records we pick up as we process
-	private SSTRecord sstRecord;
-	private FormatTrackingHSSFListener formatListener;
-
-	//表索引
-	private int sheetIndex = -1;
-	private BoundSheetRecord[] orderedBSRs;
-	@SuppressWarnings("rawtypes")
-	private ArrayList boundSheetRecords = new ArrayList();
-
-	// For handling formulas with string results
-	private int nextRow;
-	private int nextColumn;
-	private boolean outputNextStringRecord;
-	//当前行
-	private int curRow = 0;
-	//存储行记录的容器
-	private List<String> rowlist = new ArrayList<String>();;
-	@SuppressWarnings( "unused")
-	private String sheetName;
-	
-	private String fileKey;
-	private int startRow;
-	private IRowReader rowReader;
-
-	
-	public void setRowReader(IRowReader rowReader, String fileKey, int startRow ){
-		this.rowReader = rowReader;
-		this.fileKey = fileKey;
-		this.startRow = startRow;
-	}
-	
-	/**
-	 * 遍历excel下所有的sheet
-	 * @param fileKey 
-	 * @throws IOException
-	 */
-	public void process(String fileName ) throws IOException {
-		
-		this.fs = new POIFSFileSystem(new FileInputStream(fileName));
-		MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener( this);
-		formatListener = new FormatTrackingHSSFListener(listener);
-		HSSFEventFactory factory = new HSSFEventFactory();
-		HSSFRequest request = new HSSFRequest();
-		if ( outputFormulaValues ) {
-			request.addListenerForAllRecords( formatListener );
-		} else {
-			workbookBuildingListener = new SheetRecordCollectingListener( formatListener);
-			request.addListenerForAllRecords(workbookBuildingListener);
-		}
-		factory.processWorkbookEvents(request, fs);
-		//数据读取完成
-	}
-	
-	/**
-	 * 遍历excel下所有的sheet
-	 * @param fileKey 
-	 * @throws IOException
-	 */
-	public void process( InputStream is ) throws IOException {
-		this.fs = new POIFSFileSystem( is );
-		MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener( this);
-		formatListener = new FormatTrackingHSSFListener(listener);
-		HSSFEventFactory factory = new HSSFEventFactory();
-		HSSFRequest request = new HSSFRequest();
-		if ( outputFormulaValues ) {
-			request.addListenerForAllRecords( formatListener );
-		} else {
-			workbookBuildingListener = new SheetRecordCollectingListener( formatListener);
-			request.addListenerForAllRecords(workbookBuildingListener);
-		}
-		factory.processWorkbookEvents(request, fs);
-		//数据读取完成
-	}
-	
-	/**
-	 * HSSFListener 监听方法,处理 Record
-	 */
-	@SuppressWarnings("unchecked")
-	public void processRecord(Record record) {
-		int thisRow = -1;
-		int thisColumn = -1;
-		String thisStr = null;
-		String value = null;
-		switch (record.getSid()) {
-			case BoundSheetRecord.sid:
-				boundSheetRecords.add(record);
-				break;
-			case BOFRecord.sid:
-				BOFRecord br = (BOFRecord) record;
-				if (br.getType() == BOFRecord.TYPE_WORKSHEET) {
-					// 如果有需要,则建立子工作薄
-					if (workbookBuildingListener != null && stubWorkbook == null) {
-						stubWorkbook = workbookBuildingListener
-								.getStubHSSFWorkbook();
-					}
-					
-					sheetIndex++;
-					if (orderedBSRs == null) {
-						orderedBSRs = BoundSheetRecord
-								.orderByBofPosition(boundSheetRecords);
-					}
-					sheetName = orderedBSRs[sheetIndex].getSheetname();
-				}
-				break;
-	
-			case SSTRecord.sid:
-				sstRecord = (SSTRecord) record;
-				break;
-	
-			case BlankRecord.sid:
-				BlankRecord brec = (BlankRecord) record;
-				thisRow = brec.getRow();
-				thisColumn = brec.getColumn();
-				thisStr = "";
-				rowlist.add(thisColumn, thisStr);
-				break;
-			case BoolErrRecord.sid: //单元格为布尔类型
-				BoolErrRecord berec = (BoolErrRecord) record;
-				thisRow = berec.getRow();
-				thisColumn = berec.getColumn();
-				thisStr = berec.getBooleanValue()+"";
-				rowlist.add(thisColumn, thisStr);
-				break;
-	
-			case FormulaRecord.sid: //单元格为公式类型
-				FormulaRecord frec = (FormulaRecord) record;
-				thisRow = frec.getRow();
-				thisColumn = frec.getColumn();
-				if (outputFormulaValues) {
-					if (Double.isNaN(frec.getValue())) {
-						// Formula result is a string
-						// This is stored in the next record
-						outputNextStringRecord = true;
-						nextRow = frec.getRow();
-						nextColumn = frec.getColumn();
-					} else {
-						thisStr = formatListener.formatNumberDateCell(frec);
-					}
-				} else {
-					thisStr = '"' + HSSFFormulaParser.toFormulaString(stubWorkbook, frec.getParsedExpression()) + '"';
-				}
-				rowlist.add(thisColumn,thisStr);
-				break;
-			case StringRecord.sid://单元格中公式的字符串
-				if (outputNextStringRecord) {
-					// String for formula
-					StringRecord srec = (StringRecord) record;
-					thisStr = srec.getString();
-					thisRow = nextRow;
-					thisColumn = nextColumn;
-					outputNextStringRecord = false;
-				}
-				break;
-			case LabelRecord.sid:
-				LabelRecord lrec = (LabelRecord) record;
-				curRow = thisRow = lrec.getRow();
-				thisColumn = lrec.getColumn();
-				value = lrec.getValue().trim();
-				value = value.equals("")?" ":value;
-				this.rowlist.add(thisColumn, value);
-				break;
-			case LabelSSTRecord.sid:  //单元格为字符串类型
-				LabelSSTRecord lsrec = (LabelSSTRecord) record;
-				curRow = thisRow = lsrec.getRow();
-				thisColumn = lsrec.getColumn();
-				if (sstRecord == null) {
-					rowlist.add(thisColumn, " ");
-				} else {
-					value =  sstRecord
-					.getString(lsrec.getSSTIndex()).toString().trim();
-					value = value.equals("")?" ":value;
-					rowlist.add(thisColumn,value);
-				}
-				break;
-			case NumberRecord.sid:  //单元格为数字类型
-				NumberRecord numrec = (NumberRecord) record;
-				curRow = thisRow = numrec.getRow();
-				thisColumn = numrec.getColumn();
-				value = formatListener.formatNumberDateCell(numrec).trim();
-				value = value.equals("")?" ":value;
-				// 向容器加入列值
-				rowlist.add(thisColumn, value);
-				break;
-			default:
-				break;
-		}
-
-		// 遇到新行的操作
-		if (thisRow != -1 && thisRow != lastRowNumber) {
-			lastColumnNumber = -1;
-		}
-
-		// 空值的操作
-		if (record instanceof MissingCellDummyRecord) {
-			MissingCellDummyRecord mc = (MissingCellDummyRecord) record;
-			curRow = thisRow = mc.getRow();
-			thisColumn = mc.getColumn();
-			rowlist.add(thisColumn," ");
-		}
-
-		// 更新行和列的值
-		if (thisRow > -1)
-			lastRowNumber = thisRow;
-		if (thisColumn > -1)
-			lastColumnNumber = thisColumn;
-
-		// 行结束时的操作
-		if (record instanceof LastCellOfRowDummyRecord) {
-			if (minColumns > 0) {
-				// 列值重新置空
-				if (lastColumnNumber == -1) {
-					lastColumnNumber = 0;
-				}
-			}
-			lastColumnNumber = -1;
-			// 每行结束时, 调用getRows() 方法
-			
-			rowReader.getRows(sheetIndex,curRow, rowlist, this.fileKey, this.startRow );
-			
-			// 清空容器
-			rowlist.clear();
-		}
-	}
-	
-}

+ 0 - 233
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/Excel2007Reader.java

@@ -1,233 +0,0 @@
-package com.x.attendance.assemble.common.excel.reader;
-
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.xssf.eventusermodel.XSSFReader;
-import org.apache.poi.xssf.model.SharedStringsTable;
-import org.apache.poi.xssf.usermodel.XSSFRichTextString;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * 抽象Excel2007读取器,excel2007的底层数据结构是xml文件,采用SAX的事件驱动的方法解析
- * xml,需要继承DefaultHandler,在遇到文件内容时,事件会触发,这种做法可以大大降低
- * 内存的耗费,特别使用于大数据量的文件。
- *
- */
-public class Excel2007Reader extends DefaultHandler {
-	//共享字符串表
-	private SharedStringsTable sst;
-	//上一次的内容
-	private String lastContents;
-	
-	private boolean nextIsString;
-
-	private int sheetIndex = -1;
-	
-	private List<String> rowlist = new ArrayList<String>();
-	//当前行
-	private int curRow = 0;
-	//当前列
-	private int curCol = 0;
-	//日期标志
-	private boolean dateFlag;
-	//数字标志
-	private boolean numberFlag;
-	
-	private boolean isTElement;
-	
-	private String fileKey;
-	private int startRow;
-	private IRowReader rowReader;
-	
-	public void setRowReader( IRowReader rowReader, String fileKey, int startRow ){
-		this.rowReader = rowReader;
-		this.fileKey = fileKey;
-		this.startRow = startRow;
-	}
-	
-	/**只遍历一个电子表格,其中sheetId为要遍历的sheet索引,从1开始,1-3
-	 * @param filename
-	 * @param sheetId
-	 * @throws Exception
-	 */
-	public void processOneSheet(String filename,int sheetId) throws Exception {
-		OPCPackage pkg = OPCPackage.open(filename);
-		XSSFReader r = new XSSFReader(pkg);
-		SharedStringsTable sst = r.getSharedStringsTable();
-		XMLReader parser = fetchSheetParser(sst);
-		
-		// 根据 rId# 或 rSheet# 查找sheet
-		InputStream sheet2 = r.getSheet("rId"+sheetId);
-		sheetIndex++;
-		InputSource sheetSource = new InputSource(sheet2);
-		parser.parse(sheetSource);
-		sheet2.close();
-	}
-
-	/**
-	 * 遍历工作簿中所有的电子表格
-	 * @param filename
-	 * @param fileKey 
-	 * @throws Exception
-	 */
-	public void process( String filename ) throws Exception {
-		OPCPackage pkg = OPCPackage.open(filename);
-		XSSFReader r = new XSSFReader(pkg);
-		SharedStringsTable sst = r.getSharedStringsTable();
-		XMLReader parser = fetchSheetParser(sst);
-		Iterator<InputStream> sheets = r.getSheetsData();
-		while (sheets.hasNext()) {
-			curRow = 0;
-			sheetIndex++;
-			InputStream sheet = sheets.next();
-			InputSource sheetSource = new InputSource(sheet);
-			parser.parse( sheetSource );
-			sheet.close();
-		}
-		//数据读取完成
-	}
-	
-	/**
-	 * 遍历工作簿中所有的电子表格
-	 * @param filename
-	 * @param fileKey 
-	 * @throws Exception
-	 */
-	public void process( InputStream is ) throws Exception {
-		OPCPackage pkg = OPCPackage.open( is );
-		XSSFReader r = new XSSFReader(pkg);
-		SharedStringsTable sst = r.getSharedStringsTable();
-		XMLReader parser = fetchSheetParser(sst);
-		Iterator<InputStream> sheets = r.getSheetsData();
-		while (sheets.hasNext()) {
-			curRow = 0;
-			sheetIndex++;
-			InputStream sheet = sheets.next();
-			InputSource sheetSource = new InputSource(sheet);
-			parser.parse( sheetSource );
-			sheet.close();
-		}
-	}
-
-	public XMLReader fetchSheetParser(SharedStringsTable sst) throws SAXException {
-		XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-		this.sst = sst;
-		parser.setContentHandler(this);
-		return parser;
-	}
-
-	public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
-		
-		// c => 单元格
-		if ("c".equals(name)) {
-			// 如果下一个元素是 SST 的索引,则将nextIsString标记为true
-			String cellType = attributes.getValue("t");
-			if ("s".equals(cellType)) {
-				nextIsString = true;
-			} else {
-				nextIsString = false;
-			}
-			//日期格式
-			String cellDateType = attributes.getValue("s");
-			if ("1".equals(cellDateType)){
-				dateFlag = true;
-			} else {
-				dateFlag = false;
-			}
-			String cellNumberType = attributes.getValue("s");
-			if("2".equals(cellNumberType)){
-				numberFlag = true;
-			} else {
-				numberFlag = false;
-			}
-			
-		}
-		//当元素为t时
-		if("t".equals(name)){
-			isTElement = true;
-		} else {
-			isTElement = false;
-		}
-		
-		// 置空
-		lastContents = "";
-	}
-
-	public void endElement(String uri, String localName, String name)
-			throws SAXException {
-		
-		// 根据SST的索引值的到单元格的真正要存储的字符串
-		// 这时characters()方法可能会被调用多次
-		if (nextIsString) {
-			try {
-				int idx = Integer.parseInt(lastContents);
-				lastContents = new XSSFRichTextString(sst.getEntryAt(idx))
-						.toString();
-			} catch (Exception e) {
-
-			}
-		} 
-		//t元素也包含字符串
-		if(isTElement){
-			String value = lastContents.trim();
-			rowlist.add(curCol, value);
-			curCol++;
-			isTElement = false;
-			// v => 单元格的值,如果单元格是字符串则v标签的值为该字符串在SST中的索引
-			// 将单元格内容加入rowlist中,在这之前先去掉字符串前后的空白符
-		} else if ("v".equals(name)) {
-			String value = lastContents.trim();
-			value = value.equals("")?" ":value;
-			//日期格式处理
-			if(dateFlag){
-				try{
-					Date date = HSSFDateUtil.getJavaDate(Double.valueOf(value));
-					SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
-					value = dateFormat.format(date);
-				}catch(Exception e){
-					
-				}
-			} 
-			//数字类型处理
-			if(numberFlag){
-				try{
-					BigDecimal bd = new BigDecimal(value);
-					value = bd.setScale(3,BigDecimal.ROUND_UP).toString();
-				}catch(Exception e){
-					
-				}
-			}
-			rowlist.add(curCol, value);
-			curCol++;
-		}else {
-			//如果标签名称为 row ,这说明已到行尾,调用 optRows() 方法
-			if (name.equals("row")) {
-				
-				rowReader.getRows(sheetIndex,curRow,rowlist, this.fileKey, this.startRow );
-				rowlist.clear();
-				curRow++;
-				curCol = 0;
-			}
-		}
-		
-	}
-
-	public void characters(char[] ch, int start, int length)
-			throws SAXException {
-		//得到单元格内容的值
-		lastContents += new String(ch, start, length);
-	}
-}

+ 0 - 58
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/ExcelReaderUtil.java

@@ -1,58 +0,0 @@
-package com.x.attendance.assemble.common.excel.reader;
-
-import java.io.InputStream;
-
-public class ExcelReaderUtil {
-	
-	//excel2003扩展名
-	public static final String EXCEL03_EXTENSION = ".xls";
-	//excel2007扩展名
-	public static final String EXCEL07_EXTENSION = ".xlsx";
-	
-	/**
-	 * 读取Excel文件,可能是03也可能是07版本
-	 * @param excel03
-	 * @param excel07
-	 * @param fileName
-	 * @throws Exception 
-	 */
-	public static void readExcel( IRowReader reader, String fileName, String fileKey, int startRow ) throws Exception{
-		// 处理excel2003文件
-		if (fileName.endsWith(EXCEL03_EXTENSION)){
-			Excel2003Reader excel03 = new Excel2003Reader();
-			excel03.setRowReader(reader, fileKey, startRow);
-			excel03.process(fileName);
-		// 处理excel2007文件
-		} else if (fileName.endsWith(EXCEL07_EXTENSION)){
-			Excel2007Reader excel07 = new Excel2007Reader();
-			excel07.setRowReader(reader, fileKey, startRow);
-			excel07.process(fileName);
-		} else {
-			throw new  Exception("文件格式错误,fileName的扩展名只能是xls或xlsx。");
-		}
-	}
-	
-	public static void readExcel( IRowReader reader, InputStream is, String fileName, String fileKey, int startRow ) throws Exception{
-		// 处理excel2003文件
-		if (fileName.endsWith(EXCEL03_EXTENSION)){
-			if ( is != null ){
-				Excel2003Reader excel03 = new Excel2003Reader();
-				excel03.setRowReader( reader, fileKey, startRow );
-				excel03.process( is );
-			} else {
-				throw new  Exception("there is no input stream.");
-			}
-		// 处理excel2007文件
-		} else if (fileName.endsWith(EXCEL07_EXTENSION)){
-			if ( is != null ){
-				Excel2007Reader excel07 = new Excel2007Reader();
-				excel07.setRowReader(reader, fileKey, startRow);
-				excel07.process( is );
-			} else {
-				throw new  Exception("there is no input stream.");
-			}
-		} else {
-			throw new  Exception("文件格式错误,fileName的扩展名只能是xls或xlsx。");
-		}
-	}
-}

+ 0 - 13
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/IRowReader.java

@@ -1,13 +0,0 @@
-package com.x.attendance.assemble.common.excel.reader;
-
-import java.util.List;
-
-public interface IRowReader {
-	
-	/**业务逻辑实现方法
-	 * @param sheetIndex
-	 * @param curRow
-	 * @param rowlist
-	 */
-	public  void getRows(int sheetIndex,int curRow, List<String> rowlist, String fileKey, int startRow);
-}

+ 0 - 23
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/ImportExcelReader.java

@@ -1,23 +0,0 @@
-package com.x.attendance.assemble.common.excel.reader;
-
-import java.util.List;
-
-import com.x.attendance.assemble.control.processor.sender.SenderForValidateData;
-
-public class ImportExcelReader implements IRowReader{
-	
-	/* 业务逻辑实现方法
-	 * @see com.eprosun.util.excel.IRowReader#getRows(int, int, java.util.List)
-	 */
-	public void getRows( int sheetIndex, int curRow, List<String> colmlist, String fileKey, int startRow ) {
-		if( curRow < startRow ){
-			return;
-		}
-
-		if( colmlist != null && !colmlist.isEmpty() ) {
-			if( !colmlist.get(0).isEmpty() && !colmlist.get(2).isEmpty()){
-				new SenderForValidateData().execute( sheetIndex, curRow, colmlist, fileKey );
-			}
-		}
-	}	
-}

+ 0 - 225
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/UserModelEventListener.java

@@ -1,225 +0,0 @@
-package com.x.attendance.assemble.common.excel.reader;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.poi.hssf.eventusermodel.EventWorkbookBuilder.SheetRecordCollectingListener;
-import org.apache.poi.hssf.eventusermodel.HSSFListener;
-import org.apache.poi.hssf.record.BOFRecord;
-import org.apache.poi.hssf.record.BlankRecord;
-import org.apache.poi.hssf.record.BoolErrRecord;
-import org.apache.poi.hssf.record.BoundSheetRecord;
-import org.apache.poi.hssf.record.FormulaRecord;
-import org.apache.poi.hssf.record.LabelSSTRecord;
-import org.apache.poi.hssf.record.NumberRecord;
-import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.RowRecord;
-import org.apache.poi.hssf.record.SSTRecord;
-
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-/**
- * 基于POI HSSF的eventmodel 模型的时间解析方式
- *   优点:解析数据相当快。
- *   缺点:1.仅仅支持97~2003版本的excel,不支持2007版本的excel。
- *         2.只能读Excel中一个Sheet页面。
- * 
- * @Title: 
- * @Description: 实现TODO
- * @Copyright:Copyright (c) 2011
- * @Date:2012-6-14
- * @author  O2LEE
- * @version 1.0
- */
-public class UserModelEventListener implements HSSFListener {
-	
-	private static Logger logger=LoggerFactory.getLogger( UserModelEventListener.class );
-	private SSTRecord sstrec;
-	/** Should we output the formula, or the value it has? */
-	private boolean outputFormulaValues = true;
-	/** For parsing Formulas */
-	private SheetRecordCollectingListener workbookBuildingListener;
-
-    //当前Sheet的内容
-    private List<Map<String,Object>> currentSheetDataMap=new ArrayList<Map<String,Object>>();
-    //列对应的字段
-	private static String[] trianListheadTitle=new String[]{"trainCode","firstStation","lastStation","startStation","arriveStation","startTime","arriveTime","fistLevelPrice","secondLevelPrice","km","useDate"};
-
-    //一行记录
-    private Map<String,Object> currentSheetRowDataMap=new HashMap<String,Object>();
-    private int curRowNum=0;
-    private int ignoreRowNum=1;
-    private int sheetNo=0;
-    
-    private Boolean debugger = false;
-
-	@Override
-	public void processRecord( Record record ) {
-		switch (record.getSid()) {
-		
-		case BOFRecord.sid:
-			BOFRecord bof = (BOFRecord) record;
-			//顺序进入新的Workbook  
-			if (bof.getType() == bof.TYPE_WORKBOOK) {
-				logger.debug( debugger, ">>>>>>>>>>开始解析excel 文档.....");
-			//顺序进入新的Worksheet,因为Event API不会把Excel文件里的所有数据结构都关联起来,
-			//所以这儿一定要记录现在进入第几个sheet了。
-			} else if (bof.getType() == bof.TYPE_WORKSHEET) {
-				//读取新的一个Sheet页
-				logger.debug( debugger, ">>>>>>>>>>开始解析sheet页面内容...");
-				sheetNo++;
-				currentSheetDataMap=new ArrayList<Map<String,Object>>();
-			}
-			break;
-	    //开始解析Sheet的信息,记录sheet,这儿会把所有的sheet都顺序打印出来,如果有多个sheet的话,可以顺序记入到一个List里   
-		case BoundSheetRecord.sid:
-			BoundSheetRecord bsr = (BoundSheetRecord) record;
-			logger.debug( debugger, ">>>>>>>>>>New sheet named: " + bsr.getSheetname());
-			break;
-		//执行行记录事件
-		case RowRecord.sid:
-			RowRecord rowrec = (RowRecord) record;
-			logger.debug( debugger, ">>>>>>>>>>记录开始, first column at "
-					+ rowrec.getFirstCol() + " last column at "
-					+ rowrec.getLastCol());
-			break;
-		// SSTRecords store a array of unique strings used in Excel.
-		case SSTRecord.sid:
-			sstrec = (SSTRecord) record;
-			for (int k = 0; k < sstrec.getNumUniqueStrings(); k++) {
-				logger.debug( debugger, ">>>>>>>>>>String table value " + k + " = "
-						+ sstrec.getString(k));
-			}
-			break;
-			
-		//发现数字类型的cell,因为数字和日期都是用这个格式,所以下面一定要判断是不是日期格式,另外默认的数字也会被视为日期格式,所以如果是数字的话,一定要明确指定格式!!!!!!!   
-		case NumberRecord.sid:
-				NumberRecord nr = (NumberRecord) record;
-				//HSSFDateUtil.isInternalDateFormat(nr.getXFIndex())  判断是否为时间列
-				int column=nr.getColumn();
-				if(column==5||column==6){
-					addDataAndrChangeRow(nr.getRow(),nr.getColumn(),getTime(nr.getValue()), debugger);
-				}else{
-					addDataAndrChangeRow(nr.getRow(),nr.getColumn(),(int)nr.getValue(), debugger);
-				}
-				break;
-		//发现字符串类型,这儿要取字符串的值的话,跟据其index去字符串表里读取   
-		case LabelSSTRecord.sid:
-			LabelSSTRecord lsr = (LabelSSTRecord)record; 
-			addDataAndrChangeRow(lsr.getRow(),lsr.getColumn(), sstrec.getString(lsr.getSSTIndex()), debugger);
-			logger.debug( debugger, ">>>>>>>>>>文字列:"+sstrec.getString(lsr.getSSTIndex())+", 行:"+lsr.getRow()+", 列:"+lsr.getColumn());   
-			break;
-	    case BoolErrRecord.sid: //解析boolean错误信息
-            BoolErrRecord ber = (BoolErrRecord)record;   
-            if(ber.isBoolean()){   
-            	addDataAndrChangeRow(ber.getRow(),ber.getColumn(), ber.getBooleanValue(), debugger);
-            	logger.debug( debugger, ">>>>>>>>>>Boolean:"+ber.getBooleanValue()+", 行:"+ber.getRow()+", 列:"+ber.getColumn());   
-            }   
-            if(ber.isError()){   
-            	logger.debug( debugger, ">>>>>>>>>>Error:"+ber.getErrorValue()+", 行:"+ber.getRow()+", 列:"+ber.getColumn());   
-            }   
-            break;   
-         //空白记录的信息
-        case BlankRecord.sid: 
-            BlankRecord br = (BlankRecord)record;   
-            addDataAndrChangeRow(br.getRow(),br.getColumn(), "", debugger);
-            logger.debug( debugger, ">>>>>>>>>>空。 行:"+br.getRow()+", 列:"+br.getColumn());   
-            break;   
-        case FormulaRecord.sid: //数式   
-            FormulaRecord fr = (FormulaRecord)record;  
-            addDataAndrChangeRow(fr.getRow(),fr.getColumn(), fr.getValue(), debugger);
-            logger.debug( debugger, ">>>>>>>>>>数字 。 行:"+fr.getRow()+", 列:"+fr.getColumn());  
-            break;  
-		}
-	}
-	/** 
-     * HH:MM格式时间的数字转换方法</li> 
-     * @param sNum 
-     * @return 
-     */ 
-    private static String getTime(double daynum) 
-    { 
-        double totalSeconds=daynum*86400.0D;
-        //总的分钟数
-        int seconds =(int)totalSeconds/60;
-        //实际小时数
-        int hours =seconds/60;
-        int minutes = seconds-hours*60;
-        //剩余的实际分钟数
-        StringBuffer sb=new StringBuffer();
-        if(String.valueOf(hours).length()==1){
-        	sb.append("0"+hours);
-        }else{
-        	sb.append(hours);
-        }
-        sb.append(":");
-        if(String.valueOf(minutes).length()==1){
-        	sb.append("0"+minutes);
-        }else{
-        	sb.append(minutes);
-        }
-        return sb.toString();
-    } 
-	/**
-	 *  添加数据记录并检查是否换行
-	 * @param row 实际当前行号
-	 * @param col 实际记录当前列
-	 * @param value  当前cell的值
-	 */
-	public void addDataAndrChangeRow( int row,int col,Object value, Boolean debugger ){
-		//当前行如果大于实际行表示改行忽略,不记录
-		if(curRowNum!=row){
-			if(CollectionUtils.isEmpty(currentSheetDataMap)){
-				 currentSheetDataMap=new ArrayList<Map<String,Object>>();
-			}
-			currentSheetDataMap.add(currentSheetRowDataMap);
-			logger.debug( debugger, ">>>>>>>>>>行号:"+curRowNum +" 行内容:"+currentSheetRowDataMap.toString());
-			logger.debug( debugger, ">>>>>>>>>>\n");
-			currentSheetRowDataMap=new HashMap<String,Object>();
-			currentSheetRowDataMap.put(trianListheadTitle[col], value);
-			logger.debug( debugger, ">>>>>>>>>>"+ row+":"+col+"  "+value+"\r");
-			curRowNum=row;
-		}else{
-			currentSheetRowDataMap.put(trianListheadTitle[col], value);
-			logger.debug(row+":"+col+"  "+value+"\r");
-		}
-	}
-	public List<Map<String, Object>> getCurrentSheetDataMap() {
-		return currentSheetDataMap;
-	}
-	public void setCurrentSheetDataMap(List<Map<String, Object>> currentSheetDataMap) {
-		this.currentSheetDataMap = currentSheetDataMap;
-	}
-	public Map<String, Object> getCurrentSheetRowDataMap() {
-		return currentSheetRowDataMap;
-	}
-	public void setCurrentSheetRowDataMap(Map<String, Object> currentSheetRowDataMap) {
-		this.currentSheetRowDataMap = currentSheetRowDataMap;
-	}
-	public int getCurRowNum() {
-		return curRowNum;
-	}
-	public void setCurRowNum(int curRowNum) {
-		this.curRowNum = curRowNum;
-	}
-	public int getIgnoreRowNum() {
-		return ignoreRowNum;
-	}
-	public void setIgnoreRowNum(int ignoreRowNum) {
-		this.ignoreRowNum = ignoreRowNum;
-	}
-	public Boolean getDebugger() {
-		return debugger;
-	}
-	/**
-	 * 是否开启调试日志
-	 * @param debugger
-	 */
-	public void setDebugger(Boolean debugger) {
-		this.debugger = debugger;
-	}
-}

+ 0 - 225
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/AbstractExcel2007Writer.java

@@ -1,225 +0,0 @@
-package com.x.attendance.assemble.common.excel.writer;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Writer;
-import java.util.Calendar;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipOutputStream;
-
-import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.ss.usermodel.DateUtil;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-
-/**
- * 抽象excel2007读入器,先构建.xlsx一张模板,改写模板中的sheet.xml,使用这种方法
- * 写入.xlsx文件,不需要太大的内存
- *
- */
-public abstract class AbstractExcel2007Writer {
-	
-	private SpreadsheetWriter sw;
-
-	/**
-	 * 写入电子表格的主要流程
-	 * @param fileName
-	 * @throws Exception
-	 */
-	public void process(String fileName) throws Exception{
-		// 建立工作簿和电子表格对象
-		XSSFWorkbook wb = new XSSFWorkbook();
-		XSSFSheet sheet = wb.createSheet("sheet1");
-		// 持有电子表格数据的xml文件名 例如 /xl/worksheets/sheet1.xml
-		String sheetRef = sheet.getPackagePart().getPartName().getName();
-
-		// 保存模板
-		FileOutputStream os = new FileOutputStream("template.xlsx");
-		wb.write(os);
-		os.close();
-		
-		// 生成xml文件
-		File tmp = File.createTempFile("sheet", ".xml");
-		Writer fw = new FileWriter(tmp);
-		sw = new SpreadsheetWriter(fw);
-		generate();
-		fw.close();
-		
-		// 使用产生的数据替换模板
-		File templateFile = new File("template.xlsx");
-		FileOutputStream out = new FileOutputStream(fileName);
-		substitute(templateFile, tmp, sheetRef.substring(1), out);
-		out.close();
-		//删除文件之前调用一下垃圾回收器,否则无法删除模板文件
-		System.gc();
-		// 删除临时模板文件
-		if (templateFile.isFile()&&templateFile.exists()){
-			templateFile.delete();
-		}
-	}
-
-	/**
-	 * 类使用者应该使用此方法进行写操作
-	 * @throws Exception
-	 */
-	public abstract void generate() throws Exception;
-
-	public void beginSheet() throws IOException {
-		sw.beginSheet();
-	}
-
-	public void insertRow(int rowNum) throws IOException {
-		sw.insertRow(rowNum);
-	}
-
-	public void createCell(int columnIndex, String value) throws IOException {
-		sw.createCell(columnIndex, value, -1);
-	}
-
-	public void createCell(int columnIndex, double value) throws IOException {
-		sw.createCell(columnIndex, value, -1);
-	}
-
-	public void endRow() throws IOException {
-		sw.endRow();
-	}
-
-	public void endSheet() throws IOException {
-		sw.endSheet();
-	}
-
-	/**
-	 *
-	 * @param zipfile the template file
-	 * @param tmpfile the XML file with the sheet data
-	 * @param entry the name of the sheet entry to substitute, e.g. xl/worksheets/sheet1.xml
-	 * @param out the stream to write the result to
-	 */
-	private static void substitute(File zipfile, File tmpfile, String entry,
-			OutputStream out) throws IOException {
-		ZipFile zip = new ZipFile(zipfile);
-		ZipOutputStream zos = new ZipOutputStream(out);
-
-		@SuppressWarnings("unchecked")
-		Enumeration<ZipEntry> en = (Enumeration<ZipEntry>) zip.entries();
-		while (en.hasMoreElements()) {
-			ZipEntry ze = en.nextElement();
-			if (!ze.getName().equals(entry)) {
-				zos.putNextEntry(new ZipEntry(ze.getName()));
-				InputStream is = zip.getInputStream(ze);
-				copyStream(is, zos);
-				is.close();
-			}
-		}
-		zos.putNextEntry(new ZipEntry(entry));
-		InputStream is = new FileInputStream(tmpfile);
-		copyStream(is, zos);
-		is.close();
-		zos.close();
-	}
-
-	private static void copyStream(InputStream in, OutputStream out)
-			throws IOException {
-		byte[] chunk = new byte[1024];
-		int count;
-		while ((count = in.read(chunk)) >= 0) {
-			out.write(chunk, 0, count);
-		}
-	}
-
-	/**
-	 * 在写入器中写入电子表格
-	 * 
-	 */
-	public static class SpreadsheetWriter {
-		private final Writer _out;
-		private int _rownum;
-		private static String LINE_SEPARATOR = System.getProperty("line.separator");
-
-		public SpreadsheetWriter(Writer out) {
-			_out = out;
-		}
-
-		public void beginSheet() throws IOException {
-			_out.write("<?xml version=\"1.0\" encoding=\"GB2312\"?>"
-							+ "<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">");
-			_out.write("<sheetData>"+LINE_SEPARATOR);
-		}
-
-		public void endSheet() throws IOException {
-			_out.write("</sheetData>");
-			_out.write("</worksheet>");
-		}
-
-		/**
-		 * 插入新行
-		 *
-		 * @param rownum 以0开始
-		 */
-		public void insertRow(int rownum) throws IOException {
-			_out.write("<row r=\"" + (rownum + 1) + "\">"+LINE_SEPARATOR);
-			this._rownum = rownum;
-		}
-
-		/**
-		 * 插入行结束标志
-		 */
-		public void endRow() throws IOException {
-			_out.write("</row>"+LINE_SEPARATOR);
-		}
-
-		/**
-		 * 插入新列
-		 * @param columnIndex
-		 * @param value
-		 * @param styleIndex
-		 * @throws IOException
-		 */
-		public void createCell(int columnIndex, String value, int styleIndex)
-				throws IOException {
-			String ref = new CellReference(_rownum, columnIndex)
-					.formatAsString();
-			_out.write("<c r=\"" + ref + "\" t=\"inlineStr\"");
-			if (styleIndex != -1)
-				_out.write(" s=\"" + styleIndex + "\"");
-			_out.write(">");
-			_out.write("<is><t>"+XMLEncoder.encode(value)+"</t></is>");
-			_out.write("</c>");
-		}
-
-		public void createCell(int columnIndex, String value)
-				throws IOException {
-			createCell(columnIndex, value, -1);
-		}
-
-		public void createCell(int columnIndex, double value, int styleIndex)
-				throws IOException {
-			String ref = new CellReference(_rownum, columnIndex)
-					.formatAsString();
-			_out.write("<c r=\"" + ref + "\" t=\"n\"");
-			if (styleIndex != -1)
-				_out.write(" s=\"" + styleIndex + "\"");
-			_out.write(">");
-			_out.write("<v>" + value + "</v>");
-			_out.write("</c>");
-		}
-
-		public void createCell(int columnIndex, double value)
-				throws IOException {
-			createCell(columnIndex, value, -1);
-		}
-
-		public void createCell(int columnIndex, Calendar value, int styleIndex)
-				throws IOException {
-			createCell(columnIndex, DateUtil.getExcelDate(value, false),
-					styleIndex);
-		}
-	}
-}

+ 0 - 60
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/Excel2003Writer.java

@@ -1,60 +0,0 @@
-package com.x.attendance.assemble.common.excel.writer;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-
-public class Excel2003Writer {
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		try{	
-			writeExcel("tes2003.xls");
-		} catch (IOException e) {
-		
-		}
-	}
-	
-	
-	/**
-	 * 写入excel并填充内容,一个sheet只能写65536行以下,超出会报异常,写入时建议使用AbstractExcel2007Writer
-	 * @param fileName
-	 * @throws IOException
-	 */
-	public static void writeExcel(String fileName) throws IOException{
-			
-			// 创建excel2003对象
-			Workbook wb = new HSSFWorkbook();
-			
-			// 设置文件放置路径和文件名
-		    FileOutputStream fileOut = new FileOutputStream(fileName);
-		    // 创建新的表单
-		    Sheet sheet = wb.createSheet("newsheet");
-		    // 创建新行
-		    for(int i=0;i<20000;i++){
-			    Row row = sheet.createRow(i);
-			    // 创建单元格
-			    Cell cell = row.createCell(0);
-			    // 设置单元格值
-			    cell.setCellValue(1);
-			    row.createCell(1).setCellValue(1+i);
-			    row.createCell(2).setCellValue(true);
-			    row.createCell(3).setCellValue(0.43d);
-			    row.createCell(4).setCellValue('d');
-			    row.createCell(5).setCellValue("");
-			    row.createCell(6).setCellValue("第七列"+i);
-			    row.createCell(7).setCellValue("第八列"+i);
-		    }
-		    wb.write(fileOut);
-		    fileOut.close();
-	}
-
-
-}

+ 0 - 44
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/Excel2007WriterImpl.java

@@ -1,44 +0,0 @@
-package com.x.attendance.assemble.common.excel.writer;
-public class Excel2007WriterImpl extends AbstractExcel2007Writer{
-
-	
-	/**
-	 * @param args
-	 * @throws Exception
-	 */
-	public static void main(String[] args) throws Exception {
-		//构建excel2007写入器
-		AbstractExcel2007Writer excel07Writer = new Excel2007WriterImpl();
-		//调用处理方法
-		excel07Writer.process("F://test07.xlsx");
-	}
-
-	
-	/* 
-	 * 可根据需求重写此方法,对于单元格的小数或者日期格式,会出现精度问题或者日期格式转化问题,建议使用字符串插入方法
-	 * @see com.excel.ver2.AbstractExcel2007Writer#generate()
-	 */
-	@Override
-	public void generate()throws Exception {
-        //电子表格开始
-        beginSheet();
-        for (int rownum = 0; rownum < 100; rownum++) {
-        	//插入新行
-            insertRow(rownum);
-            //建立新单元格,索引值从0开始,表示第一列
-            createCell(0, "中国<" + rownum + "!");
-            createCell(1, 34343.123456789);
-            createCell(2, "23.67%");
-            createCell(3, "12:12:23");
-            createCell(4, "2010-10-11 12:12:23");
-            createCell(5, "true");
-            createCell(6, "false");
-          
-            //结束行
-            endRow();
-        }
-        //电子表格结束
-        endSheet();
-	}
-
-}

+ 0 - 48
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/writer/XMLEncoder.java

@@ -1,48 +0,0 @@
-package com.x.attendance.assemble.common.excel.writer;
-
-public class XMLEncoder {
-
-    private static final String[] xmlCode = new String[256];
-
-    static {
-        // Special characters
-        xmlCode['\''] = "'";
-        xmlCode['\"'] = "\""; // double quote
-        xmlCode['&'] = "&"; // ampersand
-        xmlCode['<'] = "<"; // lower than
-        xmlCode['>'] = ">"; // greater than
-    }
-
-    /**
-     * <p>
-     * Encode the given text into xml.
-     * </p>
-     * 
-     * @param string the text to encode
-     * @return the encoded string
-     */
-    public static String encode(String string) {
-        if (string == null) return "";
-        int n = string.length();
-        char character;
-        String xmlchar;
-        StringBuffer buffer = new StringBuffer();
-        // loop over all the characters of the String.
-        for (int i = 0; i < n; i++) {
-            character = string.charAt(i);
-            // the xmlcode of these characters are added to a StringBuffer one by one
-            try {
-                xmlchar = xmlCode[character];
-                if (xmlchar == null) {
-                    buffer.append(character);
-                } else {
-                    buffer.append(xmlCode[character]);
-                }
-            } catch (ArrayIndexOutOfBoundsException aioobe) {
-                buffer.append(character);
-            }
-        }
-        return buffer.toString();
-    }
-
-}

+ 0 - 24
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/AbstractFactory.java

@@ -1,24 +0,0 @@
-package com.x.attendance.assemble.control;
-
-import com.x.base.core.container.EntityManagerContainer;
-
-public abstract class AbstractFactory {
-
-	private Business business;
-
-	public AbstractFactory( Business business ) throws Exception {
-		try {
-			if ( null == business ) {
-				throw new Exception("business can not be null.");
-			}
-			this.business = business;
-		} catch ( Exception e ) {
-			throw new Exception("can not instantiating factory.");
-		}
-	}
-
-	public EntityManagerContainer entityManagerContainer() throws Exception {
-		return this.business.entityManagerContainer();
-	}
-
-}

+ 0 - 33
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/ApplicationServletContextListener.java

@@ -1,33 +0,0 @@
-package com.x.attendance.assemble.control;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import com.x.base.core.project.Context;
-
-@WebListener
-public class ApplicationServletContextListener implements ServletContextListener {
-
-	@Override
-	public void contextInitialized(ServletContextEvent servletContextEvent) {
-		try {
-			ThisApplication.context = Context.concrete(servletContextEvent);
-			ThisApplication.init();
-			ThisApplication.context().regist();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void contextDestroyed(ServletContextEvent servletContextEvent) {
-		try {
-			ThisApplication.destroy();
-			ThisApplication.context.destrory(servletContextEvent);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}

+ 0 - 16
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/CacheUtil.java

@@ -1,16 +0,0 @@
-package com.x.attendance.assemble.control;
-
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.cache.ApplicationCache;
-
-/**
- * 缓存管理帮助类
- *
- */
-public class CacheUtil {
-	
-	public static <T extends JpaObject> void notify( Class<T> clz ) throws Exception {
-		ApplicationCache.notify( clz );
-	}
-	
-}

+ 0 - 13
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/ExceptionWrapInConvert.java

@@ -1,13 +0,0 @@
-package com.x.attendance.assemble.control;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionWrapInConvert extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionWrapInConvert( Throwable e, JsonElement jsonElement) {
-		super( "系统在将JSON信息转换为对象时发生异常。JSON:" + jsonElement.toString(), e);
-	}
-}

+ 0 - 7
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/MimeTypeDefinition.java

@@ -1,7 +0,0 @@
-package com.x.attendance.assemble.control;
-
-import javax.activation.MimetypesFileTypeMap;
-
-public class MimeTypeDefinition {
-	public static MimetypesFileTypeMap instance;
-}

+ 0 - 16
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/exception/PersonHasNoIdentityException.java

@@ -1,16 +0,0 @@
-package com.x.attendance.assemble.control.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class PersonHasNoIdentityException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public PersonHasNoIdentityException() {
-		super("用户未分配任何身份,请检查用户所在的组织信息。");
-	}
-	
-	public PersonHasNoIdentityException( String name ) {
-		super("用户'"+ name +"'未分配任何身份,请检查用户所在的组织信息。");
-	}
-}

+ 0 - 53
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceAdminFactory.java

@@ -1,53 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceAdmin;
-import com.x.attendance.entity.AttendanceAdmin_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceAdminFactory extends AbstractFactory {
-	
-	public AttendanceAdminFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceAdmin应用信息对象")
-	public AttendanceAdmin get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceAdmin.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceAdmin应用信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceAdmin> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceAdmin.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceAdmin> cq = cb.createQuery(AttendanceAdmin.class);
-		Root<AttendanceAdmin> root = cq.from( AttendanceAdmin.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceAdmin应用信息列表")
-	public List<AttendanceAdmin> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceAdmin>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceAdmin.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceAdmin> cq = cb.createQuery(AttendanceAdmin.class);
-		Root<AttendanceAdmin> root = cq.from(AttendanceAdmin.class);
-		Predicate p = root.get(AttendanceAdmin_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}	
-}

+ 0 - 508
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceAppealInfoFactory.java

@@ -1,508 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.WrapInFilterAppeal;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.attendance.entity.AttendanceAppealInfo_;
-import com.x.base.core.project.bean.NameValueCountPair;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 系统配置信息表基础功能服务类
-
- */
-public class AttendanceAppealInfoFactory extends AbstractFactory {
-	
-	public AttendanceAppealInfoFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceAppealInfo信息对象")
-	public AttendanceAppealInfo get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceAppealInfo.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceAppealInfo信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceAppealInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select(root.get(AttendanceAppealInfo_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceAppealInfo信息列表")
-	public String getMaxRecordDate() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceAppealInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceAppealInfo> cq = cb.createQuery(AttendanceAppealInfo.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.orderBy( cb.desc( root.get( AttendanceAppealInfo_.recordDateString) ) );	
-		List<AttendanceAppealInfo> resultList = em.createQuery(cq).setMaxResults(1).getResultList();
-		if( resultList == null || resultList.size() == 0 ){
-			return null;
-		}else{
-			return resultList.get(0).getRecordDateString();
-		}
-	}
-	
-	//@MethodDescribe("根据员工姓名和打卡日期列示AttendanceAppealInfo信息列表")
-	public List<String> listByEmployeeNameAndAppealDate( String employeeName, String appealDateString ) throws Exception {
-		
-		if( employeeName == null || appealDateString == null ){
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get(AttendanceAppealInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select(root.get(AttendanceAppealInfo_.id));
-		Predicate p = cb.equal( root.get(AttendanceAppealInfo_.empName),  employeeName );
-		p = cb.and( p, cb.equal( root.get(AttendanceAppealInfo_.appealDateString ),  appealDateString ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	//@MethodDescribe("根据组织和打卡日期列示AttendanceAppealInfo信息列表")
-	public List<String> listByUnitNameAndAppealDate( String unitName, String appealDateString ) throws Exception {
-		
-		if( unitName == null || appealDateString == null ){
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get(AttendanceAppealInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select(root.get(AttendanceAppealInfo_.id));
-		Predicate p = cb.equal( root.get(AttendanceAppealInfo_.unitName),  unitName );
-		p = cb.and( p, cb.equal( root.get(AttendanceAppealInfo_.appealDateString ),  appealDateString ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	//@MethodDescribe("根据顶层组织和打卡日期列示AttendanceAppealInfo信息列表")
-	public List<String> listByTopUnitNameAndAppealDate( String topUnitName, String appealDateString ) throws Exception {
-		
-		if( topUnitName == null || appealDateString == null ){
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get(AttendanceAppealInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select(root.get(AttendanceAppealInfo_.id));
-		Predicate p = cb.equal( root.get(AttendanceAppealInfo_.topUnitName),  topUnitName );
-		p = cb.and( p, cb.equal( root.get(AttendanceAppealInfo_.appealDateString ),  appealDateString ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceAppealInfo信息列表")
-	public List<AttendanceAppealInfo> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceAppealInfo>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceAppealInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceAppealInfo> cq = cb.createQuery(AttendanceAppealInfo.class);
-		Root<AttendanceAppealInfo> root = cq.from(AttendanceAppealInfo.class);
-		Predicate p = root.get(AttendanceAppealInfo_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	//@MethodDescribe("按年份月份查询某用户的申诉记录列表")
-	public List<String> listUserAttendanceAppealInfoByYearAndMonth(String user, String year, String month)  throws Exception {
-		if( user == null || user.isEmpty() ||year == null || month == null || year.isEmpty() || month.isEmpty()  ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select( root.get(AttendanceAppealInfo_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceAppealInfo_.empName), user );
-		if( StringUtils.isNotEmpty( year  ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceAppealInfo_.yearString), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceAppealInfo_.monthString), month ));
-		}
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("按年份月份查询某组织的申诉记录列表")
-	public List<String> listUnitAttendanceAppealInfoByYearAndMonth(String unitName, String year, String month)  throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select( root.get(AttendanceAppealInfo_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceAppealInfo_.unitName), unitName );
-		if( StringUtils.isNotEmpty( year ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceAppealInfo_.yearString), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceAppealInfo_.monthString), month ));
-		}
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-//	@MethodDescribe("按年份月份查询某顶层组织的申诉记录列表")
-	public List<String> listTopUnitAttendanceAppealInfoByYearAndMonth(String topUnitName, String year, String month)  throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select( root.get(AttendanceAppealInfo_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceAppealInfo_.topUnitName), topUnitName );
-		if( StringUtils.isNotEmpty( year ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceAppealInfo_.yearString), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceAppealInfo_.monthString), month ));
-		}
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("查询未归档的申诉记录列表,最大2000条")
-	public List<String> listNonArchiveAppealInfoIds()  throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceAppealInfo> root = cq.from( AttendanceAppealInfo.class);
-		cq.select( root.get(AttendanceAppealInfo_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.isNotNull( root.get(AttendanceAppealInfo_.archiveTime) );
-		return em.createQuery(cq.where(p)).setMaxResults(2000).getResultList();
-	}
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<AttendanceAppealInfo> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilterAppeal wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+AttendanceAppealInfo.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getDetailId()) && (!wrapIn.getDetailId().isEmpty())) {
-			sql_stringBuffer.append(" and o.detailId = ?" + (index));
-			vs.add( wrapIn.getDetailId() );
-			index++;
-		}
-		if ((null != wrapIn.getEmpName()) && (!wrapIn.getEmpName().isEmpty())) {
-			sql_stringBuffer.append(" and o.empName = ?" + (index));
-			vs.add( wrapIn.getEmpName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && (!wrapIn.getUnitName().isEmpty())) {
-			sql_stringBuffer.append(" and o.unitName = ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && (!wrapIn.getTopUnitName().isEmpty())) {
-			sql_stringBuffer.append(" and o.topUnitName = ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getYearString() ) && (!wrapIn.getYearString().isEmpty())) {
-			sql_stringBuffer.append(" and o.yearString = ?" + (index));
-			vs.add( wrapIn.getYearString() );
-			index++;
-		}
-		if ((null != wrapIn.getMonthString()) && (!wrapIn.getMonthString().isEmpty())) {
-			sql_stringBuffer.append(" and o.monthString = ?" + (index));
-			vs.add( wrapIn.getMonthString() );
-			index++;
-		}
-		if (wrapIn.getStatus()!=999) {
-			sql_stringBuffer.append(" and o.status = ?" + (index));
-			vs.add( wrapIn.getStatus() );
-			index++;
-		}
-		if ((null != wrapIn.getAppealReason()) && (!wrapIn.getAppealReason().isEmpty())) {
-			sql_stringBuffer.append(" and o.appealReason = ?" + (index));
-			vs.add( wrapIn.getAppealReason() );
-			index++;
-		}
-		if ((null != wrapIn.getProcessPerson1()) && (!wrapIn.getProcessPerson1().isEmpty())) {
-			sql_stringBuffer.append(" and o.processPerson1 = ?" + (index));
-			vs.add( wrapIn.getProcessPerson1() );
-			index++;
-		}
-		if ((null != wrapIn.getProcessPerson2()) && (!wrapIn.getProcessPerson2().isEmpty())) {
-			sql_stringBuffer.append(" and o.processPerson2 = ?" + (index));
-			vs.add( wrapIn.getProcessPerson2() );
-			index++;
-		}
-		
-		//添加OR条件
-		if (wrapIn.getOrAtrribute() != null && wrapIn.getOrAtrribute().size() > 0) {
-			sql_stringBuffer.append(" and (");
-			NameValueCountPair nameValueCountPair = null;
-			for (int p = 0; p < wrapIn.getOrAtrribute().size(); p++) {
-				nameValueCountPair = wrapIn.getOrAtrribute().get(p);
-				if (p == 0) {
-					sql_stringBuffer.append(" o." + nameValueCountPair.getName() + " = ?" + (index));
-
-				} else {
-					sql_stringBuffer.append(" or o." + nameValueCountPair.getName() + " = ?" + (index));
-				}
-				vs.add(nameValueCountPair.getValue());
-				index++;
-			}
-			sql_stringBuffer.append(" )");
-		}
-		
-		if( StringUtils.isNotEmpty( wrapIn.getKey() )){
-			sql_stringBuffer.append(" order by o."+wrapIn.getKey()+" " + order );
-		}else{
-			sql_stringBuffer.append(" order by o.sequence " + order );
-		}
-	
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceAppealInfo.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<AttendanceAppealInfo> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilterAppeal wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+AttendanceAppealInfo.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getDetailId()) && (!wrapIn.getDetailId().isEmpty())) {
-			sql_stringBuffer.append(" and o.detailId = ?" + (index));
-			vs.add( wrapIn.getDetailId() );
-			index++;
-		}
-		if ((null != wrapIn.getEmpName()) && (!wrapIn.getEmpName().isEmpty())) {
-			sql_stringBuffer.append(" and o.empName = ?" + (index));
-			vs.add( wrapIn.getEmpName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && (!wrapIn.getUnitName().isEmpty())) {
-			sql_stringBuffer.append(" and o.unitName = ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && (!wrapIn.getTopUnitName().isEmpty())) {
-			sql_stringBuffer.append(" and o.topUnitName = ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getYearString() ) && (!wrapIn.getYearString().isEmpty())) {
-			sql_stringBuffer.append(" and o.yearString = ?" + (index));
-			vs.add( wrapIn.getYearString() );
-			index++;
-		}
-		if ((null != wrapIn.getMonthString()) && (!wrapIn.getMonthString().isEmpty())) {
-			sql_stringBuffer.append(" and o.monthString = ?" + (index));
-			vs.add( wrapIn.getMonthString() );
-			index++;
-		}
-		if (wrapIn.getStatus()!=999) {
-			sql_stringBuffer.append(" and o.status = ?" + (index));
-			vs.add( wrapIn.getStatus() );
-			index++;
-		}
-		if ((null != wrapIn.getAppealReason()) && (!wrapIn.getAppealReason().isEmpty())) {
-			sql_stringBuffer.append(" and o.appealReason = ?" + (index));
-			vs.add( wrapIn.getAppealReason() );
-			index++;
-		}
-		if ((null != wrapIn.getProcessPerson1()) && (!wrapIn.getProcessPerson1().isEmpty())) {
-			sql_stringBuffer.append(" and o.processPerson1 = ?" + (index));
-			vs.add( wrapIn.getProcessPerson1() );
-			index++;
-		}
-		if ((null != wrapIn.getProcessPerson2()) && (!wrapIn.getProcessPerson2().isEmpty())) {
-			sql_stringBuffer.append(" and o.processPerson2 = ?" + (index));
-			vs.add( wrapIn.getProcessPerson2() );
-			index++;
-		}
-		//添加OR
-		if( wrapIn.getOrAtrribute() != null && wrapIn.getOrAtrribute().size() > 0){
-			sql_stringBuffer.append(" and (" );
-			NameValueCountPair nameValueCountPair = null;
-			for( int p = 0 ; p< wrapIn.getOrAtrribute().size(); p++ ){
-				nameValueCountPair = wrapIn.getOrAtrribute().get(p);
-				if( p == 0 ){
-					sql_stringBuffer.append(" o."+nameValueCountPair.getName()+" = ?" + (index));
-					
-				}else{
-					sql_stringBuffer.append(" or o."+nameValueCountPair.getName()+" = ?" + (index));					
-				}
-				vs.add( nameValueCountPair.getValue() );
-				index++;
-			}
-			sql_stringBuffer.append(" )" );
-		}
-		
-		if( StringUtils.isNotEmpty( wrapIn.getKey() )){
-			sql_stringBuffer.append(" order by o."+wrapIn.getKey()+" " + order );
-		}else{
-			sql_stringBuffer.append(" order by o.sequence " + order );
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceAppealInfo.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(20).getResultList();
-	}
-
-	/**
-	 * 查询符合的文档信息总数
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilterAppeal wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceAppealInfo.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+AttendanceAppealInfo.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getDetailId()) && (!wrapIn.getDetailId().isEmpty())) {
-			sql_stringBuffer.append(" and o.detailId = ?" + (index));
-			vs.add( wrapIn.getDetailId() );
-			index++;
-		}
-		if ((null != wrapIn.getEmpName()) && (!wrapIn.getEmpName().isEmpty())) {
-			sql_stringBuffer.append(" and o.empName = ?" + (index));
-			vs.add( wrapIn.getEmpName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && (!wrapIn.getUnitName().isEmpty())) {
-			sql_stringBuffer.append(" and o.unitName = ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && (!wrapIn.getTopUnitName().isEmpty())) {
-			sql_stringBuffer.append(" and o.topUnitName = ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getYearString() ) && (!wrapIn.getYearString().isEmpty())) {
-			sql_stringBuffer.append(" and o.yearString = ?" + (index));
-			vs.add( wrapIn.getYearString() );
-			index++;
-		}
-		if ((null != wrapIn.getMonthString()) && (!wrapIn.getMonthString().isEmpty())) {
-			sql_stringBuffer.append(" and o.monthString = ?" + (index));
-			vs.add( wrapIn.getMonthString() );
-			index++;
-		}
-		if (wrapIn.getStatus()!=999) {
-			sql_stringBuffer.append(" and o.status = ?" + (index));
-			vs.add( wrapIn.getStatus() );
-			index++;
-		}
-		if ((null != wrapIn.getAppealReason()) && (!wrapIn.getAppealReason().isEmpty())) {
-			sql_stringBuffer.append(" and o.appealReason = ?" + (index));
-			vs.add( wrapIn.getAppealReason() );
-			index++;
-		}
-		if ((null != wrapIn.getProcessPerson1()) && (!wrapIn.getProcessPerson1().isEmpty())) {
-			sql_stringBuffer.append(" and o.processPerson1 = ?" + (index));
-			vs.add( wrapIn.getProcessPerson1() );
-			index++;
-		}
-		if ((null != wrapIn.getProcessPerson2()) && (!wrapIn.getProcessPerson2().isEmpty())) {
-			sql_stringBuffer.append(" and o.processPerson2 = ?" + (index));
-			vs.add( wrapIn.getProcessPerson2() );
-			index++;
-		}
-		//添加OR
-		if (wrapIn.getOrAtrribute() != null && wrapIn.getOrAtrribute().size() > 0) {
-			sql_stringBuffer.append(" and (");
-			NameValueCountPair nameValueCountPair = null;
-			for (int p = 0; p < wrapIn.getOrAtrribute().size(); p++) {
-				nameValueCountPair = wrapIn.getOrAtrribute().get(p);
-				if (p == 0) {
-					sql_stringBuffer.append(" o." + nameValueCountPair.getName() + " = ?" + (index));
-
-				} else {
-					sql_stringBuffer.append(" or o." + nameValueCountPair.getName() + " = ?" + (index));
-				}
-				vs.add(nameValueCountPair.getValue());
-				index++;
-			}
-			sql_stringBuffer.append(" )");
-		}
-
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceAppealInfo.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-}

+ 0 - 958
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceDetailFactory.java

@@ -1,958 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.persistence.criteria.Selection;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.common.date.DateOperation;
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendancedetail.AttendanceCycles;
-import com.x.attendance.assemble.control.jaxrs.attendancedetail.WrapInFilter;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.attendance.entity.AttendanceDetail_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.tools.ListTools;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceDetailFactory extends AbstractFactory {
-	
-	public AttendanceDetailFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceDetail信息对象")
-	public AttendanceDetail get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceDetail.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceDetail信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select(root.get(AttendanceDetail_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceDetail信息列表")
-	public String getMaxRecordDate() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();		
-		CriteriaQuery<AttendanceDetail> cq = cb.createQuery( AttendanceDetail.class );
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);		
-		cq.orderBy( cb.desc( root.get( AttendanceDetail_.recordDateString) ) );	
-		List<AttendanceDetail> resultList = em.createQuery(cq).setMaxResults(1).getResultList();
-		if( resultList == null || resultList.size() == 0 ){
-			return null;
-		}else{
-			return resultList.get(0).getRecordDateString();
-		}
-	}
-	
-	//@MethodDescribe("根据员工姓名和打卡日期列示AttendanceDetail信息列表")
-	public List<String> listByEmployeeNameAndDate( String employeeName, String recordDateString ) throws Exception {
-		
-		if( employeeName == null || recordDateString == null ){
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select(root.get(AttendanceDetail_.id));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.empName),  employeeName );
-		p = cb.and( p, cb.equal( root.get(AttendanceDetail_.recordDateString ),  recordDateString ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	//@MethodDescribe("根据员工姓名和打卡日期列示AttendanceDetail信息列表")
-	public List<AttendanceDetail> listDetailByEmployeeNameAndDate( String employeeName, String recordDateString ) throws Exception {
-		
-		if( employeeName == null || recordDateString == null ){
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetail> cq = cb.createQuery(AttendanceDetail.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.equal( root.get(AttendanceDetail_.empName),  employeeName );
-		p = cb.and( p, cb.equal( root.get(AttendanceDetail_.recordDateString ),  recordDateString ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceDetail信息列表")
-	public List<AttendanceDetail> list(List<String> ids) throws Exception {
-		List<AttendanceDetail> resultList = null;
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceDetail>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetail> cq = cb.createQuery(AttendanceDetail.class);
-		Root<AttendanceDetail> root = cq.from(AttendanceDetail.class);
-		Predicate p = root.get(AttendanceDetail_.id).in(ids);
-		resultList = em.createQuery( cq.where(p) ).getResultList();
-		if( resultList == null ){
-			resultList = new ArrayList<AttendanceDetail>();
-		}
-		return resultList;
-	}
-
-	/**
-	 * 分析时间范围内的所有打卡记录
-	 * 1、如果未传入时间,或者时间有错,那么分析所有未分析过的打卡记录
-	 * 2、只分析未归档的,已经归档的将不再分析了
-	 * @param startDateString
-	 * @param endDateString
-	 * @return
-	 * @throws Exception
-	 */
-	//@MethodDescribe("按指定的开始时间,结束时间列示未被分析的AttendanceDetail信息列表")
-	public List<String> getAllAnalysenessDetails(String startDateString, String endDateString, String personName ) throws Exception {
-		DateOperation dateOperation = new DateOperation();
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		
-		//一般始终为true, id is not null
-		Predicate p = root.get( AttendanceDetail_.id ).isNotNull();
-		p = cb.and( p, root.get( AttendanceDetail_.archiveTime ).isNull()); //要未归档的,才再次进行分析
-		if( StringUtils.isNotEmpty( personName ) ) {
-			p = cb.and( p, cb.equal( root.get(AttendanceDetail_.empName ), personName)); //匹配员工姓名
-		}
-		Date startDate = null;
-		Date endDate = null;
-		try{
-			startDate = dateOperation.getDateFromString( startDateString );
-		}catch(Exception e){
-			startDate = null;
-		}
-		try{
-			endDate = dateOperation.getDateFromString( endDateString );
-		}catch(Exception e){
-			endDate = null;
-		}
-		//如果开始时间和结束时间有值,那么分析一个时间区间内的所有打卡记录,已经分析过了的,也需要重新分析一次
-		if( startDate != null  && endDate != null ){
-			p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), startDate, endDate));
-		}else{
-			if( startDate != null ){
-				p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), startDate, new Date()));
-			}
-			if( endDate != null ){
-				p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), new Date(), endDate));
-			}
-			if( startDate == null && endDate == null ){
-				//startDateString和endDateString都为空,只分析所有未分析过的
-				List<Integer> statusArray = new ArrayList<Integer>();
-				statusArray.add( 0 ); //未分析的
-				statusArray.add( -1 ); //有错误的
-				p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
-			}
-		}
-		
-		cq.select( root.get( AttendanceDetail_.id ) );
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	/**
-	 * 分析时间范围内的所有打卡记录
-	 * 1、如果未传入时间,或者时间有错,那么分析所有未分析过的打卡记录
-	 * 2、只分析未归档的,已经归档的将不再分析了
-	 * @param startDateString
-	 * @param endDateString
-	 * @return
-	 * @throws Exception
-	 */
-	//@MethodDescribe("按指定的开始时间,结束时间列示未被分析的员工姓名列表")
-	public List<String> getAllAnalysenessPersonNames(String startDateString, String endDateString ) throws Exception {
-		DateOperation dateOperation = new DateOperation();
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		
-		//一般始终为true, id is not null
-		Predicate p = root.get( AttendanceDetail_.id ).isNotNull();
-		p = cb.and( p, root.get( AttendanceDetail_.archiveTime ).isNull()); //要未归档的,才再次进行分析
-		Date startDate = null;
-		Date endDate = null;
-		try{
-			startDate = dateOperation.getDateFromString( startDateString );
-		}catch(Exception e){
-			startDate = null;
-		}
-		try{
-			endDate = dateOperation.getDateFromString( endDateString );
-		}catch(Exception e){
-			endDate = null;
-		}
-		//如果开始时间和结束时间有值,那么分析一个时间区间内的所有打卡记录,已经分析过了的,也需要重新分析一次
-		if( startDate != null  && endDate != null ){
-			p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), startDate, endDate));
-		}else{
-			if( startDate != null ){
-				p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), startDate, new Date()));
-			}
-			if( endDate != null ){
-				p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), new Date(), endDate));
-			}
-			if( startDate == null && endDate == null ){
-				//startDateString和endDateString都为空,只分析所有未分析过的
-				List<Integer> statusArray = new ArrayList<Integer>();
-				statusArray.add( 0 ); //未分析的
-				statusArray.add( -1 ); //有错误的
-				p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
-			}
-		}
-		
-		cq.distinct(true).select( root.get( AttendanceDetail_.empName ) );
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的开始时间,结束时间列示未被分析的AttendanceDetail信息列表")
-	public List<String> getUserAnalysenessDetails(String empName, String startDateString, String endDateString) throws Exception {
-		DateOperation dateOperation = new DateOperation();
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select(root.get(AttendanceDetail_.id));
-
-		Predicate p = cb.equal( root.get(AttendanceDetail_.empName),  empName );
-		
-		Date startDate = null;
-		Date endDate = null;
-		try{
-			startDate = dateOperation.getDateFromString( startDateString );
-		}catch(Exception e){
-			startDate = null;
-		}
-		try{
-			endDate = dateOperation.getDateFromString( endDateString );
-		}catch(Exception e){
-			endDate = null;
-		}
-		//如果开始时间和结束时间有值,那么分析一个时间区间内的所有打卡记录,已经分析过了的,也需要重新分析一次
-		if( startDate != null  && endDate != null ){
-			p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), startDate, endDate));
-		}else{
-			if( startDate != null ){
-				p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), startDate, new Date()));
-			}
-			if( endDate != null ){
-				p = cb.and( p, cb.between( root.get( AttendanceDetail_.recordDate), new Date(), endDate));
-			}
-			if( startDate == null && endDate == null ){
-				//startDateString和endDateString都为空,只分析所有未分析过的
-				List<Integer> statusArray = new ArrayList<Integer>();
-				statusArray.add( 0 ); //未分析的
-				statusArray.add( -1 ); //有错误的
-				p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
-			}
-		}
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的年份,月份列示AttendanceDetail信息列表")
-	public List<AttendanceDetail> getDetailsByYearAndMonth(String year, String month) throws Exception {
-		if( year == null || month == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetail> cq = cb.createQuery(AttendanceDetail.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.yearString), year ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.monthString), month ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息列表")
-	public List<AttendanceDetail> getDetailsByCycleYearAndMonth(String cycleYear, String cycleMonth) throws Exception {
-		if( cycleYear == null || cycleMonth == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetail> cq = cb.createQuery(AttendanceDetail.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的年份,月份列示已分析的AttendanceDetail信息中涉及的组织列表")
-	public List<String> getDetailsUnitsByYearAndMonth(String year, String month) throws Exception {
-		if( year == null || month == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.unitName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.yearString), year ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.monthString), month ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	/**
-	 * 迟到、缺勤、早退、工时不足、异常打卡,但未申诉通过的
-	 * @param year
-	 * @param month
-	 * @return
-	 * @throws Exception
-	 */
-	//@MethodDescribe("获取所有需要导出所有异常数据(未申诉的、申诉未通过的)")
-	public List<String> getDetailsWithAllAbnormalCase( String year, String month ) throws Exception {
-		if( year == null || month == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select( root.get(AttendanceDetail_.id ));
-		
-		Predicate p = cb.lessThan( root.get(AttendanceDetail_.appealStatus), 9); //如果等于9就是申诉通过
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), year ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), month ));
-		
-		Predicate orCase = cb.isTrue(root.get(AttendanceDetail_.isLate)); //迟到
-		orCase = cb.or( orCase, cb.isTrue( root.get(AttendanceDetail_.isLeaveEarlier)) ); //或者早退
-		orCase = cb.or( orCase, cb.isTrue( root.get(AttendanceDetail_.isAbnormalDuty) )); //或者异常打卡
-		orCase = cb.or( orCase, cb.isTrue( root.get(AttendanceDetail_.isAbsent) )); //或者缺勤
-		orCase = cb.or( orCase, cb.isTrue( root.get(AttendanceDetail_.isLackOfTime) )); //或者工时不足
-		
-		Predicate where = cb.and( p, orCase );
-		
-		return em.createQuery(cq.where(where)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的组织列表")
-	public List<String> getDetailsUnitsByCycleYearAndMonth(String cycleYear, String cycleMonth) throws Exception {
-		if( cycleYear == null || cycleMonth == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.unitName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的顶层组织名称列表")
-	public List<String> distinctDetailsTopUnitNamesByYearAndMonth(String year, String month) throws Exception {
-		if( year == null || month == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.topUnitName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.yearString), year ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.monthString), month ));
-		return em.createQuery(cq.where(p)).setMaxResults(1000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的员工姓名列表")
-	public List<String> distinctDetailsEmployeeNamesByCycleYearAndMonth(String cycleYear, String cycleMonth) throws Exception {
-		if( cycleYear == null || cycleMonth == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.empName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的顶层组织名称列表")
-	public List<String> distinctDetailsTopUnitNamesByCycleYearAndMonth(String cycleYear, String cycleMonth) throws Exception {
-		if( cycleYear == null || cycleMonth == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.topUnitName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的组织名称列表")
-	public List<String> distinctDetailsUnitNamesByCycleYearAndMonth( String cycleYear, String cycleMonth ) throws Exception {
-		if( cycleYear == null || cycleMonth == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.unitName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-	
-	//@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的组织名称列表")
-	public List<String> distinctDetailsUnitNamesByCycleYearAndMonth( String cycleYear, String cycleMonth, String employeeName ) throws Exception {
-		if( cycleYear == null || cycleMonth == null || employeeName == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.unitName ));
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.empName), employeeName ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-
-
-	//@MethodDescribe("按batchName查询一次导入的所有数据记录列表")
-	public List<String> listByBatchName( String file_id ) throws Exception{
-		if( file_id == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.distinct(true).select( root.get(AttendanceDetail_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.batchName), file_id );
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	//@MethodDescribe("按年份月份查询某用户的打卡数据记录列表")
-	public List<String> listUserAttendanceDetailByYearAndMonth(String user, String year, String month)  throws Exception {
-		if( user == null || user.isEmpty() ||year == null || month == null || year.isEmpty() || month.isEmpty()  ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select( root.get(AttendanceDetail_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		if( StringUtils.isNotEmpty( user ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.empName), user ));
-		}
-		if( StringUtils.isNotEmpty( year ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.yearString), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.monthString), month ));
-		}
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("按周期年份月份查询某用户的打卡数据记录列表")
-	public List<String> listUserAttendanceDetailByCycleYearAndMonth(String user, String year, String month)  throws Exception {
-		if( user == null || user.isEmpty() ||year == null || month == null || year.isEmpty() || month.isEmpty()  ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select( root.get(AttendanceDetail_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		if( StringUtils.isNotEmpty( user ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.empName), user ));
-		}
-		if( StringUtils.isNotEmpty( year ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleYear), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.cycleMonth), month ));
-		}
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("按年份月份查询某组织的打卡数据记录列表")
-	public List<String> listUnitAttendanceDetailByYearAndMonth( List<String> unitNames, String year, String month)  throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select( root.get(AttendanceDetail_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		if( unitNames != null && unitNames.size() > 0 ){
-			p = cb.and(p, root.get(AttendanceDetail_.unitName).in(unitNames));
-		}
-		if( StringUtils.isNotEmpty( year ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.yearString), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.monthString), month ));
-		}
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("按年份月份查询某顶层组织的打卡数据记录列表")
-	public List<String> listTopUnitAttendanceDetailByYearAndMonth(List<String> topUnitNames, String year, String month)  throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select( root.get(AttendanceDetail_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.equal( root.get(AttendanceDetail_.recordStatus), 1 );
-		if( ListTools.isNotEmpty(  topUnitNames ) ){
-			p = cb.and(p, root.get(AttendanceDetail_.topUnitName).in( topUnitNames ));
-		}
-		if( StringUtils.isNotEmpty( year ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.yearString), year ));
-		}
-		if( StringUtils.isNotEmpty( month ) ){
-			p = cb.and(p, cb.equal( root.get(AttendanceDetail_.monthString), month ));
-		}
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<AttendanceDetail> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilter wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+AttendanceDetail.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getQ_empName()) && (!wrapIn.getQ_empName().isEmpty())) {
-			sql_stringBuffer.append(" and o.empName = ?" + (index));
-			vs.add( wrapIn.getQ_empName() );
-			index++;
-		}
-		if (null != wrapIn.getUnitNames() && wrapIn.getUnitNames().size()>0) {
-			sql_stringBuffer.append(" and o.unitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getUnitNames() );
-			index++;
-		}
-		if (null != wrapIn.getTopUnitNames() && wrapIn.getTopUnitNames().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getTopUnitNames() );
-			index++;
-		}
-		if ((null != wrapIn.getCycleYear() ) && (!wrapIn.getCycleYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.cycleYear = ?" + (index));
-			vs.add( wrapIn.getCycleYear() );
-			index++;
-		}
-		if ((null != wrapIn.getCycleMonth()) && (!wrapIn.getCycleMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.cycleMonth = ?" + (index));
-			vs.add( wrapIn.getCycleMonth() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_year() ) && (!wrapIn.getQ_year().isEmpty())) {
-			sql_stringBuffer.append(" and o.yearString = ?" + (index));
-			vs.add( wrapIn.getQ_year() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_month()) && (!wrapIn.getQ_month().isEmpty())) {
-			sql_stringBuffer.append(" and o.monthString = ?" + (index));
-			vs.add( wrapIn.getQ_month() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_date()) && (!wrapIn.getQ_date().isEmpty())) {
-			sql_stringBuffer.append(" and o.recordDateString = ?" + (index));
-			vs.add( wrapIn.getQ_date() );
-			index++;
-		}
-		
-		if ( wrapIn.getRecordStatus() != 999 ) {
-			sql_stringBuffer.append(" and o.recordStatus = ?" + (index));
-			vs.add( wrapIn.getRecordStatus() );
-			index++;
-		}
-		
-		if (wrapIn.getIsAbsent() != null ) {
-			sql_stringBuffer.append(" and o.isAbsent = ?" + (index));
-			vs.add( wrapIn.getIsAbsent() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLate() != null ) {
-			sql_stringBuffer.append(" and o.isLate = ?" + (index));
-			vs.add( wrapIn.getIsLate() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLackOfTime() != null ) {
-			sql_stringBuffer.append(" and o.isLackOfTime = ?" + (index));
-			vs.add( wrapIn.getIsLackOfTime() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLeaveEarlier() != null ) {
-			sql_stringBuffer.append(" and o.isLeaveEarlier = ?" + (index));
-			vs.add( wrapIn.getIsLeaveEarlier() );
-			index++;
-		}
-		
-		if( StringUtils.isNotEmpty( wrapIn.getKey() )){
-			sql_stringBuffer.append(" order by o."+wrapIn.getKey()+" " + order );
-		}else{
-			sql_stringBuffer.append(" order by o.sequence " + order );
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceDetail.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<AttendanceDetail> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilter wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+AttendanceDetail.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getQ_empName()) && (!wrapIn.getQ_empName().isEmpty())) {
-			sql_stringBuffer.append(" and o.empName = ?" + (index));
-			vs.add( wrapIn.getQ_empName() );
-			index++;
-		}
-		if (null != wrapIn.getUnitNames() && wrapIn.getUnitNames().size()>0) {
-			sql_stringBuffer.append(" and o.unitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getUnitNames() );
-			index++;
-		}
-		if (null != wrapIn.getTopUnitNames() && wrapIn.getTopUnitNames().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getTopUnitNames() );
-			index++;
-		}
-		if ((null != wrapIn.getCycleYear() ) && (!wrapIn.getCycleYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.cycleYear = ?" + (index));
-			vs.add( wrapIn.getCycleYear() );
-			index++;
-		}
-		if ((null != wrapIn.getCycleMonth()) && (!wrapIn.getCycleMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.cycleMonth = ?" + (index));
-			vs.add( wrapIn.getCycleMonth() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_year() ) && (!wrapIn.getQ_year().isEmpty())) {
-			sql_stringBuffer.append(" and o.yearString = ?" + (index));
-			vs.add( wrapIn.getQ_year() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_month()) && (!wrapIn.getQ_month().isEmpty())) {
-			sql_stringBuffer.append(" and o.monthString = ?" + (index));
-			vs.add( wrapIn.getQ_month() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_date()) && (!wrapIn.getQ_date().isEmpty())) {
-			sql_stringBuffer.append(" and o.recordDateString = ?" + (index));
-			vs.add( wrapIn.getQ_date() );
-			index++;
-		}
-		
-		if ( wrapIn.getRecordStatus() != 999 ) {
-			sql_stringBuffer.append(" and o.recordStatus = ?" + (index));
-			vs.add( wrapIn.getIsAbsent() );
-			index++;
-		}
-		
-		if (wrapIn.getIsAbsent() != null ) {
-			sql_stringBuffer.append(" and o.isAbsent = ?" + (index));
-			vs.add( wrapIn.getIsAbsent() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLate() != null ) {
-			sql_stringBuffer.append(" and o.isLate = ?" + (index));
-			vs.add( wrapIn.getIsLate() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLackOfTime() != null ) {
-			sql_stringBuffer.append(" and o.isLackOfTime = ?" + (index));
-			vs.add( wrapIn.getIsLackOfTime() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLeaveEarlier() != null ) {
-			sql_stringBuffer.append(" and o.isLeaveEarlier = ?" + (index));
-			vs.add( wrapIn.getIsLeaveEarlier() );
-			index++;
-		}
-		
-		if( StringUtils.isNotEmpty( wrapIn.getKey() )){
-			sql_stringBuffer.append(" order by o."+wrapIn.getKey()+" " + order );
-		}else{
-			sql_stringBuffer.append(" order by o.sequence " + order );
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceDetail.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(count).getResultList();
-	}
-	
-	/**
-	 * 查询符合的文档信息总数
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilter wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+AttendanceDetail.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getQ_empName()) && (!wrapIn.getQ_empName().isEmpty())) {
-			sql_stringBuffer.append(" and o.empName = ?" + (index));
-			vs.add( wrapIn.getQ_empName() );
-			index++;
-		}
-		if (null != wrapIn.getUnitNames() && wrapIn.getUnitNames().size()>0) {
-			sql_stringBuffer.append(" and o.unitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getUnitNames() );
-			index++;
-		}
-		if (null != wrapIn.getTopUnitNames() && wrapIn.getTopUnitNames().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getTopUnitNames() );
-			index++;
-		}
-		if ((null != wrapIn.getCycleYear() ) && (!wrapIn.getCycleYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.cycleYear = ?" + (index));
-			vs.add( wrapIn.getCycleYear() );
-			index++;
-		}
-		if ((null != wrapIn.getCycleMonth()) && (!wrapIn.getCycleMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.cycleMonth = ?" + (index));
-			vs.add( wrapIn.getCycleMonth() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_year() ) && (!wrapIn.getQ_year().isEmpty())) {
-			sql_stringBuffer.append(" and o.yearString = ?" + (index));
-			vs.add( wrapIn.getQ_year() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_month()) && (!wrapIn.getQ_month().isEmpty())) {
-			sql_stringBuffer.append(" and o.monthString = ?" + (index));
-			vs.add( wrapIn.getQ_month() );
-			index++;
-		}
-		if ((null != wrapIn.getQ_date()) && (!wrapIn.getQ_date().isEmpty())) {
-			sql_stringBuffer.append(" and o.recordDateString = ?" + (index));
-			vs.add( wrapIn.getQ_date() );
-			index++;
-		}
-		if ( wrapIn.getRecordStatus() != 999 ) {
-			sql_stringBuffer.append(" and o.recordStatus = ?" + (index));
-			vs.add( wrapIn.getIsAbsent() );
-			index++;
-		}
-		
-		if (wrapIn.getIsAbsent() != null ) {
-			sql_stringBuffer.append(" and o.isAbsent = ?" + (index));
-			vs.add( wrapIn.getIsAbsent() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLate() != null ) {
-			sql_stringBuffer.append(" and o.isLate = ?" + (index));
-			vs.add( wrapIn.getIsLate() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLackOfTime() != null ) {
-			sql_stringBuffer.append(" and o.isLackOfTime = ?" + (index));
-			vs.add( wrapIn.getIsLackOfTime() );
-			index++;
-		}
-		
-		if (wrapIn.getIsLeaveEarlier() != null ) {
-			sql_stringBuffer.append(" and o.isLeaveEarlier = ?" + (index));
-			vs.add( wrapIn.getIsLeaveEarlier() );
-			index++;
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceDetail.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-
-	public List<String> getByUserAndRecordDate(String employeeName, String recordDateStringFormated)  throws Exception{		
-		if( employeeName == null || employeeName.isEmpty() || recordDateStringFormated == null || recordDateStringFormated.isEmpty() ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.equal( root.get(AttendanceDetail_.empName), employeeName );
-		p = cb.and(p, cb.equal( root.get(AttendanceDetail_.recordDateString), recordDateStringFormated ));	
-		cq.select( root.get(AttendanceDetail_.id ));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	
-	public List<AttendanceCycles> getCyclesFromDetailWithDateSplit( Date startDate, Date endDate )  throws Exception{
-		if( startDate == null || startDate == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceCycles> cq = cb.createQuery(AttendanceCycles.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.between( root.get(AttendanceDetail_.recordDate), startDate, endDate);
-		
-		List<Selection<?>> selectionList = new ArrayList<Selection<?>>();
-		selectionList.add(root.get(AttendanceDetail_.cycleYear ));
-		selectionList.add(root.get(AttendanceDetail_.cycleMonth ));
-		cq.distinct(true).multiselect(selectionList);
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	public List<AttendanceCycles> getCyclesFromDetailWithDateSplit( String empName, Date startDate, Date endDate )  throws Exception{
-		if( startDate == null || startDate == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceCycles> cq = cb.createQuery(AttendanceCycles.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.between( root.get(AttendanceDetail_.recordDate), startDate, endDate);
-		p = cb.and( p, cb.equal( root.get(AttendanceDetail_.empName), empName));
-		List<Selection<?>> selectionList = new ArrayList<Selection<?>>();
-		selectionList.add(root.get(AttendanceDetail_.cycleYear ));
-		selectionList.add(root.get(AttendanceDetail_.cycleMonth ));
-		cq.distinct(true).multiselect(selectionList);
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("查询未归档的条卡记录列表,最大2000条")
-	public List<String> listNonArchiveDetailInfoIds()  throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select( root.get(AttendanceDetail_.id ));
-		//一般始终为true, id is not null
-		Predicate p = cb.isNotNull( root.get(AttendanceDetail_.archiveTime) );
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-
-	public List<String> listAnalysenessDetailsByEmployee( String empName ) throws Exception {
-		List<Integer> statusArray = new ArrayList<Integer>();
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		cq.select(root.get(AttendanceDetail_.id));
-		Predicate p = cb.equal( root.get( AttendanceDetail_.empName ), empName );
-		statusArray.add( 0 ); //未分析的
-		statusArray.add( -1 ); //有错误的
-		p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
-		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
-	}
-}

+ 0 - 159
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceDetailMobileFactory.java

@@ -1,159 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceDetailMobile;
-import com.x.attendance.entity.AttendanceDetailMobile_;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceDetailMobileFactory extends AbstractFactory {
-	
-	public AttendanceDetailMobileFactory( Business business ) throws Exception {
-		super(business);
-	}
-
-	public List<String> listByEmployeeNameDateAndTime( String empName, String recordDateString, String signTime ) throws Exception {
-		if( empName == null || empName.isEmpty() ){
-			throw new Exception("empName is null!");
-		}
-		if( recordDateString == null || recordDateString.isEmpty() ){
-			throw new Exception("recordDateString is null!");
-		}
-		if( signTime == null || signTime.isEmpty() ){
-			throw new Exception("signTime is null!");
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetailMobile.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetailMobile> root = cq.from( AttendanceDetailMobile.class);
-		cq.select(root.get(AttendanceDetailMobile_.id));
-		Predicate p = cb.equal( root.get(AttendanceDetailMobile_.empName),  empName );
-		p = cb.and( p, cb.equal( root.get(AttendanceDetailMobile_.recordDateString ),  recordDateString ) );
-		p = cb.and( p, cb.equal( root.get(AttendanceDetailMobile_.signTime ),  signTime ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	/**
-	 * 列示指定人员指定日期的所有移动打卡信息
-	 * @param empName
-	 * @param recordDateString
-	 * @return
-	 * @throws Exception
-	 */
-	public List<AttendanceDetailMobile> listAttendanceDetailMobileWithEmployee( String empName, String recordDateString) throws Exception {
-		if( empName == null || empName.isEmpty() ){
-			throw new Exception("empName is null!");
-		}
-		if( recordDateString == null || recordDateString.isEmpty() ){
-			throw new Exception("recordDateString is null!");
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetailMobile.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetailMobile> cq = cb.createQuery(AttendanceDetailMobile.class);
-		Root<AttendanceDetailMobile> root = cq.from( AttendanceDetailMobile.class);
-		Predicate p = cb.equal( root.get(AttendanceDetailMobile_.empName),  empName );
-		p = cb.and( p, cb.equal( root.get(AttendanceDetailMobile_.recordDateString ),  recordDateString ) );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceDetailMobile信息列表")
-	public List<AttendanceDetailMobile> list(List<String> ids) throws Exception {
-		List<AttendanceDetailMobile> resultList = null;
-		if( ids == null || ids.size() == 0 ){
-			throw new Exception("ids is null!");
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetailMobile.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetailMobile> cq = cb.createQuery(AttendanceDetailMobile.class);
-		Root<AttendanceDetailMobile> root = cq.from(AttendanceDetailMobile.class);
-		Predicate p = root.get( AttendanceDetailMobile_.id).in( ids );
-		resultList = em.createQuery( cq.where(p) ).getResultList();
-		return resultList;
-	}
-
-	public Long countAttendanceDetailMobileForPage( String empNo, String empName, String signDescription,
-			String startDate, String endDate) throws Exception {
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetailMobile.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetailMobile> root = cq.from(AttendanceDetailMobile.class);
-		Predicate p = cb.isNotNull( root.get( AttendanceDetailMobile_.id ) );
-		if( StringUtils.isNotEmpty( empNo ) ){
-			p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.empNo ), empNo ) );
-		}
-		if( StringUtils.isNotEmpty( empName ) ){
-			p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.empName ), empName ) );
-		}
-		if( StringUtils.isNotEmpty( signDescription ) ){
-			p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.signDescription ), signDescription ) );
-		}
-		if( StringUtils.isNotEmpty( startDate ) ){
-			if( StringUtils.isNotEmpty( endDate ) && !endDate.equals( startDate ) ){//查询日期区间
-				p = cb.between( root.get( AttendanceDetailMobile_.recordDateString ), startDate, endDate );
-			}else{
-				//查询startDate当天
-				p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.recordDateString ), startDate ) );
-			}
-		}
-		cq.select( cb.count( root ) );		
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	public List<AttendanceDetailMobile> listAttendanceDetailMobileForPage( String empNo, String empName, String signDescription,
-			String startDate, String endDate, Integer selectTotal ) throws Exception {
-		if( selectTotal == null ){
-			selectTotal = 100;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetailMobile.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceDetailMobile> cq = cb.createQuery(AttendanceDetailMobile.class);
-		Root<AttendanceDetailMobile> root = cq.from(AttendanceDetailMobile.class);
-		Predicate p = cb.isNotNull( root.get( AttendanceDetailMobile_.id ) );
-		if( StringUtils.isNotEmpty( empNo ) ){
-			p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.empNo ), empNo ) );
-		}
-		if( StringUtils.isNotEmpty( empName ) ){
-			p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.empName ), empName ) );
-		}
-		if( StringUtils.isNotEmpty( signDescription ) ){
-			p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.signDescription ), signDescription ) );
-		}
-		if( StringUtils.isNotEmpty( startDate ) ){
-			if( StringUtils.isNotEmpty( endDate ) && !endDate.equals( startDate ) ){//查询日期区间
-				p = cb.between( root.get( AttendanceDetailMobile_.recordDateString ), startDate, endDate );
-			}else{
-				//查询startDate当天
-				p = cb.and( p, cb.equal( root.get( AttendanceDetailMobile_.recordDateString ), startDate ) );
-			}
-		}
-		return em.createQuery(cq.where(p)).setMaxResults( selectTotal ).getResultList();
-	}
-
-	public AttendanceDetailMobile get(String id) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceDetailMobile.class );
-	}
-
-	public List<String> listAllAnalyseWithStatus(int status) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceDetailMobile.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceDetailMobile> root = cq.from( AttendanceDetailMobile.class);
-		cq.select(root.get(AttendanceDetailMobile_.id));
-		Predicate p = cb.equal( root.get(AttendanceDetailMobile_.recordStatus), status );
-		return em.createQuery(cq.where( p )).getResultList();
-	}
-
-	
-
-}

+ 0 - 925
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceDetailStatisticFactory.java

@@ -1,925 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.attendance.entity.AttendanceDetail_;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-/**
- * 打卡信息统计服务类,以打卡信息表为基础进行统计
- */
-public class AttendanceDetailStatisticFactory extends AbstractFactory {
-
-	private static  Logger logger = LoggerFactory.getLogger( AttendanceDetailStatisticFactory.class );
-	
-	public AttendanceDetailStatisticFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	/**
-	 * 根据员工,年月,统计异常打卡次数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countAbNormalDutyByEmployeeCycleYearAndMonth(List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		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_.isAbnormalDuty) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,年月,统计工时不足次数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLackOfTimeByEmployeeCycleYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		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_.isLackOfTime) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,年月,统计早退次数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLeaveEarlierByEmployeeCycleYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		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_.isLeaveEarlier ) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,年月,统计迟到次数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLateByEmployeeCycleYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.empName).in( employeeNames );
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLate ) ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,年月,统计签退次数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countOffDutyByEmployeeCycleYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.isNotNull(root.get( AttendanceDetail_.offDutyTime ));
-		p = cb.and( p, cb.notEqual( root.get( AttendanceDetail_.offDutyTime), ""));
-		p = cb.and( p, root.get( AttendanceDetail_.empName).in( employeeNames ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,年月,统计签退次数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countOnDutyByEmployeeCycleYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.isNotNull(root.get( AttendanceDetail_.onDutyTime ));
-		p = cb.and( p, cb.notEqual( root.get( AttendanceDetail_.onDutyTime), ""));
-		p = cb.and( p, root.get( AttendanceDetail_.empName).in( employeeNames ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,年月,统计请假天数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumOnSelfHolidayDaysByEmployeeYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		// 不是周末,或者是周末但是调工作日了
-		Predicate p1 = cb.isFalse(root.get( AttendanceDetail_.isWeekend ));
-		p1 = cb.or( p1, cb.and(cb.isTrue(root.get( AttendanceDetail_.isWeekend )), cb.isTrue(root.get( AttendanceDetail_.isWorkday )) ));
-								
-		Predicate p = root.get( AttendanceDetail_.empName).in( employeeNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isFalse(root.get( AttendanceDetail_.isHoliday ))); //不是节假日
-		p = cb.and( p, p1 ); //不是周末并且未调休工作晶
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear ));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth ));
-		}
-		
-		//查询总数
-		cq.select( cb.sum( root.get( AttendanceDetail_.getSelfHolidayDays ) ) );	
-				
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	
-	
-	/**
-	 * 根据员工,年月,统计缺勤天数
-	 * @param employeeNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAbsenceDaysByEmployeeYearAndMonth( List<String> employeeNames, String cycleYear, String cycleMonth) throws Exception{
-		if( employeeNames == null || employeeNames.size() == 0 ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		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));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(AttendanceDetail_.cycleYear), cycleYear));
-		}
-		
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.sum( root.get(AttendanceDetail_.absence ) ) );	
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,年月,统计异常打卡次数
-	 * @param unitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countAbNormalDutyByUnitCycleYearAndMonth(List<String> unitNames, String cycleYear, String cycleMonth) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isAbnormalDuty) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,年月,统计工时不足次数
-	 * @param unitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLackOfTimeByUnitCycleYearAndMonth( List<String> unitNames, String cycleYear, String cycleMonth) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLackOfTime) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,年月,统计早退次数
-	 * @param unitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLeaveEarlierByUnitCycleYearAndMonth( List<String> unitNames, String cycleYear, String cycleMonth) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLeaveEarlier ) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,年月,统计迟到次数
-	 * @param unitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLateByUnitCycleYearAndMonth( List<String> unitNames, String cycleYear, String cycleMonth) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLate ) ));
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.cycleMonth), cycleMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,打卡日期,统计异常打卡次数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countAbNormalDutyByUnitAndDate(List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isAbnormalDuty) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,打卡日期,统计工时不足次数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLackOfTimeByUnitAndDate( List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLackOfTime) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,打卡日期,统计早退次数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLeaveEarlierByUnitAndDate( List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLeaveEarlier ) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,打卡日期,统计迟到次数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLateByUnitAndDate( List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLate ) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,打卡日期,统计缺勤天数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAbsenceDaysByUnitAndDate( List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);	
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.sum( root.get(AttendanceDetail_.absence ) ) );	
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据员工,打卡日期月,统计请假天数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumOnSelfHolidayDaysByUnitAndDate( List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);			
-		Predicate p = root.get( AttendanceDetail_.unitName ).in( unitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}		
-		//查询总数
-		cq.select( cb.sum( root.get( AttendanceDetail_.getSelfHolidayDays ) ) );	
-				
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,打卡日期,统计签退人数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countOffDutyByUnitAndDate( List<String> unitNames, String recordDate ) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.isNotNull(root.get( AttendanceDetail_.offDutyTime ));
-		p = cb.and( p, cb.notEqual( root.get( AttendanceDetail_.offDutyTime), ""));
-		p = cb.and( p, root.get( AttendanceDetail_.unitName).in( unitNames ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.unitName), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,打卡日期,统计签到人数
-	 * @param unitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countOnDutyByUnitAndDate( List<String> unitNames, String recordDate) throws Exception{
-		if( unitNames == null || unitNames.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.isNotNull(root.get( AttendanceDetail_.onDutyTime ));
-		p = cb.and( p, cb.notEqual( root.get( AttendanceDetail_.onDutyTime), ""));
-		p = cb.and( p, root.get( AttendanceDetail_.unitName ).in( unitNames ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.unitName), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计异常打卡次数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countAbNormalDutyByTopUnitAndDate(List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.topUnitName ).in( topUnitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isAbnormalDuty) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计工时不足次数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLackOfTimeByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.topUnitName ).in( topUnitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLackOfTime) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计早退次数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLeaveEarlierByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.topUnitName ).in( topUnitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLeaveEarlier ) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计迟到次数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countLateByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = root.get( AttendanceDetail_.topUnitName ).in( topUnitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isLate ) ));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计缺勤天数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAbsenceDaysByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);	
-		Predicate p = root.get( AttendanceDetail_.topUnitName ).in( topUnitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}
-		//查询总数
-		cq.select( cb.sum( root.get(AttendanceDetail_.absence ) ) );	
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期月,统计请假天数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumOnSelfHolidayDaysByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);			
-		Predicate p = root.get( AttendanceDetail_.topUnitName ).in( topUnitNames );
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString ), recordDate));
-		}		
-		//查询总数
-		cq.select( cb.sum( root.get( AttendanceDetail_.getSelfHolidayDays ) ) );	
-				
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计签到人数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countOffDutyByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.isNotNull(root.get( AttendanceDetail_.offDutyTime ));
-		p = cb.and( p, cb.notEqual( root.get( AttendanceDetail_.offDutyTime), ""));
-		p = cb.and( p, root.get( AttendanceDetail_.topUnitName ).in( topUnitNames ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织,打卡日期,统计签到人数
-	 * @param topUnitNames
-	 * @param recordDate
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countOnDutyByTopUnitAndDate( List<String> topUnitNames, String recordDate ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( AttendanceDetail.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);
-		Predicate p = cb.isNotNull(root.get( AttendanceDetail_.onDutyTime ));
-		p = cb.and( p, cb.notEqual( root.get( AttendanceDetail_.onDutyTime), ""));
-		p = cb.and( p, root.get( AttendanceDetail_.topUnitName).in( topUnitNames ));
-		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
-		if( recordDate == null || recordDate.isEmpty() ){
-			logger.error( new RecordDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordDateString), recordDate));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-}

+ 0 - 67
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceEmployeeConfigFactory.java

@@ -1,67 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceEmployeeConfig;
-import com.x.attendance.entity.AttendanceEmployeeConfig_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 员工考勤需求配置服务器
- */
-public class AttendanceEmployeeConfigFactory extends AbstractFactory {
-	
-	public AttendanceEmployeeConfigFactory(Business business) throws Exception {
-		super(business);
-	}
-
-//	@MethodDescribe("获取指定Id的AttendanceEmployeeConfig信息对象")
-	public AttendanceEmployeeConfig get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceEmployeeConfig.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceEmployeeConfig信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceEmployeeConfig> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceEmployeeConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceEmployeeConfig> cq = cb.createQuery(AttendanceEmployeeConfig.class);
-		Root<AttendanceEmployeeConfig> root = cq.from( AttendanceEmployeeConfig.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceEmployeeConfig信息列表")
-	public List<AttendanceEmployeeConfig> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceEmployeeConfig>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceEmployeeConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceEmployeeConfig> cq = cb.createQuery(AttendanceEmployeeConfig.class);
-		Root<AttendanceEmployeeConfig> root = cq.from(AttendanceEmployeeConfig.class);
-		Predicate p = root.get(AttendanceEmployeeConfig_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据配置类别列示AttendanceEmployeeConfig信息列表")
-	public List<String> listByConfigType( String configType ) throws Exception {
-		if( configType == null || configType.isEmpty()){
-			return new ArrayList<String>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceEmployeeConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceEmployeeConfig> root = cq.from(AttendanceEmployeeConfig.class);
-		Predicate p = cb.equal(root.get(AttendanceEmployeeConfig_.configType), configType);	
-		cq.select(root.get(AttendanceEmployeeConfig_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}	
-}

+ 0 - 53
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceImportFileInfoFactory.java

@@ -1,53 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceImportFileInfo;
-import com.x.attendance.entity.AttendanceImportFileInfo_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceImportFileInfoFactory extends AbstractFactory {
-	
-	public AttendanceImportFileInfoFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceImportFileInfo应用信息对象")
-	public AttendanceImportFileInfo get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceImportFileInfo.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceImportFileInfo应用信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceImportFileInfo> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceImportFileInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceImportFileInfo> cq = cb.createQuery(AttendanceImportFileInfo.class);
-		Root<AttendanceImportFileInfo> root = cq.from( AttendanceImportFileInfo.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-//	@MethodDescribe("列示指定Id的AttendanceImportFileInfo应用信息列表")
-	public List<AttendanceImportFileInfo> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceImportFileInfo>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceImportFileInfo.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceImportFileInfo> cq = cb.createQuery(AttendanceImportFileInfo.class);
-		Root<AttendanceImportFileInfo> root = cq.from(AttendanceImportFileInfo.class);
-		Predicate p = root.get(AttendanceImportFileInfo_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}	
-}

+ 0 - 97
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceScheduleSettingFactory.java

@@ -1,97 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceScheduleSetting;
-import com.x.attendance.entity.AttendanceScheduleSetting_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceScheduleSettingFactory extends AbstractFactory {
-	
-	public AttendanceScheduleSettingFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceScheduleSetting应用信息对象")
-	public AttendanceScheduleSetting get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceScheduleSetting.class, ExceptionWhen.none);
-	}
-	
-//	@MethodDescribe("列示全部的AttendanceScheduleSetting应用信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceScheduleSetting> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceScheduleSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceScheduleSetting> cq = cb.createQuery(AttendanceScheduleSetting.class);
-		Root<AttendanceScheduleSetting> root = cq.from( AttendanceScheduleSetting.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceScheduleSetting应用信息列表")
-	public List<AttendanceScheduleSetting> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceScheduleSetting>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceScheduleSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceScheduleSetting> cq = cb.createQuery(AttendanceScheduleSetting.class);
-		Root<AttendanceScheduleSetting> root = cq.from(AttendanceScheduleSetting.class);
-		Predicate p = root.get(AttendanceScheduleSetting_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据组织名称,查询组织排班信息对象")
-	public List<String> listByUnitName( String unitName ) throws Exception{		
-		EntityManager em = this.entityManagerContainer().get(AttendanceScheduleSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceScheduleSetting> root = cq.from(AttendanceScheduleSetting.class);
-		Predicate p = cb.equal(root.get(AttendanceScheduleSetting_.unitName), unitName );
-		cq.select(root.get(AttendanceScheduleSetting_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据组织名称,查询组织排班信息对象")
-	public List<String> listByUnitNames( List<String> unitNameList ) throws Exception{		
-		EntityManager em = this.entityManagerContainer().get(AttendanceScheduleSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceScheduleSetting> root = cq.from(AttendanceScheduleSetting.class);
-		Predicate p = root.get(AttendanceScheduleSetting_.unitName).in(unitNameList);
-		cq.select(root.get(AttendanceScheduleSetting_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据顶层组织名称,查询顶层组织排班信息对象")
-	public List<String> listByTopUnitName( String topUnitName ) throws Exception{		
-		EntityManager em = this.entityManagerContainer().get(AttendanceScheduleSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceScheduleSetting> root = cq.from(AttendanceScheduleSetting.class);
-		Predicate p = cb.equal(root.get(AttendanceScheduleSetting_.topUnitName), topUnitName );
-		cq.select(root.get(AttendanceScheduleSetting_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<String> listByUnitName( String unitName, String topUnitName ) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceScheduleSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceScheduleSetting> root = cq.from(AttendanceScheduleSetting.class);
-		Predicate p = cb.equal(root.get(AttendanceScheduleSetting_.topUnitName), topUnitName );
-		p = cb.and( p, cb.equal(root.get(AttendanceScheduleSetting_.unitName), unitName ) );
-		cq.select(root.get(AttendanceScheduleSetting_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-}

+ 0 - 274
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceSelfHolidayFactory.java

@@ -1,274 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.selfholiday.WrapInFilter;
-import com.x.attendance.entity.AttendanceSelfHoliday;
-import com.x.attendance.entity.AttendanceSelfHoliday_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceSelfHolidayFactory extends AbstractFactory {
-	
-	public AttendanceSelfHolidayFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceSelfHoliday信息对象")
-	public AttendanceSelfHoliday get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceSelfHoliday.class, ExceptionWhen.none);
-	}
-	
-//@MethodDescribe("列示全部的AttendanceSelfHoliday信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceSelfHoliday> root = cq.from( AttendanceSelfHoliday.class);
-		cq.select(root.get(AttendanceSelfHoliday_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-//	@MethodDescribe("列示指定Id的AttendanceSelfHoliday信息列表")
-	public List<AttendanceSelfHoliday> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceSelfHoliday>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceSelfHoliday> cq = cb.createQuery(AttendanceSelfHoliday.class);
-		Root<AttendanceSelfHoliday> root = cq.from(AttendanceSelfHoliday.class);
-		Predicate p = root.get(AttendanceSelfHoliday_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<AttendanceSelfHoliday> listWithBatchFlag( String batchFlag ) throws Exception {
-		if( StringUtils.isEmpty( batchFlag )){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceSelfHoliday> cq = cb.createQuery(AttendanceSelfHoliday.class);
-		Root<AttendanceSelfHoliday> root = cq.from(AttendanceSelfHoliday.class);
-		Predicate p = cb.equal( root.get(AttendanceSelfHoliday_.batchFlag), batchFlag );
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	//@MethodDescribe("列示单个员工的AttendanceSelfHoliday信息列表")
-	public List<String> getByEmployeeName(String empName) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceSelfHoliday> root = cq.from( AttendanceSelfHoliday.class);
-		Predicate p = root.get(AttendanceSelfHoliday_.employeeName).in( empName );
-		cq.select(root.get(AttendanceSelfHoliday_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据流程的文档ID列示员工的AttendanceSelfHoliday信息列表")
-	public List<String> getByWorkFlowDocId(String docId) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceSelfHoliday> root = cq.from( AttendanceSelfHoliday.class);
-		Predicate p = cb.equal(root.get(AttendanceSelfHoliday_.docId), docId);
-		cq.select(root.get(AttendanceSelfHoliday_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<String> listByStartDateAndEndDate(Date startDate, Date endDate) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceSelfHoliday> root = cq.from( AttendanceSelfHoliday.class);
-		Predicate p = cb.between(root.get(AttendanceSelfHoliday_.startTime), startDate, endDate);
-		p = cb.and( p, cb.between(root.get(AttendanceSelfHoliday_.endTime), startDate, endDate));
-		cq.select(root.get(AttendanceSelfHoliday_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<AttendanceSelfHoliday> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilter wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceSelfHoliday.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+AttendanceSelfHoliday.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getQ_empName()) && (!wrapIn.getQ_empName().isEmpty())) {
-			sql_stringBuffer.append(" and o.employeeName = ?" + (index));
-			vs.add( wrapIn.getQ_empName() );
-			index++;
-		}
-		if (null != wrapIn.getUnitNames() && wrapIn.getUnitNames().size()>0) {
-			sql_stringBuffer.append(" and o.unitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getUnitNames() );
-			index++;
-		}
-		if (null != wrapIn.getTopUnitNames() && wrapIn.getTopUnitNames().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getTopUnitNames() );
-			index++;
-		}
-		
-		if( StringUtils.isNotEmpty( wrapIn.getKey() )){
-			sql_stringBuffer.append(" order by o."+wrapIn.getKey()+" " + order );
-		}else{
-			sql_stringBuffer.append(" order by o.sequence " + order );
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceSelfHoliday.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<AttendanceSelfHoliday> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilter wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceSelfHoliday.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+AttendanceSelfHoliday.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getQ_empName()) && (!wrapIn.getQ_empName().isEmpty())) {
-			sql_stringBuffer.append(" and o.employeeName = ?" + (index));
-			vs.add( wrapIn.getQ_empName() );
-			index++;
-		}
-		if (null != wrapIn.getUnitNames() && wrapIn.getUnitNames().size()>0) {
-			sql_stringBuffer.append(" and o.unitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getUnitNames() );
-			index++;
-		}
-		if (null != wrapIn.getTopUnitNames() && wrapIn.getTopUnitNames().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getTopUnitNames() );
-			index++;
-		}
-		
-		if( StringUtils.isNotEmpty( wrapIn.getKey() )){
-			sql_stringBuffer.append(" order by o."+wrapIn.getKey()+" " + order );
-		}else{
-			sql_stringBuffer.append(" order by o.sequence " + order );
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceSelfHoliday.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(20).getResultList();
-	}
-	
-	/**
-	 * 查询符合的文档信息总数
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilter wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( AttendanceSelfHoliday.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+AttendanceSelfHoliday.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getQ_empName()) && (!wrapIn.getQ_empName().isEmpty())) {
-			sql_stringBuffer.append(" and o.employeeName = ?" + (index));
-			vs.add( wrapIn.getQ_empName() );
-			index++;
-		}
-		if (null != wrapIn.getUnitNames() && wrapIn.getUnitNames().size()>0) {
-			sql_stringBuffer.append(" and o.unitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getUnitNames() );
-			index++;
-		}
-		if (null != wrapIn.getTopUnitNames() && wrapIn.getTopUnitNames().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ( ?" + (index) + ")");
-			vs.add( wrapIn.getTopUnitNames() );
-			index++;
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceSelfHoliday.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-
-	public List<String> getByPersonName(String personName) throws Exception {
-		if( personName == null || personName.isEmpty() ) {
-			throw new Exception("personName is null.");
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceSelfHoliday.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceSelfHoliday> root = cq.from( AttendanceSelfHoliday.class);
-		Predicate p = cb.equal(root.get(AttendanceSelfHoliday_.employeeName ), personName );
-		cq.select(root.get(AttendanceSelfHoliday_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-}

+ 0 - 85
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceSettingFactory.java

@@ -1,85 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceSetting;
-import com.x.attendance.entity.AttendanceSetting_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceSettingFactory extends AbstractFactory {
-	
-	public AttendanceSettingFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceSetting应用信息对象")
-	public AttendanceSetting get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceSetting.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceSetting应用信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceSetting> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceSetting> cq = cb.createQuery(AttendanceSetting.class);
-		Root<AttendanceSetting> root = cq.from( AttendanceSetting.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceSetting应用信息列表")
-	public List<AttendanceSetting> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceSetting>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceSetting> cq = cb.createQuery(AttendanceSetting.class);
-		Root<AttendanceSetting> root = cq.from(AttendanceSetting.class);
-		Predicate p = root.get(AttendanceSetting_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据CODE列示指定Id的AttendanceSetting应用信息列表")
-	public List<String> listIdsByCode(String code) throws Exception {
-		if( code == null || code.isEmpty() ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceSetting> root = cq.from(AttendanceSetting.class);
-		Predicate p = cb.equal(root.get(AttendanceSetting_.configCode),  code);
-		cq.select(root.get(AttendanceSetting_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public AttendanceSetting getWithConfigCode(String configCode) throws Exception {
-		if( configCode == null || configCode.isEmpty() ){
-			return null;
-		}
-		AttendanceSetting attendanceSetting = null;
-		List<AttendanceSetting> settingList = null;
-		EntityManager em = this.entityManagerContainer().get(AttendanceSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceSetting> cq = cb.createQuery(AttendanceSetting.class);
-		Root<AttendanceSetting> root = cq.from(AttendanceSetting.class);
-		Predicate p = cb.equal(root.get( AttendanceSetting_.configCode ),  configCode );
-		settingList = em.createQuery(cq.where(p)).getResultList();
-		if( settingList != null && settingList.size() > 0 ){
-			attendanceSetting = settingList.get(0);
-		}
-		return attendanceSetting;
-	}
-}

+ 0 - 124
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceStatisticRequireLogFactory.java

@@ -1,124 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceStatisticRequireLog;
-import com.x.attendance.entity.AttendanceStatisticRequireLog_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 员工考勤需求配置服务器
- */
-public class AttendanceStatisticRequireLogFactory extends AbstractFactory {
-	
-	public AttendanceStatisticRequireLogFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceStatisticRequireLog信息对象")
-	public AttendanceStatisticRequireLog get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceStatisticRequireLog.class, ExceptionWhen.none);
-	}
-	
-//	@MethodDescribe("列示全部的AttendanceStatisticRequireLog信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceStatisticRequireLog> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticRequireLog.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticRequireLog> cq = cb.createQuery(AttendanceStatisticRequireLog.class);
-		Root<AttendanceStatisticRequireLog> root = cq.from( AttendanceStatisticRequireLog.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceStatisticRequireLog信息列表")
-	public List<AttendanceStatisticRequireLog> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceStatisticRequireLog>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticRequireLog.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticRequireLog> cq = cb.createQuery(AttendanceStatisticRequireLog.class);
-		Root<AttendanceStatisticRequireLog> root = cq.from(AttendanceStatisticRequireLog.class);
-		Predicate p = root.get(AttendanceStatisticRequireLog_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据统计名称,统计Key,处理状态,列示AttendanceStatisticRequireLog信息列表")
-	public List<AttendanceStatisticRequireLog> getByNameKeyAndStatus( String name, String key, String stauts ) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticRequireLog.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticRequireLog> cq = cb.createQuery(AttendanceStatisticRequireLog.class);
-		Root<AttendanceStatisticRequireLog> root = cq.from(AttendanceStatisticRequireLog.class);
-		Predicate p = root.get(AttendanceStatisticRequireLog_.id).isNotNull();
-		if( StringUtils.isNotEmpty( name ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticName), name));
-		}
-		if( StringUtils.isNotEmpty( key ) ){
-			p = cb.and(p,  cb.equal(root.get(AttendanceStatisticRequireLog_.statisticKey), key));
-		}
-		if( StringUtils.isNotEmpty( stauts ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.processStatus), stauts));
-		}
-		return em.createQuery( cq.where(p) ).getResultList();
-	}
-
-	public List<AttendanceStatisticRequireLog> getByNameKeyAndStatus(String statisticType, String key, String statisticYear, String statisticMonth, String statisticDate, String status) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticRequireLog.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticRequireLog> cq = cb.createQuery(AttendanceStatisticRequireLog.class);
-		Root<AttendanceStatisticRequireLog> root = cq.from(AttendanceStatisticRequireLog.class);
-		Predicate p = root.get(AttendanceStatisticRequireLog_.id).isNotNull();
-		if( StringUtils.isNotEmpty( statisticType ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticType), statisticType));
-		}
-		if( StringUtils.isNotEmpty( key ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticKey), key));
-		}
-		if( StringUtils.isNotEmpty( statisticYear ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticYear), statisticYear));
-		}
-		if( StringUtils.isNotEmpty( statisticMonth ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticMonth), statisticMonth));
-		}
-		if( StringUtils.isNotEmpty( statisticDate ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticDay), statisticDate));
-		}
-		if( StringUtils.isNotEmpty( status ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.processStatus), status));
-		}
-		return em.createQuery( cq.where(p) ).getResultList();
-	}
-
-	/**
-	 * 根据统计的类型以及处理状态获取所有符合条件的统计需求对象列表
-	 * 
-	 * @param statisticType:PERSON_PER_MONTH|UNIT_PER_MONTH|TOPUNIT_PER_MONTH|UNIT_PER_DAY|TOPUNIT_PER_DAY
-	 * @param processStatus:WAITING|PROCESSING|COMPLETE|ERROR
-	 * @return
-	 * @throws Exception
-	 */
-	public List<AttendanceStatisticRequireLog> listByStatisticTypeAndStatus( String statisticType, String processStatus) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticRequireLog.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticRequireLog> cq = cb.createQuery(AttendanceStatisticRequireLog.class);
-		Root<AttendanceStatisticRequireLog> root = cq.from(AttendanceStatisticRequireLog.class);
-		Predicate p = root.get(AttendanceStatisticRequireLog_.id).isNotNull();
-		if( StringUtils.isNotEmpty( statisticType ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.statisticType), statisticType));
-		}
-		if( StringUtils.isNotEmpty( processStatus ) ){
-			p = cb.and(p, cb.equal(root.get(AttendanceStatisticRequireLog_.processStatus), processStatus));
-		}
-		return em.createQuery( cq.where(p) ).getResultList();
-	}
-}

+ 0 - 73
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceStatisticalCycleFactory.java

@@ -1,73 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.attendance.entity.AttendanceStatisticalCycle_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceStatisticalCycleFactory extends AbstractFactory {
-	
-	public AttendanceStatisticalCycleFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceStatisticalCycle信息对象")
-	public AttendanceStatisticalCycle get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceStatisticalCycle.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的AttendanceStatisticalCycle信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceStatisticalCycle> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticalCycle.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticalCycle> cq = cb.createQuery( AttendanceStatisticalCycle.class );
-		Root<AttendanceStatisticalCycle> root = cq.from( AttendanceStatisticalCycle.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceStatisticalCycle信息列表")
-	public List<AttendanceStatisticalCycle> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceStatisticalCycle>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticalCycle.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceStatisticalCycle> cq = cb.createQuery(AttendanceStatisticalCycle.class);
-		Root<AttendanceStatisticalCycle> root = cq.from(AttendanceStatisticalCycle.class);
-		Predicate p = root.get(AttendanceStatisticalCycle_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据参数列示AttendanceStatisticalCycle信息列表")
-	public List<String> listByParameter( String topUnitName, String organizatinName, String cycleYear, String cycleMonth ) throws Exception{
-		EntityManager em = this.entityManagerContainer().get(AttendanceStatisticalCycle.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceStatisticalCycle> root = cq.from(AttendanceStatisticalCycle.class);
-		Predicate p = cb.equal( root.get( AttendanceStatisticalCycle_.cycleYear), cycleYear);		
-		if( topUnitName != null ){ 
-			 p = cb.and( p, cb.equal( root.get( AttendanceStatisticalCycle_.topUnitName), topUnitName));
-		}
-		if( organizatinName != null ){ 
-			 p = cb.and( p, cb.equal( root.get( AttendanceStatisticalCycle_.unitName), organizatinName));
-		}
-		if( cycleMonth != null ){ 
-			 p = cb.and( p, cb.equal( root.get( AttendanceStatisticalCycle_.cycleMonth), cycleMonth));
-		}
-		cq.select(root.get(AttendanceStatisticalCycle_.id));
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-}

+ 0 - 217
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceWorkDayConfigFactory.java

@@ -1,217 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.common.date.DateOperation;
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceWorkDayConfig;
-import com.x.attendance.entity.AttendanceWorkDayConfig_;
-import com.x.base.core.project.exception.ExceptionWhen;
-
-/**
- * 系统配置信息表基础功能服务类
- */
-public class AttendanceWorkDayConfigFactory extends AbstractFactory {
-
-	private DateOperation dateOperation = new DateOperation();
-	
-	public AttendanceWorkDayConfigFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceWorkDayConfig信息对象")
-	public AttendanceWorkDayConfig get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceWorkDayConfig.class, ExceptionWhen.none);
-	}
-	
-//	@MethodDescribe("列示全部的AttendanceWorkDayConfig信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceWorkDayConfig> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkDayConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceWorkDayConfig> cq = cb.createQuery(AttendanceWorkDayConfig.class);
-		Root<AttendanceWorkDayConfig> root = cq.from( AttendanceWorkDayConfig.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceWorkDayConfig信息列表")
-	public List<AttendanceWorkDayConfig> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceWorkDayConfig>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkDayConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceWorkDayConfig> cq = cb.createQuery(AttendanceWorkDayConfig.class);
-		Root<AttendanceWorkDayConfig> root = cq.from(AttendanceWorkDayConfig.class);
-		Predicate p = root.get(AttendanceWorkDayConfig_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据年份月份列示全部的AttendanceWorkDayConfig信息列表")
-	public List<String> listByYearAndMonth( String year, String month ) throws Exception {
-		if( year == null ){
-			return null;
-		}
-		if( "0".equals(month) || "00".equals(month) || "(0)".equals(month)){
-			month = null;
-		}
-		
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkDayConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceWorkDayConfig> root = cq.from( AttendanceWorkDayConfig.class);
-		cq.select(root.get(AttendanceWorkDayConfig_.id));
-		
-		Predicate p = cb.equal( root.get(AttendanceWorkDayConfig_.configYear), year);
-		if( month != null ){
-			p = cb.and( p, cb.equal( root.get(AttendanceWorkDayConfig_.configMonth), month));
-		}
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据年份和节假日名称列示全部的AttendanceWorkDayConfig信息列表")
-	public List<String> listByYearAndName( String year, String configName ) throws Exception {
-		if( year == null ){
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkDayConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceWorkDayConfig> root = cq.from( AttendanceWorkDayConfig.class);
-		cq.select(root.get(AttendanceWorkDayConfig_.id));
-		
-		Predicate p = cb.equal( root.get(AttendanceWorkDayConfig_.configYear), year);
-		if( configName != null ){
-			p = cb.and( p, cb.equal( root.get(AttendanceWorkDayConfig_.configName), configName));
-		}
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-	
-	//@MethodDescribe("根据节假日名称列示全部的AttendanceWorkDayConfig信息列表")
-	public List<String> listByName( String configName ) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkDayConfig.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<AttendanceWorkDayConfig> root = cq.from( AttendanceWorkDayConfig.class);
-		cq.select(root.get(AttendanceWorkDayConfig_.id));
-		
-		Predicate p = cb.equal( root.get(AttendanceWorkDayConfig_.configName), configName);
-		
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	//@MethodDescribe("根据节假日配置计算一个月的应出勤天数")
-	public int getWorkDaysCountForMonth( String s_year, String _month, List<AttendanceWorkDayConfig> workDayConfigList ) throws Exception {
-		/**
-		 * 1、计算当月的总天数
-		 * 2、遍历每天的日期
-		 *    1)判断是否周末
-		 *    2)判断是否调工作日
-		 *    3)判断是否节日
-		 */
-		int workDaysCountForMonth = 0;
-		//1、计算当月的总天数
-		int daysCountForMonth = dateOperation.getDaysForMonth( s_year + "-" + _month + "-01" );
-		workDaysCountForMonth = daysCountForMonth; //先假设每天都是工作日
-		//2、遍历每天的日期
-		String dateString = null;
-		boolean isHoliday = true;
-		for( int i = 1; i<= daysCountForMonth ; i++ ){
-			isHoliday = true;
-			dateString = s_year + "-" + _month + "-" + (i<10?"0"+i:i);
-			//判断当天是否周末
-			if( !dateOperation.isWeekend( dateOperation.getDateFromString( dateString )) ){
-				//如果不是周末
-				if( workDayConfigList != null && workDayConfigList.size() > 0 ){
-					//遍历所有的节假日配置进行判断,是否法定节假日
-					for( AttendanceWorkDayConfig workDayConfig : workDayConfigList ){
-						if( workDayConfig.getConfigDate().trim().equals( dateString ) && "Holiday".equalsIgnoreCase( workDayConfig.getConfigType() )
-						){
-							workDaysCountForMonth--;//当天不是工作日,当月出勤日减一天。
-							break;
-						}
-					}
-				}
-			}else{
-				//如果是周末
-				if( workDayConfigList != null && workDayConfigList.size() > 0 ){
-					//遍历所有的节假日配置进行判断,是否调休工作日
-					for( AttendanceWorkDayConfig workDayConfig : workDayConfigList ){
-						if( workDayConfig.getConfigDate().trim().equals( dateString ) && "Workday".equalsIgnoreCase( workDayConfig.getConfigType() )
-						){
-							isHoliday = false; //是配置的调休工作日
-							break;
-						}
-					}
-				}
-				if( isHoliday ){
-					//如果不是配置的调休工作日,则当天不是工作日,当月出勤日减一天。
-					workDaysCountForMonth--;
-				}
-			}
-		}
-		return workDaysCountForMonth;
-	}
-	
-	//@MethodDescribe("根据节假日配置计算一个周期内的应出勤天数")
-	public Integer getWorkDaysCountForMonth( Date startDate, Date endDate, List<AttendanceWorkDayConfig> workDayConfigList ) throws Exception {
-		/**
-		 * 1、计算当月的总天数
-		 * 2、遍历每天的日期
-		 *    1)判断是否周末
-		 *    2)判断是否调工作日
-		 *    3)判断是否节日
-		 */
-		boolean isHoliday = true;
-		int workDaysCountForMonth = 0;
-		if( endDate.getTime() > new Date().getTime()){
-			endDate = new Date();
-		}
-		List<String> dateStringList = dateOperation.listDateStringBetweenDate(startDate, endDate);
-		if( dateStringList != null && dateStringList.size() > 0 ){
-			workDaysCountForMonth = dateStringList.size();
-			for( String dateString : dateStringList){
-				//判断当天是否周末
-				if( !dateOperation.isWeekend( dateOperation.getDateFromString( dateString )) ){
-					//如果不是周末
-					if( workDayConfigList != null && workDayConfigList.size() > 0 ){
-						//遍历所有的节假日配置进行判断,是否法定节假日
-						for( AttendanceWorkDayConfig workDayConfig : workDayConfigList ){
-							if( workDayConfig.getConfigDate().trim().equals( dateString ) && "Holiday".equalsIgnoreCase( workDayConfig.getConfigType() )
-							){
-								workDaysCountForMonth--;//当天不是工作日,当月出勤日减一天。
-								break;
-							}
-						}
-					}
-				}else{
-					//如果是周末
-					if( workDayConfigList != null && workDayConfigList.size() > 0 ){
-						//遍历所有的节假日配置进行判断,是否调休工作日
-						for( AttendanceWorkDayConfig workDayConfig : workDayConfigList ){
-							if( workDayConfig.getConfigDate().trim().equals( dateString ) && "Workday".equalsIgnoreCase( workDayConfig.getConfigType() )
-							){
-								isHoliday = false; //是配置的调休工作日
-								break;
-							}
-						}
-					}
-					if( isHoliday ){
-						//如果不是配置的调休工作日,则当天不是工作日,当月出勤日减一天。
-						workDaysCountForMonth--;
-					}
-				}
-			}
-		}
-		return workDaysCountForMonth;
-	}
-}

+ 0 - 53
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/AttendanceWorkPlaceFactory.java

@@ -1,53 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceWorkPlace;
-import com.x.attendance.entity.AttendanceWorkPlace_;
-import com.x.base.core.project.exception.ExceptionWhen;
-/**
- * 工作场所信息服务类
- */
-public class AttendanceWorkPlaceFactory extends AbstractFactory {
-	
-	public AttendanceWorkPlaceFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的AttendanceWorkPlace应用信息对象")
-	public AttendanceWorkPlace get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, AttendanceWorkPlace.class, ExceptionWhen.none);
-	}
-	
-//	@MethodDescribe("列示全部的AttendanceWorkPlace应用信息列表")
-	@SuppressWarnings("unused")
-	public List<AttendanceWorkPlace> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkPlace.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceWorkPlace> cq = cb.createQuery(AttendanceWorkPlace.class);
-		Root<AttendanceWorkPlace> root = cq.from( AttendanceWorkPlace.class);
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的AttendanceWorkPlace应用信息列表")
-	public List<AttendanceWorkPlace> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<AttendanceWorkPlace>();
-		}
-		EntityManager em = this.entityManagerContainer().get(AttendanceWorkPlace.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<AttendanceWorkPlace> cq = cb.createQuery(AttendanceWorkPlace.class);
-		Root<AttendanceWorkPlace> root = cq.from(AttendanceWorkPlace.class);
-		Predicate p = root.get(AttendanceWorkPlace_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}	
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/CycleMonthEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class CycleMonthEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	CycleMonthEmptyException() {
-		super("统计月份不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/CycleYearEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class CycleYearEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	CycleYearEmptyException() {
-		super("统计年份不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/EmployeeNamesEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class EmployeeNamesEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	EmployeeNamesEmptyException() {
-		super("员工姓名列表不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/RecordDateEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class RecordDateEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	RecordDateEmptyException() {
-		super("打卡日期不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticDateEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class StatisticDateEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	StatisticDateEmptyException() {
-		super("统计日期不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticMonthEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class StatisticMonthEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	StatisticMonthEmptyException() {
-		super("统计月份不能为空.");
-	}
-}

+ 0 - 652
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticPersonForMonthFactory.java

@@ -1,652 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendancestatistic.WrapInFilterStatisticPersonForMonth;
-import com.x.attendance.entity.StatisticPersonForMonth;
-import com.x.attendance.entity.StatisticPersonForMonth_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class StatisticPersonForMonthFactory extends AbstractFactory {
-
-	private static  Logger logger = LoggerFactory.getLogger( StatisticPersonForMonthFactory.class );
-	
-	public StatisticPersonForMonthFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的StatisticPersonForMonth信息对象")
-	public StatisticPersonForMonth get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, StatisticPersonForMonth.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的StatisticPersonForMonth信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);
-		cq.select(root.get(StatisticPersonForMonth_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的StatisticPersonForMonth信息列表")
-	public List<StatisticPersonForMonth> list( List<String> ids ) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<StatisticPersonForMonth>();
-		}
-		EntityManager em = this.entityManagerContainer().get(StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<StatisticPersonForMonth> cq = cb.createQuery(StatisticPersonForMonth.class);
-		Root<StatisticPersonForMonth> root = cq.from(StatisticPersonForMonth.class);
-		Predicate p = root.get(StatisticPersonForMonth_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<String> listByUserYearAndMonth( String employeeName, String sYear, String sMonth ) throws Exception {
-		if( employeeName == null || employeeName.isEmpty() ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}
-		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery( String.class );
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class );
-		Predicate p = cb.equal( root.get( StatisticPersonForMonth_.employeeName ), employeeName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticPersonForMonth_.statisticYear ), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticPersonForMonth_.statisticMonth ), sMonth));
-		}
-		cq.select(root.get( StatisticPersonForMonth_.id ) );
-		return em.createQuery( cq.where( p ) ).setMaxResults( 60 ).getResultList();
-	}
-
-	public List<String> listByUnitYearAndMonth( List<String> unitNameList, String year, String month ) throws Exception{
-		
-		if( unitNameList == null || unitNameList.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}
-		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class );
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class );
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class );
-		Predicate p = root.get( StatisticPersonForMonth_.unitName ).in(unitNameList);
-		if( year == null || year.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticPersonForMonth_.statisticYear ), year ) );
-		}
-		if( month == null || month.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticPersonForMonth_.statisticMonth ), month ));
-		}
-		cq.select(root.get( StatisticPersonForMonth_.id ));
-		return em.createQuery( cq.where( p ) ).setMaxResults( 60 ).getResultList();
-	}
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticPersonForMonth> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticPersonForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticPersonForMonth.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-				
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );		
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticPersonForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticPersonForMonth> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticPersonForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticPersonForMonth.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticPersonForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(20).getResultList();
-	}
-	
-	/**
-	 * 查询符合的文档信息总数
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilterStatisticPersonForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+StatisticPersonForMonth.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticPersonForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-	
-	public StatisticPersonForMonth get(String employeeName, String cycleYear, String cycleMonth) throws Exception {
-		if( employeeName == null ){
-			logger.error( new EmployeeNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<StatisticPersonForMonth> cq = cb.createQuery(StatisticPersonForMonth.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);	
-		Predicate p = cb.equal( root.get( StatisticPersonForMonth_.employeeName ), employeeName);		
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticPersonForMonth_.statisticYear), cycleYear));
-		}
-		
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticPersonForMonth_.statisticMonth), cycleMonth));
-		}
-		try{
-			return em.createQuery(cq.where(p)).getSingleResult();
-		}catch(NoResultException e){
-			return null;
-		}
-	}
-	
-	/**
-	 * 根据组织名称,年份月份,统计员工数量
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long countEmployeeCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		//查询总数
-		cq.select( cb.count( root ) );	
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织,统计年月,计算组织内所有员工迟到数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLateCountByUnitYearAndMonth(List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.lateTimes ) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工出勤天数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAttendanceDayCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.onDutyDayCount) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工异常打卡数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumAbNormalDutyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.abNormalDutyCount) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工工时不足次数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLackOfTimeCountByUnitYearAndMonth(List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.lackOfTimeCount) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工早退次数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLeaveEarlyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.leaveEarlyTimes ) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工签退次数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumOffDutyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.offDutyTimes ) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工签到退次数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumOnDutyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.onDutyTimes ) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工请假天数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumOnSelfHolidayCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.onSelfHolidayCount) ) );		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织列表,统计年月,计算组织内所有员工缺勤天数总和
-	 * @param unitName
-	 * @param sYear
-	 * @param sMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAbsenceDayCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( StatisticPersonForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticPersonForMonth> root = cq.from( StatisticPersonForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticPersonForMonth_.absenceDayCount) ) );	
-		
-		Predicate p = root.get(StatisticPersonForMonth_.unitName).in( unitName );
-		
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticYear), sYear));
-		}
-		
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticPersonForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-}

+ 0 - 281
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticTopUnitForDayFactory.java

@@ -1,281 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendancestatistic.WrapInFilterStatisticTopUnitForDay;
-import com.x.attendance.entity.StatisticTopUnitForDay;
-import com.x.attendance.entity.StatisticTopUnitForDay_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class StatisticTopUnitForDayFactory extends AbstractFactory {
-
-	private static  Logger logger = LoggerFactory.getLogger( StatisticTopUnitForDayFactory.class );
-	
-	public StatisticTopUnitForDayFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的StatisticTopUnitForDay应用信息对象")
-	public StatisticTopUnitForDay get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, StatisticTopUnitForDay.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的StatisticTopUnitForDay应用信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(StatisticTopUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticTopUnitForDay> root = cq.from( StatisticTopUnitForDay.class);
-		cq.select(root.get(StatisticTopUnitForDay_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的StatisticTopUnitForDay应用信息列表")
-	public List<StatisticTopUnitForDay> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<StatisticTopUnitForDay>();
-		}
-		EntityManager em = this.entityManagerContainer().get(StatisticTopUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<StatisticTopUnitForDay> cq = cb.createQuery(StatisticTopUnitForDay.class);
-		Root<StatisticTopUnitForDay> root = cq.from(StatisticTopUnitForDay.class);
-		Predicate p = root.get(StatisticTopUnitForDay_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<String> listByTopUnitRecordDateString(String topUnitName, String sDate) throws Exception{
-		if( topUnitName == null || topUnitName.isEmpty() ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}
-		
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root< StatisticTopUnitForDay> root = cq.from( StatisticTopUnitForDay.class);
-		Predicate p = cb.equal( root.get( StatisticTopUnitForDay_.topUnitName), topUnitName);
-		if( sDate == null || sDate.isEmpty() ){
-			logger.error( new StatisticDateEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticTopUnitForDay_.statisticDate), sDate));
-		}
-		cq.select(root.get( StatisticTopUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-
-	public List<String> listByNameYearAndMonth(String topUnitName, String year, String month) throws Exception {
-		if( topUnitName == null || topUnitName.isEmpty() ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root< StatisticTopUnitForDay> root = cq.from( StatisticTopUnitForDay.class);
-		Predicate p = cb.equal( root.get( StatisticTopUnitForDay_.topUnitName), topUnitName);
-		if( year == null || year.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticTopUnitForDay_.statisticYear), year));
-		}
-		if( month == null || month.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get( StatisticTopUnitForDay_.statisticMonth), month));
-		}
-		cq.select(root.get( StatisticTopUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticTopUnitForDay> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticTopUnitForDay wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForDay.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticTopUnitForDay.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-				
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticTopUnitForDay.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticTopUnitForDay> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticTopUnitForDay wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForDay.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticTopUnitForDay.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticTopUnitForDay.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(20).getResultList();
-	}
-	
-	/**
-	 * 查询符合的文档信息总数
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilterStatisticTopUnitForDay wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForDay.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+StatisticTopUnitForDay.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticTopUnitForDay.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-}

+ 0 - 263
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticTopUnitForMonthFactory.java

@@ -1,263 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendancestatistic.WrapInFilterStatisticTopUnitForMonth;
-import com.x.attendance.entity.StatisticTopUnitForMonth;
-import com.x.attendance.entity.StatisticTopUnitForMonth_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class StatisticTopUnitForMonthFactory extends AbstractFactory {
-
-	private static  Logger logger = LoggerFactory.getLogger( StatisticTopUnitForMonthFactory.class );
-	
-	public StatisticTopUnitForMonthFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的StatisticTopUnitForMonth信息对象")
-	public StatisticTopUnitForMonth get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, StatisticTopUnitForMonth.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的StatisticTopUnitForMonth信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(StatisticTopUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticTopUnitForMonth> root = cq.from( StatisticTopUnitForMonth.class);
-		cq.select(root.get(StatisticTopUnitForMonth_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的StatisticTopUnitForMonth信息列表")
-	public List<StatisticTopUnitForMonth> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<StatisticTopUnitForMonth>();
-		}
-		EntityManager em = this.entityManagerContainer().get(StatisticTopUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<StatisticTopUnitForMonth> cq = cb.createQuery(StatisticTopUnitForMonth.class);
-		Root<StatisticTopUnitForMonth> root = cq.from(StatisticTopUnitForMonth.class);
-		Predicate p = root.get(StatisticTopUnitForMonth_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<String> listByTopUnitYearAndMonth(String topUnitName, String sYear, String sMonth) throws Exception {
-		if( topUnitName == null || topUnitName.isEmpty() ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticTopUnitForMonth> root = cq.from( StatisticTopUnitForMonth.class);
-		Predicate p = cb.equal( root.get(StatisticTopUnitForMonth_.topUnitName), topUnitName);
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticTopUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticTopUnitForMonth_.statisticMonth), sMonth));
-		}
-		cq.select(root.get(StatisticTopUnitForMonth_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(60).getResultList();
-	}
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticTopUnitForMonth> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticTopUnitForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForMonth.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticTopUnitForMonth.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-				
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticTopUnitForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticTopUnitForMonth> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticTopUnitForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForMonth.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticTopUnitForMonth.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticTopUnitForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(20).getResultList();
-	}
-	
-	/**
-	 * 查询符合的文档信息总数
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilterStatisticTopUnitForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticTopUnitForMonth.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+StatisticTopUnitForMonth.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticTopUnitForMonth.class );
-		
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-
-}

+ 0 - 353
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticUnitForDayFactory.java

@@ -1,353 +0,0 @@
-
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendancestatistic.WrapInFilterStatisticUnitForDay;
-import com.x.attendance.entity.StatisticUnitForDay;
-import com.x.attendance.entity.StatisticUnitForDay_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class StatisticUnitForDayFactory extends AbstractFactory {
-
-	private static  Logger logger = LoggerFactory.getLogger(StatisticUnitForDayFactory.class);
-
-	public StatisticUnitForDayFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	// @MethodDescribe("获取指定Id的StatisticUnitForDay信息对象")
-	public StatisticUnitForDay get(String id) throws Exception {
-		return this.entityManagerContainer().find(id, StatisticUnitForDay.class, ExceptionWhen.none);
-	}
-
-	// @MethodDescribe("列示全部的StatisticUnitForDay信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		cq.select(root.get(StatisticUnitForDay_.id));
-		return em.createQuery(cq).getResultList();
-	}
-
-	// @MethodDescribe("列示指定Id的StatisticUnitForDay信息列表")
-	public List<StatisticUnitForDay> list(List<String> ids) throws Exception {
-		if (ids == null || ids.size() == 0) {
-			return new ArrayList<StatisticUnitForDay>();
-		}
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<StatisticUnitForDay> cq = cb.createQuery(StatisticUnitForDay.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		Predicate p = root.get(StatisticUnitForDay_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	public List<String> listByUnitRecordDateString(List<String> unitName, String sDate) throws Exception {
-		if (unitName == null || unitName.size() == 0) {
-			logger.error(new UnitNamesEmptyException());
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		Predicate p = root.get(StatisticUnitForDay_.unitName).in(unitName);
-		if (sDate == null || sDate.isEmpty()) {
-			logger.error(new StatisticDateEmptyException());
-		} else {
-			p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticDate), sDate));
-		}
-		cq.select(root.get(StatisticUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-
-	public List<String> listByUnitRecordDateString(String unitName, String sDate) throws Exception {
-		if (unitName == null || unitName.isEmpty()) {
-			logger.error(new UnitNamesEmptyException());
-			return null;
-		}
-
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		Predicate p = cb.equal(root.get(StatisticUnitForDay_.unitName), unitName);
-		if (sDate == null || sDate.isEmpty()) {
-			logger.error(new StatisticDateEmptyException());
-		} else {
-			p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticDate), sDate));
-		}
-		cq.select(root.get(StatisticUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-
-	public List<String> listByUnitDayYearAndMonth(List<String> name, String year, String month) throws Exception {
-		if (name == null || name.size() == 0) {
-			logger.error(new UnitNamesEmptyException());
-			return null;
-		}
-
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		Predicate p = root.get(StatisticUnitForDay_.unitName).in(name);
-		if (year == null || year.isEmpty()) {
-			logger.error(new StatisticYearEmptyException());
-		} else {
-			p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticYear), year));
-		}
-		if (month == null || month.isEmpty()) {
-			logger.error(new StatisticMonthEmptyException());
-		} else {
-			p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticMonth), month));
-		}
-		cq.select(root.get(StatisticUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-
-	public List<String> listByUnitDayDate(List<String> name, String date) throws Exception {
-		if (name == null || name.size() == 0) {
-			logger.error(new UnitNamesEmptyException());
-			return null;
-		}
-
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		Predicate p = root.get(StatisticUnitForDay_.unitName).in(name);
-		if (date == null || date.isEmpty()) {
-			logger.error(new StatisticDateEmptyException());
-		} else {
-			p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticDate), date));
-		}
-		cq.select(root.get(StatisticUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-
-	public List<String> listByUnitDayDate(String name, String date) throws Exception {
-		if (name == null || name.isEmpty()) {
-			logger.error(new UnitNamesEmptyException());
-			return null;
-		}
-
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
-		Predicate p = cb.equal(root.get(StatisticUnitForDay_.unitName), name);
-		if (date == null || date.isEmpty()) {
-			logger.error(new StatisticDateEmptyException());
-		} else {
-			p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticDate), date));
-		}
-		cq.select(root.get(StatisticUnitForDay_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
-	}
-
-	/**
-	 * 查询下一页的信息数据
-	 * 
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticUnitForDay> listIdsNextWithFilter(String id, Integer count, Object sequence,
-			WrapInFilterStatisticUnitForDay wrapIn) throws Exception {
-		// 先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		String order = wrapIn.getOrder();// 排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-
-		if (order == null || order.isEmpty()) {
-			order = "DESC";
-		}
-
-		Integer index = 1;
-		sql_stringBuffer.append("SELECT o FROM " + StatisticUnitForDay.class.getCanonicalName() + " o where 1=1");
-
-		if ((null != sequence)) {
-			sql_stringBuffer.append(
-					" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add(wrapIn.getEmployeeName());
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add(wrapIn.getUnitName());
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add(wrapIn.getTopUnitName());
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear()) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add(wrapIn.getStatisticYear());
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add(wrapIn.getStatisticMonth());
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order);
-
-		Query query = em.createQuery(sql_stringBuffer.toString(), StatisticUnitForDay.class);
-		// 为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}
-
-	/**
-	 * 查询上一页的文档信息数据
-	 * 
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticUnitForDay> listIdsPrevWithFilter(String id, Integer count, Object sequence,
-			WrapInFilterStatisticUnitForDay wrapIn) throws Exception {
-		// 先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		String order = wrapIn.getOrder();// 排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-
-		if (order == null || order.isEmpty()) {
-			order = "DESC";
-		}
-
-		sql_stringBuffer.append("SELECT o FROM " + StatisticUnitForDay.class.getCanonicalName() + " o where 1=1");
-		if ((null != sequence)) {
-			sql_stringBuffer.append(
-					" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add(wrapIn.getEmployeeName());
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add(wrapIn.getUnitName());
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add(wrapIn.getTopUnitName());
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear()) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add(wrapIn.getStatisticYear());
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add(wrapIn.getStatisticMonth());
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order);
-
-		Query query = em.createQuery(sql_stringBuffer.toString(), StatisticUnitForDay.class);
-		// 为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-
-		return query.setMaxResults(20).getResultList();
-	}
-
-	/**
-	 * 查询符合的文档信息总数
-	 * 
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter(WrapInFilterStatisticUnitForDay wrapIn) throws Exception {
-		// 先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-
-		sql_stringBuffer
-				.append("SELECT count(o.id) FROM " + StatisticUnitForDay.class.getCanonicalName() + " o where 1=1");
-
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add(wrapIn.getEmployeeName());
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add(wrapIn.getUnitName());
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add(wrapIn.getTopUnitName());
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear()) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add(wrapIn.getStatisticYear());
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add(wrapIn.getStatisticMonth());
-			index++;
-		}
-
-		Query query = em.createQuery(sql_stringBuffer.toString(), StatisticUnitForDay.class);
-		// 为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return (Long) query.getSingleResult();
-	}
-}

+ 0 - 872
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticUnitForMonthFactory.java

@@ -1,872 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.attendance.assemble.control.AbstractFactory;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.jaxrs.attendancestatistic.WrapInFilterStatisticUnitForMonth;
-import com.x.attendance.entity.StatisticUnitForMonth;
-import com.x.attendance.entity.StatisticUnitForMonth_;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class StatisticUnitForMonthFactory extends AbstractFactory {
-
-	private static  Logger logger = LoggerFactory.getLogger( StatisticUnitForMonthFactory.class );
-	
-	public StatisticUnitForMonthFactory(Business business) throws Exception {
-		super(business);
-	}
-
-	//@MethodDescribe("获取指定Id的StatisticUnitForMonth信息对象")
-	public StatisticUnitForMonth get( String id ) throws Exception {
-		return this.entityManagerContainer().find(id, StatisticUnitForMonth.class, ExceptionWhen.none);
-	}
-	
-	//@MethodDescribe("列示全部的StatisticUnitForMonth信息列表")
-	public List<String> listAll() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);
-		cq.select(root.get(StatisticUnitForMonth_.id));
-		return em.createQuery(cq).getResultList();
-	}
-	
-	//@MethodDescribe("列示指定Id的StatisticUnitForMonth信息列表")
-	public List<StatisticUnitForMonth> list(List<String> ids) throws Exception {
-		if( ids == null || ids.size() == 0 ){
-			return new ArrayList<StatisticUnitForMonth>();
-		}
-		EntityManager em = this.entityManagerContainer().get(StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<StatisticUnitForMonth> cq = cb.createQuery(StatisticUnitForMonth.class);
-		Root<StatisticUnitForMonth> root = cq.from(StatisticUnitForMonth.class);
-		Predicate p = root.get(StatisticUnitForMonth_.id).in(ids);
-		return em.createQuery(cq.where(p)).getResultList();
-	}
-
-	
-	
-	
-	public List<String> listByUnitYearAndMonth( String unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.isEmpty() ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);
-		Predicate p = cb.equal( root.get(StatisticUnitForMonth_.unitName), unitName);
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		cq.select(root.get(StatisticUnitForMonth_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(60).getResultList();
-	}
-	
-	public List<String> listByUnitYearAndMonth( List<String> unitNames, String sYear, String sMonth) throws Exception{
-		if( unitNames == null || unitNames.size() == 0  ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in(unitNames);
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		cq.select(root.get(StatisticUnitForMonth_.id));
-		return em.createQuery(cq.where(p)).setMaxResults(60).getResultList();
-	}
-	
-	/**
-	 * 查询下一页的信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticUnitForMonth> listIdsNextWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticUnitForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		Integer index = 1;
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticUnitForMonth.class.getCanonicalName()+" o where 1=1" );
-
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? "<" : ">") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-				
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );		
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticUnitForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		return query.setMaxResults(count).getResultList();
-	}	
-	
-	/**
-	 * 查询上一页的文档信息数据
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	@SuppressWarnings("unchecked")
-	public List<StatisticUnitForMonth> listIdsPrevWithFilter( String id, Integer count, Object sequence, WrapInFilterStatisticUnitForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class );
-		String order = wrapIn.getOrder();//排序方式
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		if( order == null || order.isEmpty() ){
-			order = "DESC";
-		}
-		
-		sql_stringBuffer.append( "SELECT o FROM "+StatisticUnitForMonth.class.getCanonicalName()+" o where 1=1" );
-		if ((null != sequence) ) {
-			sql_stringBuffer.append(" and o.sequence " + (StringUtils.equalsIgnoreCase(order, "DESC") ? ">" : "<") + (" ?" + (index)));
-			vs.add(sequence);
-			index++;
-		}
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		sql_stringBuffer.append(" order by o.sequence " + order );
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticUnitForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}
-		
-		return query.setMaxResults(20).getResultList();
-	}
-	
-	/**
-	 * 查询符合的文档信息总数
-	 * @param id
-	 * @param count
-	 * @param sequence
-	 * @param wrapIn
-	 * @return
-	 * @throws Exception
-	 */
-	public long getCountWithFilter( WrapInFilterStatisticUnitForMonth wrapIn ) throws Exception {
-		//先获取上一页最后一条的sequence值,如果有值的话,以此sequence值作为依据取后续的count条数据
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class );
-		List<Object> vs = new ArrayList<>();
-		StringBuffer sql_stringBuffer = new StringBuffer();
-		Integer index = 1;
-		
-		sql_stringBuffer.append( "SELECT count(o.id) FROM "+StatisticUnitForMonth.class.getCanonicalName()+" o where 1=1" );
-		
-		if ((null != wrapIn.getEmployeeName()) && wrapIn.getEmployeeName().size() > 0) {
-			sql_stringBuffer.append(" and o.employeeName in ?" + (index));
-			vs.add( wrapIn.getEmployeeName() );
-			index++;
-		}
-		if ((null != wrapIn.getUnitName()) && wrapIn.getUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.unitName in ?" + (index));
-			vs.add( wrapIn.getUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getTopUnitName()) && wrapIn.getTopUnitName().size() > 0 ) {
-			sql_stringBuffer.append(" and o.topUnitName in ?" + (index));
-			vs.add( wrapIn.getTopUnitName() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticYear() ) && (!wrapIn.getStatisticYear().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticYear = ?" + (index));
-			vs.add( wrapIn.getStatisticYear() );
-			index++;
-		}
-		if ((null != wrapIn.getStatisticMonth()) && (!wrapIn.getStatisticMonth().isEmpty())) {
-			sql_stringBuffer.append(" and o.statisticMonth = ?" + (index));
-			vs.add( wrapIn.getStatisticMonth() );
-			index++;
-		}
-		
-		Query query = em.createQuery( sql_stringBuffer.toString(), StatisticUnitForMonth.class );
-		//为查询设置所有的参数值
-		for (int i = 0; i < vs.size(); i++) {
-			query.setParameter(i + 1, vs.get(i));
-		}		
-		return (Long) query.getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员迟到次数总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLateCountByUnitYearAndMonth(List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.lateCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员异常打卡次数总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumAbNormalDutyCountByUnitYearAndMonth(List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.abNormalDutyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员工时不足人次总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLackOfTimeCountByUnitYearAndMonth(List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.lackOfTimeCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员早退人次总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLeaveEarlyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.leaveEarlyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员签退人次总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumOffDutyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.offDutyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员签到人次总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumOnDutyCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.onDutyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员出勤人天总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAttendanceDayCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.onDutyEmployeeCount ) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员请假人次总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumOnSelfHolidayCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.onSelfHolidayCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据组织名称,统计年月,统计顶层组织所有人员缺勤人次总和
-	 * @param unitName
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAbsenceDayCountByUnitYearAndMonth( List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.absenceDayCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );		
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员数量
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLateCountByTopUnitNamesYearAndMonth(List<String> unitName, String sYear, String sMonth) throws Exception{
-		if( unitName == null || unitName.size() == 0 ){
-			logger.error( new UnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.lateCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.unitName).in( unitName );
-		if( sYear == null || sYear.isEmpty() ){
-			logger.error( new StatisticYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), sYear));
-		}
-		if( sMonth == null || sMonth.isEmpty() ){
-			logger.error( new StatisticMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), sMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员出勤人天数总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAttendanceDayCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.onDutyEmployeeCount ) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员异常打卡次数总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumAbNormalDutyCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}		
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.abNormalDutyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员工时不足次数总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLackOfTimeCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}	
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.lackOfTimeCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员早退人次总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumLeaveEarlyCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}	
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.leaveEarlyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员签退人次总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumOffDutyCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}	
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.offDutyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员签到人次总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Long sumOnDutyCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}	
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Long> cq = cb.createQuery(Long.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.onDutyCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员请假人次总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumOnSelfHolidayCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}	
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.onSelfHolidayCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-	/**
-	 * 根据顶层组织名称,统计年月,统计顶层组织所有人员缺勤人天总和
-	 * @param topUnitNames
-	 * @param cycleYear
-	 * @param cycleMonth
-	 * @return
-	 * @throws Exception
-	 */
-	public Double sumAbsenceDayCountByTopUnitNamesYearAndMonth( List<String> topUnitNames, String cycleYear, String cycleMonth ) throws Exception{
-		if( topUnitNames == null || topUnitNames.size() == 0 ){
-			logger.error( new TopUnitNamesEmptyException() );
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get( StatisticUnitForMonth.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Double> cq = cb.createQuery(Double.class);
-		Root<StatisticUnitForMonth> root = cq.from( StatisticUnitForMonth.class);		
-		//查询总数
-		cq.select( cb.sum( root.get(StatisticUnitForMonth_.absenceDayCount) ) );		
-		Predicate p = root.get(StatisticUnitForMonth_.topUnitName).in( topUnitNames );
-		if( cycleYear == null || cycleYear.isEmpty() ){
-			logger.error( new CycleYearEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticYear), cycleYear));
-		}
-		if( cycleMonth == null || cycleMonth.isEmpty() ){
-			logger.error( new CycleMonthEmptyException() );
-		}else{
-			p = cb.and( p, cb.equal( root.get(StatisticUnitForMonth_.statisticMonth), cycleMonth));
-		}
-		return em.createQuery(cq.where(p)).getSingleResult();
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/StatisticYearEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class StatisticYearEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	StatisticYearEmptyException() {
-		super("统计年份不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/TopUnitNamesEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class TopUnitNamesEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	TopUnitNamesEmptyException() {
-		super("顶层组织名称列表不能为空.");
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/factory/UnitNamesEmptyException.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.factory;
-
-import com.x.base.core.project.exception.PromptException;
-
-class UnitNamesEmptyException extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	UnitNamesEmptyException() {
-		super("组织名称列表不能为空.");
-	}
-}

+ 0 - 10
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/AppealConfig.java

@@ -1,10 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs;
-
-public class AppealConfig {
-	public static final String APPEAL_AUDITTYPE_PERSON = "指定人";
-	public static final String APPEAL_AUDITTYPE_PERSONATTRIBUTE = "个人属性";
-	public static final String APPEAL_AUDITTYPE_REPORTLEADER = "汇报对象";
-	public static final String APPEAL_AUDITTYPE_UNITDUTY = "所属部门职务";
-	public static final String APPEAL_CHOOSEVALUE_AUDITTYPE = "指定人|个人属性|汇报对象|所属部门职务";
-	public static final String APPEAL_CHOOSEVALUE_CHECKTYPE = "无|指定人|个人属性|汇报对象|所属部门职务";
-}

+ 0 - 34
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/AttendanceJaxrsFilter.java

@@ -1,34 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-/**
- * web服务过滤器,将指定的URL定义为需要用户认证的服务,如果用户未登录,则无法访问该服务
- */
-@WebFilter(urlPatterns = {
-		"/jaxrs/workplace/*",
-		"/jaxrs/attendanceadmin/*",
-		"/jaxrs/attendancedetail/*",
-		"/jaxrs/attendancedetail/mobile/*",
-		"/jaxrs/attendancedetailbakup/*",
-		"/jaxrs/attendanceappealInfo/*",
-		"/jaxrs/attendanceimportfileinfo/*",
-		"/jaxrs/file/*",
-		"/jaxrs/attendanceschedulesetting/*",
-		"/jaxrs/attendancesetting/*",
-		"/jaxrs/attendanceworkdayconfig/*",
-		"/jaxrs/attendanceselfholiday/*",
-		"/jaxrs/fileimport/*",
-		"/jaxrs/statistic/*",
-		"/jaxrs/statisticshow/*",
-		"/jaxrs/attendancestatisticalcycle/*",
-		"/jaxrs/attendancestatisticrequirelog/*",
-		"/jaxrs/attendanceemployeeconfig/*",
-		"/jaxrs/uuid/*",
-		"/servlet/*"
-}, asyncSupported = true)
-public class AttendanceJaxrsFilter extends ManagerUserJaxrsFilter {
-	
-}

+ 0 - 15
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/AttendanceSimpleJaxrsFilter.java

@@ -1,15 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-/**
- * web服务过滤器,将指定的URL定义为需要用户认证的服务,如果用户未登录,则无法访问该服务
- */
-@WebFilter(urlPatterns = { 
-		"/jaxrs/selfholidaysimple/*"
-}, asyncSupported = true)
-public class AttendanceSimpleJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
-	
-}

+ 0 - 39
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/DateRecord.java

@@ -1,39 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs;
-
-import java.io.Serializable;
-
-import com.x.base.core.project.gson.GsonPropertyObject;
-
-public class DateRecord extends GsonPropertyObject implements Serializable{
-	private static final long serialVersionUID = 1L;
-	private String year;
-	private String month;
-	private String date;
-	public DateRecord() {
-		
-	}
-	public DateRecord(String recordYearString, String recordMonthString) {
-		this.year = recordYearString;
-		this.month = recordMonthString;
-	}
-	public String getYear() {
-		return year;
-	}
-	public void setYear(String year) {
-		this.year = year;
-	}
-	public String getMonth() {
-		return month;
-	}
-	public void setMonth(String month) {
-		this.month = month;
-	}
-	public String getDate() {
-		return date;
-	}
-	public void setDate(String date) {
-		this.date = date;
-	}
-	
-	
-}

+ 0 - 11
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/DingdingJaxrsFilter.java

@@ -1,11 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs;
-
-import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter;
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-import javax.servlet.annotation.WebFilter;
-
-
-@WebFilter(urlPatterns = "/jaxrs/dingding/*", asyncSupported = true)
-public class DingdingJaxrsFilter extends ManagerUserJaxrsFilter {
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/ExceptionAttendanceProcess.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionAttendanceProcess extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionAttendanceProcess( Throwable e, String message ) {
-		super("用户在进行考勤统计处理时发生异常!message:" + message, e );
-	}
-}

+ 0 - 158
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionExportAbnormalDetail.java

@@ -1,158 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import java.io.ByteArrayOutputStream;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.x.base.core.project.tools.ListTools;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoFile;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-/**
- * 导入的文件没有用到文件存储器,是直接放在数据库中的BLOB列
- */
-public class ActionExportAbnormalDetail extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger(ActionExportAbnormalDetail.class);
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String year, String month, Boolean stream ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		List<String> ids = null;
-		List<AttendanceDetail> detailList = null;
-		Workbook wb = null;
-		Wo wo = null;
-		String fileName = null;
-		String sheetName = null;
-		Boolean check = true;
-		
-		if( year == null || year.isEmpty() ){
-			year = dateOperation.getYear( new Date() );
-		}
-		
-		if( month == null || month.isEmpty() ){
-			month = dateOperation.getMonth( new Date() );
-		}
-		
-		if( check ) {
-			// 先获取需要导出的数据
-			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-				Business business = new Business(emc);
-				ids = business.getAttendanceDetailFactory().getDetailsWithAllAbnormalCase(year, month);
-				detailList = business.getAttendanceDetailFactory().list(ids);
-			} catch (Exception e) {
-				logger.info("系统在查询所有[" + year + "年" + month + "月]非正常打卡记录时发生异常。" );
-				e.printStackTrace();
-			}
-		}
-		
-		// 将结果组织成EXCEL		
-		if( check ) {
-			fileName = "" + year + "年" + month + "月非正常打卡记录.xls";
-			sheetName = year + "年" + month + "月";
-			wb = composeDetail( fileName, sheetName, detailList );
-		}
-		
-		if( check ) {
-			ByteArrayOutputStream bos = new ByteArrayOutputStream();
-			try {
-			    wb.write(bos);
-			    wo = new Wo(bos.toByteArray(), 
-						this.contentType(stream, fileName), 
-						this.contentDisposition(stream, fileName));
-			} finally {
-			    bos.close();
-			}
-		}		
-		result.setData(wo);
-		return result;
-	}
-
-	private Workbook composeDetail(String fileName, String sheetName, List<AttendanceDetail> detailList) {
-		AttendanceDetail attendanceDetail = null;
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		
-		Workbook wb = new HSSFWorkbook();
-		Row row = null;
-		if (ListTools.isNotEmpty(detailList) ) {
-			// 创建新的表格
-			Sheet sheet = wb.createSheet(sheetName);
-			
-			// 先创建表头
-			row = sheet.createRow(0);
-			row.createCell(0).setCellValue("顶层组织名称");
-			row.createCell(1).setCellValue("组织名称");
-			row.createCell(2).setCellValue("员工姓名");
-			row.createCell(3).setCellValue("打卡日期");
-			row.createCell(4).setCellValue("异常原因");
-			row.createCell(5).setCellValue("签到时间");
-			row.createCell(6).setCellValue("签退时间");
-			row.createCell(7).setCellValue("申诉原因");
-			row.createCell(8).setCellValue("申诉具体原因");
-			row.createCell(9).setCellValue("直接主管审批");
-
-			for (int i = 0; i < detailList.size(); i++) {
-				attendanceDetail = detailList.get(i);
-				row = sheet.createRow(i + 1);
-				row.createCell(0).setCellValue(attendanceDetail.getTopUnitName());
-				row.createCell(1).setCellValue(attendanceDetail.getUnitName());
-				row.createCell(2).setCellValue(attendanceDetail.getEmpName());
-				row.createCell(3).setCellValue(attendanceDetail.getRecordDateString());
-				if (attendanceDetail.getIsAbsent()) {
-					row.createCell(4).setCellValue("缺勤");
-				} else if (attendanceDetail.getIsLackOfTime()) {
-					row.createCell(4).setCellValue("工时不足");
-				} else if (attendanceDetail.getIsAbnormalDuty()) {
-					row.createCell(4).setCellValue("异常打卡");
-				} else if (attendanceDetail.getIsLate()) {
-					row.createCell(4).setCellValue("迟到");
-				} else {
-					row.createCell(4).setCellValue("未知原因");
-				}
-				row.createCell(5).setCellValue(attendanceDetail.getOnDutyTime());
-				row.createCell(6).setCellValue(attendanceDetail.getOffDutyTime());
-				row.createCell(7).setCellValue(attendanceDetail.getAppealReason());
-				if (attendanceDetail.getAppealStatus() != 0) {
-					// 查询该条打卡信息的申诉信息
-					try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-						Business business = new Business(emc);
-						attendanceAppealInfo = business.getAttendanceAppealInfoFactory().get(attendanceDetail.getId());
-					} catch (Exception e) {
-						logger.info("系统在查询所有["+sheetName+"]非正常打卡记录时发生异常。" );
-						e.printStackTrace();
-					}
-					if (attendanceAppealInfo != null) {
-						row.createCell(8).setCellValue(attendanceAppealInfo.getAppealDescription());
-						if (attendanceAppealInfo.getStatus() == 0) {
-							row.createCell(9).setCellValue("未审批");
-						} else if (attendanceAppealInfo.getStatus() == -1) {
-							row.createCell(9).setCellValue("已审批未通过");
-						}
-					}
-				}
-			}
-		}
-		return wb;
-	}
-
-	public static class Wo extends WoFile {
-		public Wo(byte[] bytes, String contentType, String contentDisposition) {
-			super(bytes, contentType, contentDisposition);
-		}
-	}
-
-}

+ 0 - 164
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionExportHolidayDetail.java

@@ -1,164 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import java.io.ByteArrayOutputStream;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.entity.AttendanceSelfHoliday;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoFile;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.ListTools;
-
-/**
- * 导入的文件没有用到文件存储器,是直接放在数据库中的BLOB列
- *
- */
-public class ActionExportHolidayDetail extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger(ActionExportHolidayDetail.class);
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String startdate, String enddate, Boolean stream ) throws Exception {
-			ActionResult<Wo> result = new ActionResult<>();
-			List<String> ids = null;
-			List<AttendanceSelfHoliday> holidayList = null;
-			Workbook wb = null;
-			Wo wo = null;
-			String fileName = null;
-			String sheetName = null;
-			Date startDate = null;
-			Date endDate = null;
-			Boolean check = true;
-			
-			startDate = dateOperation.getDateFromString( startdate + " 00:00:00");
-			endDate = dateOperation.getDateFromString( enddate + " 23:59:59");
-			
-			if( endDate == null ){
-				endDate = dateOperation.getLastDateInMonth( new Date() );
-				enddate = dateOperation.getDateStringFromDate( endDate, "yyyy-MM-dd");
-				logger.info("[ExportSelfHolidayDetailsServlet]从URL中未获取到正确的endDate, endDate=[" + endDate + "]");
-			}
-			
-			if( startDate == null ){
-				startDate = dateOperation.getFirstDateInMonth( new Date() );
-				startdate = dateOperation.getDateStringFromDate( startDate, "yyyy-MM-dd");
-				logger.info("[ExportSelfHolidayDetailsServlet]从URL中未获取到正确的startDate, startDate=[" + startDate + "]");
-			}
-			
-			if( startDate.after( endDate ) ){
-				startDate = dateOperation.getFirstDateInMonth( new Date() );
-				startdate = dateOperation.getDateStringFromDate( startDate, "yyyy-MM-dd");
-				logger.info("[ExportSelfHolidayDetailsServlet]开始时间不可以晚于结束时间, startDate=[" + startDate + "]");
-			}
-			
-			if( check ) {
-				// 先获取需要导出的数据
-				try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-					Business business = new Business(emc);
-					ids = business.getAttendanceSelfHolidayFactory().listByStartDateAndEndDate( startDate, endDate );					
-					if( ListTools.isNotEmpty( ids ) ){
-						holidayList = business.getAttendanceSelfHolidayFactory().list(ids);
-					}
-				} catch (Exception e) {
-					logger.warn("系统在查询所有[" + startdate + "] 到 [" + enddate + "]的所有请假记录时发生异常。");
-					e.printStackTrace();
-				}
-			}
-			
-			// 将结果组织成EXCEL		
-			if( check ) {
-				fileName = "" + startdate + "至" + enddate + "月请假记录.xls";
-				sheetName = "请假记录";
-				wb = composeDetail( fileName, sheetName, holidayList );
-			}
-			
-			//输出数据信息
-			if( check ) {
-				ByteArrayOutputStream bos = new ByteArrayOutputStream();
-				try {
-				    wb.write(bos);
-				    wo = new Wo(bos.toByteArray(), 
-							this.contentType(stream, fileName), 
-							this.contentDisposition(stream, fileName));
-				} finally {
-				    bos.close();
-				}
-			}		
-			result.setData(wo);
-			return result;
-		}
-
-		private Workbook composeDetail(String fileName, String sheetName, List<AttendanceSelfHoliday> holidayList) throws Exception {
-			AttendanceSelfHoliday attendanceSelfHoliday = null;
-			
-			Workbook wb = new HSSFWorkbook();
-			Row row = null;
-			if (holidayList != null && holidayList.size() > 0) {
-				// 创建新的表格
-				Sheet sheet = wb.createSheet(sheetName);
-				
-				// 先创建表头
-				row = sheet.createRow(0);
-				row.createCell(0).setCellValue("顶层组织名称");
-				row.createCell(1).setCellValue("组织名称");
-				row.createCell(2).setCellValue("员工姓名");
-				row.createCell(3).setCellValue("请假类型");
-				row.createCell(4).setCellValue("开始时间");
-				row.createCell(5).setCellValue("结束时间");
-				row.createCell(6).setCellValue("请假天数");
-				row.createCell(7).setCellValue("其他说明");
-
-				if ( holidayList != null && holidayList.size() > 0 ) {
-					logger.info("一共有"+holidayList.size()+"条请求记录可以输出。");					
-					for (int i = 0; i < holidayList.size(); i++) {
-						attendanceSelfHoliday = holidayList.get(i);
-						if( attendanceSelfHoliday != null ){
-							row = sheet.createRow(i + 1);
-							row.createCell(0).setCellValue(attendanceSelfHoliday.getTopUnitName());
-							row.createCell(1).setCellValue(attendanceSelfHoliday.getUnitName());
-							row.createCell(2).setCellValue(attendanceSelfHoliday.getEmployeeName());
-							row.createCell(3).setCellValue(attendanceSelfHoliday.getLeaveType());
-							
-							if( attendanceSelfHoliday.getStartTime() != null ){
-								row.createCell(4).setCellValue( dateOperation.getDateStringFromDate( attendanceSelfHoliday.getStartTime(), "yyyy-MM-dd HH:mm:ss") );
-							}else{
-								row.createCell(4).setCellValue("");
-							}
-							if( attendanceSelfHoliday.getEndTime() != null ){
-								row.createCell(5).setCellValue( dateOperation.getDateStringFromDate( attendanceSelfHoliday.getEndTime(), "yyyy-MM-dd HH:mm:ss") );
-							}else{
-								row.createCell(5).setCellValue("");
-							}
-							if( attendanceSelfHoliday.getLeaveDayNumber() != null ){
-								row.createCell(6).setCellValue(attendanceSelfHoliday.getLeaveDayNumber());
-							}else{
-								row.createCell(6).setCellValue( "0" );
-							}
-							if( attendanceSelfHoliday.getDescription() != null ){
-								row.createCell(7).setCellValue(attendanceSelfHoliday.getDescription());
-							}
-						}
-					}
-				}
-			}
-			return wb;
-		}
-
-		public static class Wo extends WoFile {
-			public Wo(byte[] bytes, String contentType, String contentDisposition) {
-				super(bytes, contentType, contentDisposition);
-			}
-		}
-	}

+ 0 - 36
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionImportFileDownload.java

@@ -1,36 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.x.attendance.entity.AttendanceImportFileInfo;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoFile;
-
-/**
- * 导入的文件没有用到文件存储器,是直接放在数据库中的BLOB列
- *
- */
-public class ActionImportFileDownload extends BaseAction {
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id, Boolean stream ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		AttendanceImportFileInfo  file = importFileInfoServiceAdv.get(id);
-		if ( null == file ) {
-			throw new Exception("文件信息不存在。id:" + id ) ;
-		}else {
-			Wo wo = new Wo(file.getFileBody(), 
-					this.contentType(stream, file.getName()), 
-					this.contentDisposition(stream, file.getName()));
-			result.setData(wo);
-		}
-		return result;
-	}
-
-	public static class Wo extends WoFile {
-		public Wo(byte[] bytes, String contentType, String contentDisposition) {
-			super(bytes, contentType, contentDisposition);
-		}
-	}
-
-}

+ 0 - 153
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionImportFileUpload.java

@@ -1,153 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStream;
-import java.util.Date;
-
-import javax.servlet.http.HttpServletRequest;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-
-import com.x.attendance.assemble.common.excel.reader.ExcelReaderUtil;
-import com.x.attendance.assemble.common.excel.reader.IRowReader;
-import com.x.attendance.assemble.common.excel.reader.ImportExcelReader;
-import com.x.attendance.assemble.control.processor.monitor.StatusSystemImportOpt;
-import com.x.attendance.entity.AttendanceImportFileInfo;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.WrapOutId;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.DefaultCharset;
-
-public class ActionImportFileUpload {
-	private static Logger logger = LoggerFactory.getLogger(ActionImportFileUpload.class);
-
-	public static class Wo extends WoId {
-
-	}
-
-	protected ActionResult<WrapOutId> execute(HttpServletRequest request, EffectivePerson effectivePerson, byte[] bytes, FormDataContentDisposition disposition) {
-		ActionResult<WrapOutId> result = new ActionResult<>();
-		AttendanceImportFileInfo importFile = null;
-		String fileName = null;
-		Boolean check = true;
-		
-		try {
-			fileName = FilenameUtils.getName(new String(disposition.getFileName().getBytes(DefaultCharset.name_iso_8859_1), DefaultCharset.name));
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionGetFileName(e);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-		
-		if( check ) {
-			/** 禁止不带扩展名的文件上传 */
-			if (StringUtils.isEmpty(fileName)) {
-				check = false;
-				Exception exception = new ExceptionEmptyExtension(fileName);
-				result.error(exception);
-				logger.error(exception, effectivePerson, request, null);
-			} 
-		}
-		
-		if( check ) {
-			importFile = new AttendanceImportFileInfo();
-			importFile.setId( AttendanceImportFileInfo.createId() );
-			importFile.setExtension( FilenameUtils.getExtension(fileName) );
-			importFile.setFileBody( bytes );
-			importFile.setFileName( fileName );
-			importFile.setName(fileName);
-			importFile.setCreatorUid( effectivePerson.getDistinguishedName() );
-			importFile.setCreateTime( new Date() );
-			importFile.setLastUpdateTime( new Date() );
-			importFile.setLength( Long.parseLong(bytes.length+"") );
-		}
-		
-		if( check ) {
-			try {
-				checkDataInFile( importFile.getId(), fileName, bytes, effectivePerson );
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionCheckImportData(e);
-				result.error(exception);
-				logger.error(exception, effectivePerson, request, null);
-			}
-		}
-
-		if( check ) {
-			try {
-				saveFile( importFile );
-				result.setData(new WrapOutId( importFile.getId()));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionCheckImportData(e);
-				result.error(exception);
-				logger.error(exception, effectivePerson, request, null);
-			}
-		}		
-		return result;
-	}
-	
-	private void saveFile( AttendanceImportFileInfo importFile ) throws Exception {		
-		// 将所有的附件信息存储到数据库里
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			emc.beginTransaction(AttendanceImportFileInfo.class);
-			emc.persist( importFile, CheckPersistType.all );
-			emc.commit();
-		} catch (Exception ex) {
-			throw ex;
-		}
-	}
-	
-	private void checkDataInFile( String id, String fileName, byte[] content, EffectivePerson effectivePerson ) throws ExceptionFileImportProcess {
-		// 将文件到应用服务器形成本地文件
-		String importFilePath = "./servers/applicationServer/work/x_attendance_assemble_control/temp/";
-		String importFileName = "import_" + ( new Date() ).getTime() + "_" + fileName;
-		OutputStream output = null;
-		try {
-			File dir = new File( importFilePath );
-			if ( !dir.exists() ) {
-				dir.mkdir();
-			}
-			File file = new File(importFilePath + importFileName);
-			if (file.exists()) {
-				file.delete();
-			}
-			file.createNewFile();
-			try {
-				output = new FileOutputStream(importFilePath + importFileName);
-				output.write( content );
-				output.flush();
-			} catch (Exception e) {
-				logger.warn( "将文件写入到本地文件时发生异常.ID:" + id + ", FileName:" + fileName );
-				logger.error( e );
-			} finally {
-				output.close();
-			}
-		} catch (Exception e) {
-			logger.warn( "将文件写入到本地文件时发生异常.");
-			logger.error( e );
-		}
-		
-		StatusSystemImportOpt.getInstance().cleanCacheImportFileStatus( id );
-		StatusSystemImportOpt.getInstance().getCacheImportFileStatus( id ).setFilePath( importFilePath + importFileName );
-		
-		// 然后进行数据检查
-		IRowReader reader = new ImportExcelReader();
-		try {
-			ExcelReaderUtil.readExcel( reader, importFilePath + importFileName, id, 1 );
-		} catch (Exception e) {
-			logger.warn( "解析本地Excle文件时发生异常.ID:" + id + ", FileName:" + importFilePath + importFileName );
-			logger.error( e );
-		}
-	}
-
-}

+ 0 - 27
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/AttendanceImportFileInfoCache.java

@@ -1,27 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import com.x.attendance.entity.AttendanceImportFileInfo;
-
-public class AttendanceImportFileInfoCache {
-
-	private AttendanceImportFileInfo attendanceImportFileInfo;
-
-	private byte[] bytes;
-
-	public AttendanceImportFileInfo getAttendanceImportFileInfo() {
-		return attendanceImportFileInfo;
-	}
-
-	public void setAttendanceImportFileInfo( AttendanceImportFileInfo attendanceImportFileInfo) {
-		this.attendanceImportFileInfo = attendanceImportFileInfo;
-	}
-
-	public byte[] getBytes() {
-		return bytes;
-	}
-
-	public void setBytes(byte[] bytes) {
-		this.bytes = bytes;
-	}
-
-}

+ 0 - 11
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/BaseAction.java

@@ -1,11 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import com.x.attendance.assemble.common.date.DateOperation;
-import com.x.attendance.assemble.control.service.AttendanceImportFileInfoServiceAdv;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-public class BaseAction extends StandardJaxrsAction {
-	protected AttendanceImportFileInfoServiceAdv importFileInfoServiceAdv = new AttendanceImportFileInfoServiceAdv();
-	protected DateOperation dateOperation = new DateOperation();
-}
-

+ 0 - 114
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/FileImportExportAction.java

@@ -1,114 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-import org.glassfish.jersey.media.multipart.FormDataParam;
-
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.http.WrapOutId;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("file")
-@JaxrsDescribe("附件操作")
-public class FileImportExportAction extends StandardJaxrsAction {
-	private static Logger logger = LoggerFactory.getLogger(FileImportExportAction.class);
-
-	@JaxrsMethodDescribe(value = "上传需要导入的数据文件XLS", action = StandardJaxrsAction.class)
-	@POST
-	@Path("upload")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.MULTIPART_FORM_DATA)
-	public void upload(@Suspended final AsyncResponse asyncResponse, 
-			@Context HttpServletRequest request, 
-			@FormDataParam(FILE_FIELD) final byte[] bytes,
-			@FormDataParam(FILE_FIELD) final FormDataContentDisposition disposition
-	) {
-		ActionResult<WrapOutId> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionImportFileUpload().execute(request, effectivePerson, bytes, disposition);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-	
-	@JaxrsMethodDescribe(value = "根据文件ID下载附件,设定是否使用stream输出", action = ActionImportFileDownload.class)
-	@GET
-	@Path("download/{id}/stream/{stream}")
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void fileDownloadStream(@Suspended final AsyncResponse asyncResponse, 
-			@Context HttpServletRequest request, 
-			@JaxrsParameterDescribe("文件标识") @PathParam("id") String id, 
-			@JaxrsParameterDescribe("用.APPLICATION_OCTET_STREAM头输出") @PathParam("stream") Boolean stream) {
-		ActionResult<ActionImportFileDownload.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionImportFileDownload().execute(request, effectivePerson, id, stream);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-	
-	@JaxrsMethodDescribe(value = "按指定月份导出非正常打卡数据,设定是否使用stream输出", action = ActionExportAbnormalDetail.class)
-	@GET
-	@Path("export/abnormaldetails/year/{year}/month/{month}/stream/{stream}")
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void abnormalDetailsExportStream(@Suspended final AsyncResponse asyncResponse, 
-			@Context HttpServletRequest request, 
-			@JaxrsParameterDescribe("年份") @PathParam("year") String year, 
-			@JaxrsParameterDescribe("月份") @PathParam("month") String month, 
-			@JaxrsParameterDescribe("用.APPLICATION_OCTET_STREAM头输出") @PathParam("stream") Boolean stream) {
-		ActionResult<ActionExportAbnormalDetail.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionExportAbnormalDetail().execute(request, effectivePerson, year, month, stream);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-	
-	@JaxrsMethodDescribe(value = "按时间区间导出请假数据,设定是否使用stream输出", action = ActionExportHolidayDetail.class)
-	@GET
-	@Path("export/selfholiday/{startdate}/{enddate}/stream/{stream}")
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void selfHolidayExportStream(@Suspended final AsyncResponse asyncResponse, 
-			@Context HttpServletRequest request, 
-			@JaxrsParameterDescribe("开始时间") @PathParam("startdate") String startdate, 
-			@JaxrsParameterDescribe("结束时间") @PathParam("enddate") String enddate, 
-			@JaxrsParameterDescribe("用.APPLICATION_OCTET_STREAM头输出") @PathParam("stream") Boolean stream) {
-		ActionResult<ActionExportHolidayDetail.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionExportHolidayDetail().execute(request, effectivePerson, startdate, enddate, stream);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/exception/ExceptionCheckImportData.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionCheckImportData extends PromptException {
-
-	private static final long serialVersionUID = 4132300948670472899L;
-
-	public ExceptionCheckImportData(Throwable e) {
-		super("检查导入数据信息时发生异常!", e);
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/exception/ExceptionEmptyExtension.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionEmptyExtension extends PromptException {
-
-	private static final long serialVersionUID = 4132300948670472899L;
-
-	public ExceptionEmptyExtension(String name) {
-		super("不能上传文件扩展名为空的文件: {}.", name);
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/exception/ExceptionGetFileName.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attachment.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionGetFileName extends PromptException {
-
-	private static final long serialVersionUID = 4132300948670472899L;
-
-	public ExceptionGetFileName(Throwable e) {
-		super("获取上传的文件名时发生异常!", e);
-	}
-}

+ 0 - 44
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionDelete.java

@@ -1,44 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionDelete extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionDelete.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		Boolean check = true;
-
-		if (check) {
-			if (id == null || id.isEmpty() || "(0)".equals(id)) {
-				check = false;
-				result.error(new Exception("传入的id为空,或者不合法,无法查询数据。"));
-			}
-		}
-		if (check) {
-			try {
-				attendanceAdminServiceAdv.delete(id);
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAdminProcess( e, "系统删除考勤打卡记录信息时发生异常。ID:" + id );
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 67
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionGet.java

@@ -1,67 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceAdmin;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionGet extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionGet.class);
-
-	protected ActionResult<Wo> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id)
-			throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		Wo wrap = null;
-		AttendanceAdmin attendanceAdmin = null;
-		Boolean check = true;
-		if (check) {
-			try {
-				attendanceAdmin = attendanceAdminServiceAdv.get(id);
-			} catch (Exception e) {
-				check = false;
-				result.error(e);
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "系统在根据ID获取管理员信息时发生异常!ID:" + id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			if (attendanceAdmin != null) {
-				try {
-					wrap = Wo.copier.copy(attendanceAdmin);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAdminProcess(e, "系统在转换所有管理员信息为输出对象时发生异常.");
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		result.setData(wrap);
-		return result;
-	}
-
-	public static class Wo extends AttendanceAdmin {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-		
-		public static WrapCopier<AttendanceAdmin, Wo> copier = WrapCopierFactory.wo(AttendanceAdmin.class, Wo.class,
-				null, JpaObject.FieldsInvisible);
-
-		private Long rank = 0L;
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-	}
-}

+ 0 - 74
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionListAll.java

@@ -1,74 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceAdmin;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.ListTools;
-
-public class ActionListAll extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListAll.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson)
-			throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		List<Wo> wraps = null;
-		List<AttendanceAdmin> attendanceAdminList = null;
-		Boolean check = true;
-
-		if (check) {
-			try {
-				attendanceAdminList = attendanceAdminServiceAdv.listAll();
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "系统在获取所有管理员信息时发生异常");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-
-		if (check) {
-			if ( ListTools.isNotEmpty( attendanceAdminList )) {
-				try {
-					wraps = Wo.copier.copy(attendanceAdminList);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAdminProcess(e, "系统在转换所有管理员信息为输出对象时发生异常.");
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wo extends AttendanceAdmin {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static List<String> Excludes = new ArrayList<String>();
-
-		public static WrapCopier<AttendanceAdmin, Wo> copier = WrapCopierFactory.wo(AttendanceAdmin.class, Wo.class,
-				null, JpaObject.FieldsInvisible);
-
-		private Long rank = 0L;
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-	}
-}

+ 0 - 139
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionSave.java

@@ -1,139 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.x.base.core.project.organization.Person;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAdmin;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionSave extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionSave.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, JsonElement jsonElement ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		Wi wrapIn = null;
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		AttendanceAdmin attendanceAdmin = null;
-		String topUnitName = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, currentPerson, request, null);
-		}
-		if (check) {
-			if (wrapIn.getUnitName() == null || wrapIn.getUnitName().isEmpty()) {
-				try {
-					topUnitName = userManagerService.getTopUnitNameWithPersonName( currentPerson.getDistinguishedName() );
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAdminProcess(e, "系统获取登录用户所属顶层组织时发生异常。Name:" + currentPerson.getDistinguishedName());
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-				wrapIn.setUnitName(topUnitName);
-			}
-		}
-		if (check) {
-			try {
-				attendanceAdmin = new AttendanceAdmin();
-				wrapIn.copyTo( attendanceAdmin, JpaObject.FieldsUnmodify );
-				if ( StringUtils.isNotEmpty( wrapIn.getId() )) {
-					attendanceAdmin.setId(wrapIn.getId());
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "系统在转换所有管理员信息为输出对象时发生异常.");
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		if (check) {
-			//如果adminName为空,根据标识核实admin姓名
-			if( StringUtils.isNotEmpty( attendanceAdmin.getAdmin()) ){
-				Person person = null;
-				try {
-					person = userManagerService.getPersonObjByName(attendanceAdmin.getAdminName());
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAdminProcess(e, "系统根据人员标识获取人员信息对象时发生异常.Flag="+attendanceAdmin.getAdmin());
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-				if( person != null ){
-					attendanceAdmin.setAdminName( person.getName() );
-				}
-			}
-		}
-		if (check) {
-			//如果admin为空,根据姓名获取admin标识
-			if( StringUtils.isNotEmpty( attendanceAdmin.getAdminName()) ){
-				if( StringUtils.isEmpty( attendanceAdmin.getAdmin()) ){
-					Person person = null;
-					try {
-						person = userManagerService.getPersonObjByName(attendanceAdmin.getAdminName());
-					} catch (Exception e) {
-						check = false;
-						Exception exception = new ExceptionAttendanceAdminProcess(e, "系统根据人员姓名获取人员标识时发生异常.Name=" + attendanceAdmin.getAdminName() );
-						result.error(exception);
-						logger.error(e, currentPerson, request, null);
-					}
-					if( person != null ){
-						attendanceAdmin.setAdmin( person.getDistinguishedName() );
-					}
-				}
-			}
-		}
-
-		if (check) {
-			try {
-				attendanceAdmin = attendanceAdminServiceAdv.save(attendanceAdmin);
-				result.setData(new Wo(attendanceAdmin.getId()));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "系统保存管理员信息时发生异常.");
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wi extends AttendanceAdmin {
-		private static final long serialVersionUID = -5076990764713538973L;
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 129
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/AttendanceAdminAction.java

@@ -1,129 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("attendanceadmin")
-@JaxrsDescribe("考勤管理员信息配置管理服务")
-public class AttendanceAdminAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(AttendanceAdminAction.class);
-
-	@JaxrsMethodDescribe(value = "获取所有的考勤管理员信息", action = ActionListAll.class)
-	@GET
-	@Path("list/all")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listAllAttendanceAdmin(@Suspended final AsyncResponse asyncResponse,
-			@Context HttpServletRequest request) {
-		ActionResult<List<ActionListAll.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-
-		if (check) {
-			try {
-				result = new ActionListAll().execute(request, effectivePerson);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "根据ID获取信息时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据ID获取指定的考勤管理员信息", action = ActionGet.class)
-	@GET
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("考勤管理员配置信息ID") @PathParam("id") String id) {
-		ActionResult<ActionGet.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-
-		if (check) {
-			try {
-				result = new ActionGet().execute(request, effectivePerson, id);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "根据ID获取信息时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "新建或者更新考勤管理员信息", action = ActionSave.class)
-	@POST
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void post(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			JsonElement jsonElement) {
-		ActionResult<ActionSave.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-
-		if (check) {
-			try {
-				result = new ActionSave().execute(request, effectivePerson, jsonElement);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "保存信息时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据ID删除考勤管理员信息", action = ActionDelete.class)
-	@DELETE
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("考勤管理员配置信息ID") @PathParam("id") String id) {
-		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionDelete().execute(request, effectivePerson, id);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAdminProcess(e, "根据ID删除信息时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/BaseAction.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin;
-
-import com.x.attendance.assemble.control.service.AttendanceAdminServiceAdv;
-import com.x.attendance.assemble.control.service.UserManagerService;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-public class BaseAction extends StandardJaxrsAction{
-	
-	protected AttendanceAdminServiceAdv attendanceAdminServiceAdv = new AttendanceAdminServiceAdv();
-	protected UserManagerService userManagerService = new UserManagerService();
-	
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/exception/ExceptionAttendanceAdminProcess.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceadmin.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionAttendanceAdminProcess extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionAttendanceAdminProcess( Throwable e, String message ) {
-		super("用户在进行考勤管理员信息配置处理时发生异常!message:" + message, e );
-	}
-}

+ 0 - 46
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealArchive.java

@@ -1,46 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.StringUtils;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAppealArchive extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAppealArchive.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-
-		if ( StringUtils.isNotEmpty( id )) { // 归档指定的考勤申诉记录
-			try {
-				attendanceAppealInfoServiceAdv.archive(id);
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				result.error(e);
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "归档考勤打卡申诉信息时发生异常。ID:" + id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		} else { // 归档所有的考勤申诉记录
-			try {
-				attendanceAppealInfoServiceAdv.archiveAll();
-			} catch (Exception e) {
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "归档全部考勤申诉信息数据时发生异常");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 254
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealAudit.java

@@ -1,254 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAppealAudit extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionAppealAudit.class);
-
-	protected ActionResult<Wo> execute(HttpServletRequest request, EffectivePerson effectivePerson,
-			JsonElement jsonElement) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		Wo wo = new Wo();
-		List<String> ids = null;
-		List<ProcessWo> wos = new ArrayList<>();
-		ProcessWo processWo = null;
-		String unitName = null;
-		String topUnitName = null;
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		Wi wrapIn = null;
-		Date now = new Date();
-		Boolean check = true;
-		Boolean subProcessCheck = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-
-		if (check) {
-			if (wrapIn.getIds() == null || wrapIn.getIds().isEmpty()) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess("需要审核的申诉ID为空!");
-				result.error(exception);
-			} else {
-				ids = wrapIn.getIds();
-				wo.setTotal(ids.size());
-			}
-		}
-
-		if (check) {
-
-			for (String id : ids) {
-
-				subProcessCheck = true;
-				processWo = new ProcessWo();
-				processWo.setId(id);
-
-				try {
-					attendanceAppealInfo = attendanceAppealInfoServiceAdv.get(id);
-					if (attendanceAppealInfo == null) {
-						subProcessCheck = false;
-						processWo.setSuccess(false);
-						processWo.setTitle("无标题");
-						processWo.setDiscription("考勤申诉信息不存在!");
-						Exception exception = new ExceptionAttendanceAppealNotExists(id);
-						result.error(exception);
-					} else {
-						processWo.setTitle("考勤申诉-" + attendanceAppealInfo.getEmpName() + "-"
-								+ attendanceAppealInfo.getRecordDateString());
-					}
-				} catch (Exception e) {
-					subProcessCheck = false;
-					processWo.setSuccess(false);
-					processWo.setTitle("无标题");
-					processWo.setDiscription("考勤申诉信息查询发生异常!");
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询考勤申诉信息数据时发生异常。ID:" + id);
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-
-				if (subProcessCheck) {
-					try {
-						unitName = userManagerService.getUnitNameWithPersonName(effectivePerson.getDistinguishedName());
-						if (unitName != null) {
-							topUnitName = userManagerService.getTopUnitNameWithUnitName(unitName);
-						} else {
-							check = false;
-							processWo.setSuccess(false);
-							processWo.setDiscription("申诉人员组织不存在。" + effectivePerson.getDistinguishedName());
-							Exception exception = new ExceptionPersonHasNoUnit(effectivePerson.getDistinguishedName());
-							result.error(exception);
-						}
-					} catch (Exception e) {
-						check = false;
-						processWo.setSuccess(false);
-						processWo.setDiscription("申诉人员组织查询发生异常!" + effectivePerson.getDistinguishedName());
-						Exception exception = new ExceptionAttendanceAppealProcess(e,
-								"系统根据员工姓名查询组织信息时发生异常!name:" + effectivePerson.getDistinguishedName());
-						result.error(exception);
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-				if (subProcessCheck) {
-					try {
-						attendanceAppealInfo = attendanceAppealInfoServiceAdv.firstProcessAttendanceAppeal(id, unitName,
-								topUnitName, effectivePerson.getDistinguishedName(), // processorName
-								now, // processTime
-								wrapIn.getOpinion1(), // opinion
-								wrapIn.getStatus() // status审批状态:0-待处理,1-审批通过,-1-审批不能过,2-需要下一次审批
-						);
-						processWo.setDiscription("申诉处理成功!");
-					} catch (Exception e) {
-						check = false;
-						processWo.setSuccess(false);
-						processWo.setDiscription("申诉处理失败!");
-						Exception exception = new ExceptionAttendanceAppealProcess(e, id);
-						result.error(exception);
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-				if (subProcessCheck) {
-					wo.setSuccessCount(wo.getSuccessCount() + 1);
-				} else {
-					wo.setErrorCount(wo.getErrorCount());
-				}
-				wos.add(processWo);
-			}
-			wo.setProcessRecord(wos);
-			result.setData(wo);
-		}
-		return result;
-	}
-
-	public static class Wi extends AttendanceAppealInfo {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-
-		private List<String> ids = null;
-
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-
-		public List<String> getIds() {
-			return ids;
-		}
-
-		public void setIds(List<String> ids) {
-			this.ids = ids;
-		}
-
-	}
-
-	public static class Wo {
-
-		private Integer total = 0;
-
-		private Integer successCount = 0;
-
-		private Integer errorCount = 0;
-
-		private List<ProcessWo> processRecord = null;
-
-		public Integer getTotal() {
-			return total;
-		}
-
-		public Integer getSuccessCount() {
-			return successCount;
-		}
-
-		public Integer getErrorCount() {
-			return errorCount;
-		}
-
-		public List<ProcessWo> getProcessRecord() {
-			return processRecord;
-		}
-
-		public void setTotal(Integer total) {
-			this.total = total;
-		}
-
-		public void setSuccessCount(Integer successCount) {
-			this.successCount = successCount;
-		}
-
-		public void setErrorCount(Integer errorCount) {
-			this.errorCount = errorCount;
-		}
-
-		public void setProcessRecord(List<ProcessWo> processRecord) {
-			this.processRecord = processRecord;
-		}
-	}
-
-	public static class ProcessWo {
-
-		private String id = null;
-
-		private String title = null;
-
-		private String discription = null;
-
-		private Boolean success = true;
-
-		public String getId() {
-			return id;
-		}
-
-		public String getTitle() {
-			return title;
-		}
-
-		public String getDiscription() {
-			return discription;
-		}
-
-		public Boolean getSuccess() {
-			return success;
-		}
-
-		public void setId(String id) {
-			this.id = id;
-		}
-
-		public void setTitle(String title) {
-			this.title = title;
-		}
-
-		public void setDiscription(String discription) {
-			this.discription = discription;
-		}
-
-		public void setSuccess(Boolean success) {
-			this.success = success;
-		}
-	}
-}

+ 0 - 243
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealCheck.java

@@ -1,243 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAppealCheck extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAppealCheck.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, JsonElement jsonElement ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		Wo wo = new Wo();
-		List<String> ids = null;
-		List<ProcessWo> wos = new ArrayList<>();
-		ProcessWo processWo = null;
-		String unitName = null;
-		String topUnitName = null;
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		Wi wrapIn = null;
-		Date now = new Date();
-		Boolean check = true;
-		Boolean subProcessCheck = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-
-		if (check) {
-			if( wrapIn.getIds() == null || wrapIn.getIds().isEmpty() ) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess( "需要复核的申诉ID为空!" );
-				result.error(exception);
-			}else {
-				ids =  wrapIn.getIds();
-				wo.setTotal( ids.size() );
-			}
-		}
-		
-		if ( check ) {
-			
-			for( String id : ids ) {
-				
-				subProcessCheck = true;
-				processWo = new ProcessWo();
-				processWo.setId(id);
-				
-				try {
-					attendanceAppealInfo = attendanceAppealInfoServiceAdv.get( id );
-					if (attendanceAppealInfo == null) {
-						subProcessCheck = false;
-						processWo.setSuccess( false );
-						processWo.setTitle( "无标题" );
-						processWo.setDiscription("考勤申诉信息不存在!");
-						Exception exception = new ExceptionAttendanceAppealNotExists(id);
-						result.error(exception);
-					}else {
-						processWo.setTitle( "考勤申诉-" + attendanceAppealInfo.getEmpName() + "-" + attendanceAppealInfo.getRecordDateString() );
-					}
-				} catch (Exception e) {
-					subProcessCheck = false;
-					processWo.setSuccess( false );
-					processWo.setTitle( "无标题" );
-					processWo.setDiscription("考勤申诉信息查询发生异常!");
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询考勤申诉信息数据时发生异常。ID:"+ id);
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-				
-				if( subProcessCheck ) {
-					try {
-						unitName = userManagerService.getUnitNameWithPersonName(effectivePerson.getDistinguishedName());
-						if (unitName != null) {
-							topUnitName = userManagerService.getTopUnitNameWithUnitName( unitName );
-						} else {
-							check = false;
-							processWo.setSuccess( false );
-							processWo.setDiscription("申诉人员组织不存在。" + effectivePerson.getDistinguishedName() );
-							Exception exception = new ExceptionPersonHasNoUnit(effectivePerson.getDistinguishedName());
-							result.error(exception);
-						}
-					} catch (Exception e) {
-						check = false;
-						processWo.setSuccess( false );
-						processWo.setDiscription("申诉人员组织查询发生异常!" + effectivePerson.getDistinguishedName() );
-						Exception exception = new ExceptionAttendanceAppealProcess(e, "系统根据员工姓名查询组织信息时发生异常!name:"+effectivePerson.getDistinguishedName());
-						result.error(exception);
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-				if( subProcessCheck ) {
-					try {
-						attendanceAppealInfo = attendanceAppealInfoServiceAdv.secondProcessAttendanceAppeal(id, unitName, topUnitName, effectivePerson.getDistinguishedName(), // processorName
-								now, // processTime
-								wrapIn.getOpinion2(), // opinion
-								wrapIn.getStatus() // status
-						);
-						processWo.setDiscription("申诉处理成功!");
-					} catch (Exception e) {
-						check = false;
-						processWo.setSuccess( false );
-						processWo.setDiscription( "申诉处理失败!" );
-						Exception exception = new ExceptionAttendanceAppealProcess(e, id);
-						result.error(exception);
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-				if( subProcessCheck ) {
-					wo.setSuccessCount( wo.getSuccessCount() + 1 );
-				}else {
-					wo.setErrorCount( wo.getErrorCount() );
-				}
-				wos.add( processWo );
-			}
-			wo.setProcessRecord( wos );
-			result.setData( wo );
-		}
-		return result;
-	}
-	
-public static class Wi extends AttendanceAppealInfo {
-		
-		private static final long serialVersionUID = -5076990764713538973L;
-		
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-		
-		private List<String> ids = null;
-
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-
-		public List<String> getIds() {
-			return ids;
-		}
-
-		public void setIds(List<String> ids) {
-			this.ids = ids;
-		}
-		
-	}
-	
-	public static class Wo {
-		
-		private Integer total = 0;
-		
-		private Integer successCount = 0;
-		
-		private Integer errorCount = 0;
-		
-		private List<ProcessWo> processRecord = null;
-
-		public Integer getTotal() {
-			return total;
-		}
-
-		public Integer getSuccessCount() {
-			return successCount;
-		}
-
-		public Integer getErrorCount() {
-			return errorCount;
-		}
-
-		public List<ProcessWo> getProcessRecord() {
-			return processRecord;
-		}
-
-		public void setTotal(Integer total) {
-			this.total = total;
-		}
-
-		public void setSuccessCount(Integer successCount) {
-			this.successCount = successCount;
-		}
-
-		public void setErrorCount(Integer errorCount) {
-			this.errorCount = errorCount;
-		}
-
-		public void setProcessRecord(List<ProcessWo> processRecord) {
-			this.processRecord = processRecord;
-		}		
-	}
-	
-	public static class ProcessWo {
-		
-		private String id = null;
-		
-		private String title = null;
-		
-		private String discription = null;
-		
-		private Boolean success = true;
-		
-		public String getId() {
-			return id;
-		}
-		public String getTitle() {
-			return title;
-		}
-		public String getDiscription() {
-			return discription;
-		}
-		public Boolean getSuccess() {
-			return success;
-		}
-		public void setId(String id) {
-			this.id = id;
-		}
-		public void setTitle(String title) {
-			this.title = title;
-		}
-		public void setDiscription(String discription) {
-			this.discription = discription;
-		}
-		public void setSuccess(Boolean success) {
-			this.success = success;
-		}
-	}
-}

+ 0 - 296
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealCreate.java

@@ -1,296 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.assemble.control.jaxrs.AppealConfig;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import org.apache.commons.lang3.StringUtils;
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ActionAppealCreate extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAppealCreate.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id, JsonElement jsonElement ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		AttendanceDetail attendanceDetail = null;
-		String appealAuditPersonName = null;
-		String appealCheckPersonName = null;
-		String appeal_auditor_type = null;
-		String appeal_auditor_value = null;
-		String appeal_checker_type = null;
-		String appeal_checker_value = null;
-		String personName = null;
-		Wi wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-		if (check) {
-			try {
-				attendanceDetail = attendanceDetailServiceAdv.get( id );
-				if ( attendanceDetail == null ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailNotExists(id);
-					result.error( exception );
-				}else {
-					personName = attendanceDetail.getEmpName();
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询员工打卡信息时发生异常!ID:"+id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		
-		if (check) {
-			// 利用打卡记录中的信息,创建一个申诉信息记录
-			attendanceAppealInfo = attendanceSettingServiceAdv.composeAppealInfoWithDetailInfo( attendanceDetail, 
-					wrapIn.getReason(), wrapIn.getAppealReason(),  wrapIn.getSelfHolidayType(),  wrapIn.getAddress(), 
-					wrapIn.getStartTime(),  wrapIn.getEndTime(),  wrapIn.getAppealDescription() );
-		}
-		if (check) {
-			try {
-				appeal_auditor_type = attendanceSettingServiceAdv.getValueByCode( "APPEAL_AUDITOR_TYPE" );
-				appeal_auditor_value = attendanceSettingServiceAdv.getValueByCode( "APPEAL_AUDITOR_VALUE" );
-				appeal_checker_type = attendanceSettingServiceAdv.getValueByCode( "APPEAL_CHECKER_TYPE" );
-				appeal_checker_value = attendanceSettingServiceAdv.getValueByCode( "APPEAL_CHECKER_VALUE" );
-			}catch( Exception e ) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess( e, "系统在获取申诉审核配置时发生异常!" );
-				result.error( exception);
-				logger.error( e, effectivePerson, request, null);
-			}
-		}
-		
-		//查询申诉审核人
-		if (check) {
-			if( StringUtils.isNotEmpty( appeal_auditor_type ) ) {
-				try {
-//					System.out.println("personName:" + personName );
-//					System.out.println("attendanceAppealInfo.getUnitName():" + attendanceAppealInfo.getUnitName() );
-//					System.out.println("wrapIn.getIdentity():" + wrapIn.getIdentity() );
-					appealAuditPersonName = attendanceAppealInfoServiceAdv.getAppealAuditPerson( personName, attendanceAppealInfo.getUnitName(), wrapIn.getIdentity() );
-					if( StringUtils.isNotEmpty( appealAuditPersonName )){
-						appealAuditPersonName = userManagerService.getPersonNameByIdentity(appealAuditPersonName);
-						attendanceAppealInfo.setProcessPerson1( appealAuditPersonName );
-						attendanceAppealInfo.setCurrentProcessor( appealAuditPersonName );// 将第一个处理人设置为当前处理人
-					}
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据根据考勤人员查询申诉审核人信息时发生异常!personName:"+personName );
-					result.error(exception);
-					logger.warn( "系统在根据根据考勤人员查询申诉审核人信息时发生异常!personName:"+personName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		
-		if (check) {
-			if( StringUtils.isEmpty(appealAuditPersonName) ) {
-				//申诉审核人不存在
-				check = false;
-				String message = null;
-				String unitLevelName = null;
-				if( StringUtils.isEmpty(appeal_auditor_type)) {
-					message = "申诉审核人类别未配置!";
-				}else if( "无".equals( appeal_auditor_type.trim() )){//当前人处理
-					attendanceAppealInfo.setProcessPerson1( effectivePerson.getDistinguishedName() );
-					attendanceAppealInfo.setCurrentProcessor( effectivePerson.getDistinguishedName() );// 将第一个处理人设置为当前处理人
-				}else if( AppealConfig.APPEAL_AUDITTYPE_UNITDUTY.equals( appeal_auditor_type )){
-					unitLevelName = userManagerService.getUnitLevelNameWithName( attendanceDetail.getUnitName() );
-					message = personName + "所属的部门["+unitLevelName+"]职务["+appeal_auditor_value+"]不存在!";
-				}else if( AppealConfig.APPEAL_AUDITTYPE_REPORTLEADER.equals( appeal_auditor_type )){
-					message = personName + "的[汇报对象]不存在!";
-				}else if( AppealConfig.APPEAL_AUDITTYPE_PERSONATTRIBUTE.equals( appeal_auditor_type )){
-					message = personName + "的个人属性["+appeal_auditor_value+"]不存在!";
-				}else if( AppealConfig.APPEAL_AUDITTYPE_PERSON.equals( appeal_auditor_type )){
-					message = "指定审核人["+appeal_auditor_value+"]不存在!";
-				}else {
-					message = "考勤申诉审核人类型不正确!" + appeal_auditor_type ;
-				}
-				Exception exception = new ExceptionAttendanceAppealProcess( message );
-				result.error( exception );
-			}
-		}
-		
-		//查询申诉复核人
-		if (check) {
-			if( StringUtils.isNotEmpty( appeal_checker_type ) && !"无".equals( appeal_auditor_type  ) ) {
-				try {
-					appealCheckPersonName = attendanceAppealInfoServiceAdv.getAppealCheckPerson( personName, attendanceAppealInfo.getUnitName(), wrapIn.getIdentity() );
-					attendanceAppealInfo.setProcessPerson2( appealCheckPersonName );
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据根据考勤人员查询申诉复核人信息时发生异常!personName:"+personName );
-					result.error(exception);
-					logger.warn( "系统在根据根据考勤人员查询申诉复核人信息时发生异常!personName:"+personName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		if (check) {
-			if( StringUtils.isNotEmpty( appeal_checker_type ) && !StringUtils.equals( appeal_checker_type, "无" ) ) {
-				if( StringUtils.isEmpty(appealCheckPersonName) ) {
-					//申诉复核人不存在
-					check = false;
-					String message = null;
-					String unitLevelName = null;
-					if( StringUtils.isEmpty( appeal_checker_type )) {
-						message = "申诉复核人类别未配置!";
-					}else if( AppealConfig.APPEAL_AUDITTYPE_UNITDUTY.equals( appeal_checker_type )){
-						unitLevelName = userManagerService.getUnitLevelNameWithName( attendanceDetail.getUnitName() );
-						message = personName + "所属的部门["+unitLevelName+"]职务["+ appeal_checker_value +"]不存在!";
-					}else if( AppealConfig.APPEAL_AUDITTYPE_REPORTLEADER.equals( appeal_checker_type )){
-						message = personName + "的[汇报对象]不存在!";
-					}else if( AppealConfig.APPEAL_AUDITTYPE_PERSONATTRIBUTE.equals( appeal_checker_type )){
-						message = personName + "的个人属性["+appeal_checker_value+"]不存在!";
-					}else if( AppealConfig.APPEAL_AUDITTYPE_PERSON.equals( appeal_checker_type )){
-						message = "指定复核人["+appeal_checker_value+"]不存在!";
-					}else {
-						message = "考勤申诉复核人类型不正确!" + appeal_checker_type ;
-					}
-					Exception exception = new ExceptionAttendanceAppealProcess( message );
-					result.error( exception );
-				}
-			}
-			
-		}
-		
-		//查询申诉审核人所属组织
-		if (check) {
-			if( AppealConfig.APPEAL_AUDITTYPE_UNITDUTY.equalsIgnoreCase( appeal_auditor_type ) ) {
-				attendanceAppealInfo.setProcessPersonUnit1(
-						attendanceAppealInfoServiceAdv.getPersonUnitName( appealAuditPersonName, attendanceDetail.getUnitName(), wrapIn.getIdentity() ) );
-			}else {
-				//汇报对象,指定人以及人员属性中指定的人员,根据人员姓名取首选组织(第一个)
-				if( StringUtils.isNotEmpty( appealAuditPersonName ) ) {
-					try {//获取审核人组织信息
-						attendanceAppealInfo.setProcessPersonUnit1( userManagerService.getUnitNameWithPersonName( appealAuditPersonName ));
-					}catch( Exception e ) {
-						check = false;
-						Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据审核人获取组织信息时发生异常。");
-						result.error(exception);
-						logger.warn( "系统在根据审核人获取组织信息时发生异常!personName:"+appealAuditPersonName );
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-			}
-		}
-		//根据所属组织名称查询申诉审核人所属顶层组织
-		if (check) {
-			if( StringUtils.isNotEmpty( attendanceAppealInfo.getProcessPersonUnit1() )) {
-				try {
-					attendanceAppealInfo.setProcessPersonTopUnit1( userManagerService.getTopUnitNameWithUnitName( attendanceAppealInfo.getProcessPersonUnit1() ) );
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据审核人获取顶层组织信息时发生异常。");
-					result.error(exception);
-					logger.warn( "系统在根据审核人获取顶层组织信息时发生异常!personName:"+appealAuditPersonName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		
-		//查询申诉复核人所属组织
-		if (check) {
-			if( AppealConfig.APPEAL_AUDITTYPE_UNITDUTY.equalsIgnoreCase( appeal_auditor_type ) ) {
-				attendanceAppealInfo.setProcessPersonUnit2( attendanceAppealInfoServiceAdv.getPersonUnitName( appealCheckPersonName, attendanceDetail.getUnitName(), wrapIn.getIdentity() ) );
-			}else {
-				//汇报对象,指定人以及人员属性中指定的人员,根据人员姓名取首选组织(第一个)
-				if( appealCheckPersonName != null  && !appealCheckPersonName.isEmpty() ) {
-					try {//获取复核人组织信息
-						attendanceAppealInfo.setProcessPersonUnit2( userManagerService.getUnitNameWithPersonName( appealCheckPersonName ));
-					}catch( Exception e ) {
-						check = false;
-						Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据复核人获取组织信息时发生异常。");
-						result.error(exception);
-						logger.warn( "系统在根据审核人获取组织信息时发生异常!personName:"+appealCheckPersonName );
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-			}
-		}
-		//根据所属组织名称查询申诉复核人所属顶层组织
-		if (check) {
-			if( StringUtils.isNotEmpty(attendanceAppealInfo.getProcessPersonUnit2())) {
-				try {//获取复核人顶层组织信息
-					attendanceAppealInfo.setProcessPersonTopUnit2(  userManagerService.getTopUnitNameWithUnitName( attendanceAppealInfo.getProcessPersonUnit2()) );
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据复核人获取顶层组织信息时发生异常。");
-					result.error(exception);
-					logger.warn( "系统在根据审核人获取顶层组织信息时发生异常!personName:"+appealCheckPersonName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		//保存申诉信息
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.saveNewAppeal( attendanceAppealInfo );
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在保存考勤申诉信息息时发生异常。");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			// 填充申诉信息内容 - 申诉信息成功生成.尝试向当前处理人[" + attendanceAppealInfo.getCurrentProcessor() + "]发送消息通知......
-			try {
-				attendanceNoticeService.notifyAttendanceAppealProcessness1Message(attendanceAppealInfo);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "申诉信息提交成功,向申诉当前处理人发送通知消息发生异常!name:"+attendanceAppealInfo.getProcessPerson1());
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wi extends AttendanceAppealInfo {
-		
-		private static final long serialVersionUID = -5076990764713538973L;
-		
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-
-		/**
-		 * 考勤人员身份:如果考勤人员属于多个组织,可以选择一个身份进行申诉信息绑定
-		 */
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 112
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealProcessFirst.java

@@ -1,112 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAppealProcessFirst extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAppealProcessFirst.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id, JsonElement jsonElement ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		String unitName = null;
-		String topUnitName = null;
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		Wi wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.get(id);
-				if (attendanceAppealInfo == null) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealNotExists(id);
-					result.error(exception);
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询考勤申诉信息数据时发生异常。ID:"+ id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				unitName = userManagerService.getUnitNameWithPersonName(effectivePerson.getDistinguishedName());
-				if (unitName != null) {
-					topUnitName = userManagerService.getTopUnitNameWithUnitName( unitName );
-				} else {
-					check = false;
-					Exception exception = new ExceptionPersonHasNoUnit(effectivePerson.getDistinguishedName());
-					result.error(exception);
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统根据员工姓名查询组织信息时发生异常!name:"+effectivePerson.getDistinguishedName());
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.firstProcessAttendanceAppeal(id, unitName, topUnitName, effectivePerson.getDistinguishedName(), // processorName
-						new Date(), // processTime
-						wrapIn.getOpinion1(), // opinion
-						wrapIn.getStatus() // status审批状态:0-待处理,1-审批通过,-1-审批不能过,2-需要下一次审批
-				);
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wi extends AttendanceAppealInfo {
-		
-		private static final long serialVersionUID = -5076990764713538973L;
-		
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 114
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAppealProcessSecond.java

@@ -1,114 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAppealProcessSecond extends BaseAction {
-	
-	private static Logger logger = LoggerFactory.getLogger( ActionAppealProcessSecond.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id, JsonElement jsonElement ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		String unitName = null;
-		String topUnitName = null;
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		Wi wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.get(id);
-				if (attendanceAppealInfo == null) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealNotExists(id);
-					result.error(exception);
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询考勤申诉信息记录数据时发生异常。ID:"+ id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				unitName = userManagerService.getUnitNameWithPersonName(effectivePerson.getDistinguishedName());
-				if (unitName != null) {
-					topUnitName = userManagerService.getTopUnitNameWithUnitName( unitName );
-				} else {
-					check = false;
-					Exception exception = new ExceptionPersonHasNoUnit(effectivePerson.getDistinguishedName());
-					result.error(exception);
-				}
-			} catch (Exception e) {
-				check = false;
-				result.error(e);
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统根据员工姓名查询组织信息时发生异常!name:"+effectivePerson.getDistinguishedName());
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.secondProcessAttendanceAppeal(id, unitName, topUnitName, effectivePerson.getDistinguishedName(), // processorName
-						new Date(), // processTime
-						wrapIn.getOpinion2(), // opinion
-						wrapIn.getStatus() // status
-				);
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				check = false;
-				result.error(e);
-				Exception exception = new ExceptionAttendanceAppealProcess(e, id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wi extends AttendanceAppealInfo {
-		
-		private static final long serialVersionUID = -5076990764713538973L;
-		
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 228
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAttendanceDetailAppeal.java

@@ -1,228 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.assemble.control.jaxrs.AppealConfig;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAttendanceDetailAppeal extends BaseAction {
-	
-	private static Logger logger = LoggerFactory.getLogger( ActionAttendanceDetailAppeal.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id, JsonElement jsonElement ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		AttendanceDetail attendanceDetail = null;
-		String appealAuditPersonName = null;
-		String appealCheckPersonName = null;
-		String appeal_auditor_type = null;
-		String appeal_checker_type = null;
-		String personName = null;
-		Wi wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-		if (check) {
-			try {
-				attendanceDetail = attendanceDetailServiceAdv.get( id );
-				if ( attendanceDetail == null ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailNotExists(id);
-					result.error(exception);
-				}else {
-					personName = attendanceDetail.getEmpName();
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询员工打卡信息时发生异常!ID:"+id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			// 利用打卡记录中的信息,创建一个申诉信息记录
-			attendanceAppealInfo = attendanceSettingServiceAdv.composeAppealInfoWithDetailInfo(attendanceDetail, 
-					wrapIn.getReason(), wrapIn.getAppealReason(),  wrapIn.getSelfHolidayType(),  wrapIn.getAddress(), 
-					wrapIn.getStartTime(),  wrapIn.getEndTime(),  wrapIn.getAppealDescription() );
-		}
-		if (check) {
-			try {
-				appeal_auditor_type = attendanceSettingServiceAdv.getValueByCode( "APPEAL_AUDITOR_TYPE" );
-				appeal_checker_type = attendanceSettingServiceAdv.getValueByCode( "APPEAL_CHECKER_TYPE" );
-			}catch( Exception e ) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess( e, "系统在获取申诉审核配置时发生异常!" );
-				result.error( exception);
-				logger.error( e, effectivePerson, request, null);
-			}
-		}
-		//查询申诉审核人
-		if (check) {
-			if( StringUtils.isNotEmpty( appeal_auditor_type ) ) {
-				try {
-					appealAuditPersonName = attendanceAppealInfoServiceAdv.getAppealAuditPerson( personName, attendanceAppealInfo.getUnitName(), wrapIn.getIdentity() );
-					attendanceAppealInfo.setProcessPerson1( appealAuditPersonName );
-					attendanceAppealInfo.setCurrentProcessor( appealAuditPersonName );// 将第一个处理人设置为当前处理人
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据根据考勤人员查询申诉审核人信息时发生异常!personName:"+personName );
-					result.error(exception);
-					logger.warn( "系统在根据根据考勤人员查询申诉审核人信息时发生异常!personName:"+personName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		//查询申诉复核人
-		if (check) {
-			if( StringUtils.isNotEmpty( appeal_checker_type ) ) {
-				try {
-					appealCheckPersonName = attendanceAppealInfoServiceAdv.getAppealCheckPerson( personName, attendanceAppealInfo.getUnitName(), wrapIn.getIdentity() );
-					attendanceAppealInfo.setProcessPerson2( appealCheckPersonName );
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据根据考勤人员查询申诉复核人信息时发生异常!personName:"+personName );
-					result.error(exception);
-					logger.warn( "系统在根据根据考勤人员查询申诉复核人信息时发生异常!personName:"+personName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		//查询申诉审核人所属组织
-		if (check) {
-			if( AppealConfig.APPEAL_AUDITTYPE_UNITDUTY.equalsIgnoreCase( appeal_auditor_type ) ) {
-				attendanceAppealInfo.setProcessPersonUnit1( attendanceAppealInfoServiceAdv.getPersonUnitName( appealAuditPersonName, attendanceDetail.getUnitName(), wrapIn.getIdentity() ) );
-			}else {
-				//汇报对象,指定人以及人员属性中指定的人员,根据人员姓名取首选组织(第一个)
-				if( appealAuditPersonName != null  && !appealAuditPersonName.isEmpty() ) {
-					try {//获取审核人组织信息
-						attendanceAppealInfo.setProcessPersonUnit1( userManagerService.getUnitNameWithPersonName( appealAuditPersonName ));
-					}catch( Exception e ) {
-						check = false;
-						Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据审核人获取组织信息时发生异常。");
-						result.error(exception);
-						logger.warn( "系统在根据审核人获取组织信息时发生异常!personName:"+appealAuditPersonName );
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-			}
-		}
-		//根据所属组织名称查询申诉审核人所属顶层组织
-		if (check) {
-			if( attendanceAppealInfo.getProcessPersonUnit1() != null  && !attendanceAppealInfo.getProcessPersonUnit1().isEmpty() ) {
-				try {
-					attendanceAppealInfo.setProcessPersonTopUnit1( userManagerService.getTopUnitNameWithUnitName( attendanceAppealInfo.getProcessPersonUnit1() ) );
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据审核人获取顶层组织信息时发生异常。");
-					result.error(exception);
-					logger.warn( "系统在根据审核人获取顶层组织信息时发生异常!personName:"+appealAuditPersonName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		//查询申诉复核人所属组织
-		if (check) {
-			if( AppealConfig.APPEAL_AUDITTYPE_UNITDUTY.equalsIgnoreCase( appeal_auditor_type ) ) {
-				attendanceAppealInfo.setProcessPersonUnit2( attendanceAppealInfoServiceAdv.getPersonUnitName( appealCheckPersonName, attendanceDetail.getUnitName(), wrapIn.getIdentity() ) );
-			}else {
-				//汇报对象,指定人以及人员属性中指定的人员,根据人员姓名取首选组织(第一个)
-				if( appealCheckPersonName != null  && !appealCheckPersonName.isEmpty() ) {
-					try {//获取复核人组织信息
-						attendanceAppealInfo.setProcessPersonUnit2( userManagerService.getUnitNameWithPersonName( appealCheckPersonName ));
-					}catch( Exception e ) {
-						check = false;
-						Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据复核人获取组织信息时发生异常。");
-						result.error(exception);
-						logger.warn( "系统在根据审核人获取组织信息时发生异常!personName:"+appealCheckPersonName );
-						logger.error(e, effectivePerson, request, null);
-					}
-				}
-			}
-		}
-		//根据所属组织名称查询申诉复核人所属顶层组织
-		if (check) {
-			if( attendanceAppealInfo.getProcessPersonUnit2() != null  && !attendanceAppealInfo.getProcessPersonUnit2().isEmpty() ) {
-				try {//获取复核人顶层组织信息
-					attendanceAppealInfo.setProcessPersonTopUnit2(  userManagerService.getTopUnitNameWithUnitName( attendanceAppealInfo.getProcessPersonUnit2()) );
-				}catch( Exception e ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据复核人获取顶层组织信息时发生异常。");
-					result.error(exception);
-					logger.warn( "系统在根据审核人获取顶层组织信息时发生异常!personName:"+appealCheckPersonName );
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		//保存申诉信息
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.saveNewAppeal( attendanceAppealInfo );
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在保存考勤申诉信息息时发生异常。");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			// 填充申诉信息内容 - 申诉信息成功生成.尝试向当前处理人[" + attendanceAppealInfo.getCurrentProcessor() + "]发送消息通知......
-			try {
-				attendanceNoticeService.notifyAttendanceAppealProcessness1Message(attendanceAppealInfo);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "申诉信息提交成功,向申诉当前处理人发送通知消息发生异常!name:"+attendanceAppealInfo.getProcessPerson1());
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wi extends AttendanceAppealInfo {
-		
-		private static final long serialVersionUID = -5076990764713538973L;
-		
-		public static List<String> Excludes = new ArrayList<String>(JpaObject.FieldsUnmodify);
-
-		/**
-		 * 考勤人员身份:如果考勤人员属于多个组织,可以选择一个身份进行申诉信息绑定
-		 */
-		private String identity = null;
-
-		public String getIdentity() {
-			return identity;
-		}
-
-		public void setIdentity(String identity) {
-			this.identity = identity;
-		}
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 46
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionAttendanceDetailArchive.java

@@ -1,46 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.StringUtils;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAttendanceDetailArchive extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAttendanceDetailArchive.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-
-		if ( StringUtils.isNotEmpty( id )) { // 归档指定的考勤申诉记录
-			try {
-				attendanceAppealInfoServiceAdv.archive(id);
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				result.error(e);
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "归档考勤打卡申诉信息时发生异常。ID:" + id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		} else { // 归档所有的考勤申诉记录
-			try {
-				attendanceAppealInfoServiceAdv.archiveAll();
-			} catch (Exception e) {
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "归档全部考勤申诉信息数据时发生异常");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 43
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionDelete.java

@@ -1,43 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionDelete extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionDelete.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		Boolean check = true;
-
-		if (check) {
-			if (id == null || id.isEmpty() || "(0)".equals(id)) {
-				check = false;
-				result.error(new Exception("传入的id为空,或者不合法,无法查询数据。"));
-			}
-		}
-		if (check) {
-			try {
-				attendanceAppealInfoServiceAdv.delete(id);
-				result.setData(new Wo(id));
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在删除考勤打卡申诉信息时发生异常。ID:" + id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 63
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionGet.java

@@ -1,63 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionGet extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionGet.class);
-
-	protected ActionResult<Wo> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id)
-			throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		Wo wrap = null;
-		AttendanceAppealInfo attendanceAppealInfo = null;
-		Boolean check = true;
-		if (check) {
-			if (id == null || id.isEmpty() || "(0)".equals(id)) {
-				check = false;
-				result.error(new Exception("传入的id为空,或者不合法,无法查询数据。"));
-			}
-		}
-		if (check) {
-			try {
-				attendanceAppealInfo = attendanceAppealInfoServiceAdv.get(id);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在根据ID查询考勤打卡记录数据时发生异常。ID:" + id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			if (attendanceAppealInfo != null) {
-				try {
-					wrap = Wo.copier.copy(attendanceAppealInfo);
-					result.setData(wrap);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceAppealProcess(e, "系统在转换申诉信息为输出对象时发生异常!");
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		return result;
-	}
-
-	public static class Wo extends AttendanceAppealInfo {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceAppealInfo, Wo> copier = WrapCopierFactory.wo(AttendanceAppealInfo.class,
-				Wo.class, null, JpaObject.FieldsInvisible);
-
-	}
-}

+ 0 - 87
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionListNextWithFilter.java

@@ -1,87 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionListNextWithFilter extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListNextWithFilter.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id,
-			Integer count, JsonElement jsonElement) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		List<Wo> wraps = null;
-		Long total = 0L;
-		List<AttendanceAppealInfo> detailList = null;
-		WrapInFilterAppeal wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, WrapInFilterAppeal.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-		if (check) {
-			try {
-				EntityManagerContainer emc = EntityManagerContainerFactory.instance().create();
-				Business business = new Business(emc);
-
-				// 查询出ID对应的记录的sequence
-				Object sequence = null;
-				if (id == null || "(0)".equals(id) || id.isEmpty()) {
-					logger.debug(effectivePerson, ">>>>>>>>>>第一页查询,没有id传入");
-				} else {
-					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
-						sequence = PropertyUtils.getProperty(emc.find(id, AttendanceAppealInfo.class),  JpaObject.sequence_FIELDNAME);
-					}
-				}
-				// 从数据库中查询符合条件的一页数据对象
-				detailList = business.getAttendanceAppealInfoFactory().listIdsNextWithFilter(id, count, sequence,
-						wrapIn);
-				// 从数据库中查询符合条件的对象总数
-				total = business.getAttendanceAppealInfoFactory().getCountWithFilter(wrapIn);
-				// 将所有查询出来的有状态的对象转换为可以输出的过滤过属性的对象
-				wraps = Wo.copier.copy(detailList);
-
-				// 对查询的列表进行排序
-				result.setCount(total);
-			} catch (Throwable th) {
-				th.printStackTrace();
-				result.error(th);
-			}
-		}
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wo extends AttendanceAppealInfo {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceAppealInfo, Wo> copier = WrapCopierFactory.wo(AttendanceAppealInfo.class,
-				Wo.class, null, JpaObject.FieldsInvisible);
-
-	}
-}

+ 0 - 91
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/ActionListPrevWithFilter.java

@@ -1,91 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceAppealInfo;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionListPrevWithFilter extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListPrevWithFilter.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id,
-			Integer count, JsonElement jsonElement) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		List<Wo> wraps = null;
-		Long total = 0L;
-		List<AttendanceAppealInfo> detailList = null;
-		WrapInFilterAppeal wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, WrapInFilterAppeal.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-		if (check) {
-			try {
-				EntityManagerContainer emc = EntityManagerContainerFactory.instance().create();
-				Business business = new Business(emc);
-
-				// 查询出ID对应的记录的sequence
-				Object sequence = null;
-				if (id == null || "(0)".equals(id) || id.isEmpty()) {
-					logger.debug(effectivePerson, ">>>>>>>>>>第一页查询,没有id传入");
-				} else {
-					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
-						sequence = PropertyUtils.getProperty(emc.find(id, AttendanceAppealInfo.class),  JpaObject.sequence_FIELDNAME);
-					}
-				}
-				// 从数据库中查询符合条件的一页数据对象
-				detailList = business.getAttendanceAppealInfoFactory().listIdsPrevWithFilter(id, count, sequence,
-						wrapIn);
-				// 从数据库中查询符合条件的对象总数
-				total = business.getAttendanceAppealInfoFactory().getCountWithFilter(wrapIn);
-				// 将所有查询出来的有状态的对象转换为可以输出的过滤过属性的对象
-				wraps = Wo.copier.copy(detailList);
-
-				// 对查询的列表进行排序
-				result.setCount(total);
-				
-			} catch (Throwable th) {
-				th.printStackTrace();
-				result.error(th);
-			}
-		}
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wo extends AttendanceAppealInfo {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static List<String> Excludes = new ArrayList<String>();
-
-		public static WrapCopier<AttendanceAppealInfo, Wo> copier = WrapCopierFactory.wo(AttendanceAppealInfo.class,
-				Wo.class, null, JpaObject.FieldsInvisible);
-
-	}
-}

+ 0 - 231
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/AttendanceAppealInfoAction.java

@@ -1,231 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.google.gson.JsonElement;
-
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("attendanceappealInfo")
-@JaxrsDescribe("考勤结果申诉信息管理服务")
-public class AttendanceAppealInfoAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(AttendanceAppealInfoAction.class);
-
-	@JaxrsMethodDescribe(value = "根据ID获取考勤结果申诉信息", action = ActionGet.class)
-	@GET
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("考勤申诉信息ID") @PathParam("id") String id) {
-		ActionResult<ActionGet.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-
-		if (check) {
-			try {
-				result = new ActionGet().execute(request, effectivePerson, id);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据ID获取信息时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据ID删除考勤结果申诉信息", action = ActionDelete.class)
-	@DELETE
-	@Path("{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("考勤申诉信息ID") @PathParam("id") String id) {
-		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionDelete().execute(request, effectivePerson, id);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据ID删除信息时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	/**
-	 * 对某条打卡记录进行申诉
-	 * 
-	 * @param request
-	 * @param id
-	 * @param wrapIn
-	 * @return
-	 */
-	@JaxrsMethodDescribe(value = "根据ID对考勤结果申诉信息提起申诉", action = ActionAppealCreate.class)
-	@PUT
-	@Path("appeal/{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void create(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("考勤申诉信息ID") @PathParam("id") String id, JsonElement jsonElement) {
-		ActionResult<ActionAppealCreate.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionAppealCreate().execute(request, effectivePerson, id, jsonElement);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据ID对打卡结果进行申诉时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据ID列表对考勤申诉信息进行审核操作, 参数:ids(申诉ID列表),opinion(审核意见), status(审核状态:1-通过;2-需要进行复核;-1-不通过)", action = ActionAppealAudit.class)
-	@PUT
-	@Path("audit")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void audit(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			JsonElement jsonElement) {
-		ActionResult<ActionAppealAudit.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionAppealAudit().execute(request, effectivePerson, jsonElement);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据ID殂对申诉信息进行审核时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据ID列表对考勤申诉信息进行复核操作, 参数:ids(申诉ID列表),opinion2(审核意见), status(审核状态:1-通过;-1-不通过)", action = ActionAppealCheck.class)
-	@PUT
-	@Path("check ")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void check(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			JsonElement jsonElement) {
-		ActionResult<ActionAppealCheck.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionAppealCheck().execute(request, effectivePerson, jsonElement);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据ID列表对申诉信息进行复核时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据根据过滤条件对考勤申诉信息进行下一页查询", action = ActionListNextWithFilter.class)
-	@PUT
-	@Path("filter/list/{id}/next/{count}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listNextWithFilter(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("最后一条信息ID") @PathParam("id") String id,
-			@JaxrsParameterDescribe("每页显示的条目数量") @PathParam("count") Integer count, JsonElement jsonElement) {
-		ActionResult<List<ActionListNextWithFilter.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionListNextWithFilter().execute(request, effectivePerson, id, count, jsonElement);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据条件对申诉信息进行下一页查询时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据根据过滤条件对考勤申诉信息进行上一页查询", action = ActionListPrevWithFilter.class)
-	@PUT
-	@Path("filter/list/{id}/prev/{count}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listPrevWithFilter(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("最后一条信息ID") @PathParam("id") String id,
-			@JaxrsParameterDescribe("每页显示的条目数量") @PathParam("count") Integer count, JsonElement jsonElement) {
-		ActionResult<List<ActionListPrevWithFilter.Wo>> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionListPrevWithFilter().execute(request, effectivePerson, id, count, jsonElement);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据条件对申诉信息进行上一页查询时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "根据ID对考勤申诉信息进行归档", action = ActionAppealArchive.class)
-	@GET
-	@Path("archive/{id}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void archive(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("考勤申诉信息ID") @PathParam("id") String id) {
-		ActionResult<ActionAppealArchive.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		Boolean check = true;
-		if (check) {
-			try {
-				result = new ActionAppealArchive().execute(request, effectivePerson, id);
-			} catch (Exception e) {
-				result = new ActionResult<>();
-				Exception exception = new ExceptionAttendanceAppealProcess(e, "根据ID对打卡结果进行归档时发生异常!");
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-}

+ 0 - 18
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/BaseAction.java

@@ -1,18 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import com.x.attendance.assemble.control.service.AttendanceAppealInfoServiceAdv;
-import com.x.attendance.assemble.control.service.AttendanceDetailServiceAdv;
-import com.x.attendance.assemble.control.service.AttendanceNoticeService;
-import com.x.attendance.assemble.control.service.AttendanceSettingServiceAdv;
-import com.x.attendance.assemble.control.service.UserManagerService;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-public class BaseAction extends StandardJaxrsAction{
-	
-	protected AttendanceAppealInfoServiceAdv attendanceAppealInfoServiceAdv = new AttendanceAppealInfoServiceAdv();
-	protected AttendanceDetailServiceAdv attendanceDetailServiceAdv = new AttendanceDetailServiceAdv();
-	protected UserManagerService userManagerService = new UserManagerService();
-	protected AttendanceNoticeService attendanceNoticeService = new AttendanceNoticeService();
-	protected AttendanceSettingServiceAdv attendanceSettingServiceAdv = new AttendanceSettingServiceAdv();
-
-}

+ 0 - 133
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/WrapInFilterAppeal.java

@@ -1,133 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo;
-
-import java.util.List;
-
-import com.x.base.core.project.bean.NameValueCountPair;
-import com.x.base.core.project.gson.GsonPropertyObject;
-
-public class WrapInFilterAppeal extends GsonPropertyObject {
-
-	private String detailId;
-	
-	private String empName;	
-	
-	private String topUnitName;	
-	
-	private String unitName;
-	
-	private String yearString;
-	
-	private String monthString;
-	
-	private String appealDateString;
-	
-	private String recordDateString;
-	
-	//审批状态:0-待处理,1-审批通过,-1-审批不能过,2-需要下一次审批
-	private int status = 999;
-	
-	private String appealReason;
-	
-	private String processPerson1;
-	
-	private String processPerson2;	
-	
-	private String order = "DESC";
-	
-	private String key;
-	
-	private List<NameValueCountPair> orAtrribute;
-	
-	public String getDetailId() {
-		return detailId;
-	}
-	public void setDetailId(String detailId) {
-		this.detailId = detailId;
-	}
-	public String getEmpName() {
-		return empName;
-	}
-	public void setEmpName(String empName) {
-		this.empName = empName;
-	}
-	public String getTopUnitName() {
-		return topUnitName;
-	}
-	public void setTopUnitName(String topUnitName) {
-		this.topUnitName = topUnitName;
-	}
-	public String getUnitName() {
-		return unitName;
-	}
-	public void setUnitName(String unitName) {
-		this.unitName = unitName;
-	}
-	public String getYearString() {
-		return yearString;
-	}
-	public void setYearString(String yearString) {
-		this.yearString = yearString;
-	}
-	public String getMonthString() {
-		return monthString;
-	}
-	public void setMonthString(String monthString) {
-		this.monthString = monthString;
-	}
-	public String getAppealDateString() {
-		return appealDateString;
-	}
-	public void setAppealDateString(String appealDateString) {
-		this.appealDateString = appealDateString;
-	}
-	public String getRecordDateString() {
-		return recordDateString;
-	}
-	public void setRecordDateString(String recordDateString) {
-		this.recordDateString = recordDateString;
-	}
-	public int getStatus() {
-		return status;
-	}
-	public void setStatus(int status) {
-		this.status = status;
-	}
-	public String getAppealReason() {
-		return appealReason;
-	}
-	public void setAppealReason(String appealReason) {
-		this.appealReason = appealReason;
-	}
-	public String getProcessPerson1() {
-		return processPerson1;
-	}
-	public void setProcessPerson1(String processPerson1) {
-		this.processPerson1 = processPerson1;
-	}
-	public String getProcessPerson2() {
-		return processPerson2;
-	}
-	public void setProcessPerson2(String processPerson2) {
-		this.processPerson2 = processPerson2;
-	}
-	public String getOrder() {
-		return order;
-	}
-	public void setOrder(String order) {
-		this.order = order;
-	}
-	public String getKey() {
-		return key;
-	}
-	public void setKey(String key) {
-		this.key = key;
-	}
-	public List<NameValueCountPair> getOrAtrribute() {
-		return orAtrribute;
-	}
-	public void setOrAtrribute(List<NameValueCountPair> orAtrribute) {
-		this.orAtrribute = orAtrribute;
-	}
-
-	
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionAttendanceAppealNotExists.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionAttendanceAppealNotExists extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionAttendanceAppealNotExists( String id ) {
-		super("员工打卡申诉信息不存在!ID:" + id );
-	}
-}

+ 0 - 16
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionAttendanceAppealProcess.java

@@ -1,16 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionAttendanceAppealProcess extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionAttendanceAppealProcess( Throwable e, String message ) {
-		super("用户在进行考勤结果申诉信息处理时发生异常!message:" + message, e );
-	}
-	
-	public ExceptionAttendanceAppealProcess( String message ) {
-		super( message );
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionAttendanceDetailNotExists.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionAttendanceDetailNotExists extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionAttendanceDetailNotExists( String id ) {
-		super("员工打卡信息不存在!ID:" + id );
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionPersonHasNoIdenitity.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionPersonHasNoIdenitity extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionPersonHasNoIdenitity( String name ) {
-		super("员工未设置身份信息,请检查员工所在组织是否正常!name:" + name );
-	}
-}

+ 0 - 12
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/exception/ExceptionPersonHasNoUnit.java

@@ -1,12 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.exception;
-
-import com.x.base.core.project.exception.PromptException;
-
-public class ExceptionPersonHasNoUnit extends PromptException {
-
-	private static final long serialVersionUID = 1859164370743532895L;
-
-	public ExceptionPersonHasNoUnit( String name ) {
-		super( "未能根据员工姓名查询到任何组织信息!name:" + name );
-	}
-}

+ 0 - 89
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionAnalyseAttendanceDetail.java

@@ -1,89 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.attendance.entity.AttendanceWorkDayConfig;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAnalyseAttendanceDetail extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAnalyseAttendanceDetail.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		AttendanceDetail detail = null;
-		List<AttendanceWorkDayConfig> attendanceWorkDayConfigList = null;
-		Map<String, Map<String, List<AttendanceStatisticalCycle>>> topUnitAttendanceStatisticalCycleMap = null;
-		Boolean check = true;
-
-		if (check) {
-			if (id == null || id.isEmpty()) {
-				check = false;
-				Exception exception = new ExceptionDetailIdEmpty();
-				result.error(exception);
-			}
-		}
-		if (check) {
-			try {
-				detail = attendanceDetailServiceAdv.get(id);
-				if (detail == null) {
-					check = false;
-					Exception exception = new ExceptionDetailNotExists(id);
-					result.error(exception);
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统根据ID查询考勤打卡信息时发生异常。" + id );
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				attendanceWorkDayConfigList = attendanceWorkDayConfigServiceAdv.listAll();
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统在根据ID列表查询工作节假日配置信息列表时发生异常!" );
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				topUnitAttendanceStatisticalCycleMap = attendanceStatisticCycleServiceAdv.getCycleMapFormAllCycles( effectivePerson.getDebugger() );
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统在查询并且组织所有的统计周期时发生异常." );
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if (check) {
-			try {
-				attendanceDetailAnalyseServiceAdv.analyseAttendanceDetail( detail, attendanceWorkDayConfigList, topUnitAttendanceStatisticalCycleMap, effectivePerson.getDebugger()  );
-				logger.debug( effectivePerson, ">>>>>>>>>>attendance detail analyse completed.person:" + detail.getEmpName() + ", date:" + detail.getRecordDateString());
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e, "系统分析员工打卡信息时发生异常!ID:" + id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		logger.debug( effectivePerson, ">>>>>>>>>>attendance detail analyse progress exit.");
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 82
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionAnalyseAttendanceDetails.java

@@ -1,82 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.assemble.control.processor.monitor.StatusSystemImportOpt;
-import com.x.attendance.assemble.control.processor.sender.SenderForAnalyseData;
-import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.attendance.entity.AttendanceWorkDayConfig;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionAnalyseAttendanceDetails extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionAnalyseAttendanceDetails.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String startDate, String endDate ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		List<String> personNames = null;
-		List<AttendanceWorkDayConfig> attendanceWorkDayConfigList = null;
-		Map<String, Map<String, List<AttendanceStatisticalCycle>>> topUnitAttendanceStatisticalCycleMap = null;
-		StatusSystemImportOpt statusSystemImportOpt = StatusSystemImportOpt.getInstance();
-		Boolean check = true;
-
-		if( statusSystemImportOpt.getProcessing() ) {
-			check = false;
-			Exception exception = new ExceptionAttendanceDetailProcess( "考勤数据处理器正在处理数据中,请稍候再试......" );
-			result.error(exception);
-		}
-		
-		if (check) {
-			try {
-				personNames = attendanceDetailServiceAdv.getAllAnalysenessPersonNames( startDate, endDate );
-				if( personNames == null || personNames.isEmpty() ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess( "暂时未查询到需要分析的打卡数据." + "开始日期:" + startDate + ", 结束日期:" + endDate );
-					result.error(exception);
-				}
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e, "系统根据开始时间和结束时间查询需要分析的员工姓名列表时发生异常." + "开始日期:" + startDate + ", 结束日期:" + endDate );
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		
-		if ( check ) {
-			try {
-				attendanceWorkDayConfigList = attendanceWorkDayConfigServiceAdv.listAll();
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统在根据ID列表查询工作节假日配置信息列表时发生异常!" );
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if ( check ) {
-			try {// 查询所有的周期配置,组织成Map
-				topUnitAttendanceStatisticalCycleMap = attendanceStatisticCycleServiceAdv.getCycleMapFormAllCycles( effectivePerson.getDebugger() );
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统在查询并且组织所有的统计周期时发生异常." );
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-		if ( check ) {
-			new SenderForAnalyseData().execute( personNames, startDate, endDate, attendanceWorkDayConfigList, topUnitAttendanceStatisticalCycleMap, effectivePerson.getDebugger() );
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 50
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionArchiveAttendanceDetail.java

@@ -1,50 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.StringUtils;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionArchiveAttendanceDetail extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionArchiveAttendanceDetail.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		Boolean check = true;
-
-		if (check) {
-			if ( StringUtils.isNotEmpty( id )) {
-				try {
-					attendanceDetailServiceAdv.archive(id);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e, "系统归档员工打卡信息时发生异常!ID:" + id);
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-			} else {
-				try {
-					attendanceDetailServiceAdv.archiveAll();
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e, "系统归档员工打卡信息时发生异常!ID:" + id);
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-			}
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 101
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionCheckWithPersonByCycle.java

@@ -1,101 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.assemble.control.processor.monitor.StatusSystemImportOpt;
-import com.x.attendance.assemble.control.processor.sender.SenderForSupplementData;
-import com.x.attendance.entity.AttendanceEmployeeConfig;
-import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionCheckWithPersonByCycle extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionCheckWithPersonByCycle.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String cycleYear, String cycleMonth ) throws Exception {
-		logger.debug( effectivePerson, ">>>>>>>>>>系统尝试对统计周期[" + cycleYear + "-" + cycleMonth + "]的打卡数据核对......");
-		ActionResult<Wo> result = new ActionResult<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		Map<String, Map<String, List<AttendanceStatisticalCycle>>> topUnitAttendanceStatisticalCycleMap = null;
-		List<AttendanceEmployeeConfig> attendanceEmployeeConfigList = null;
-		StatusSystemImportOpt statusSystemImportOpt = StatusSystemImportOpt.getInstance();
-		Boolean check = true;
-		
-		if( statusSystemImportOpt.getProcessing() ) {
-			check = false;
-			Exception exception = new ExceptionAttendanceDetailProcess( "考勤数据处理器正在处理数据中,请稍候再试......" );
-			result.error(exception);
-		}
-		
-		if (check) {
-			//查询系统是否正在进行数据操作
-			if( statusSystemImportOpt.getProcessing() ) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( "系统正在进行数据处理,请稍候再进行数据操作." );
-				result.error( exception );
-			}else {
-				statusSystemImportOpt.setProcessing( true );
-			}
-		}
-		
-		if (check) {
-			if ( cycleYear == null || cycleYear.isEmpty() ) {
-				check = false;
-				Exception exception = new ExceptionCycleYearEmpty();
-				result.error(exception);
-			}
-		}
-		
-		if (check) {
-			if ( cycleMonth == null || cycleMonth.isEmpty() ) {
-				check = false;
-				Exception exception = new ExceptionCycleMonthEmpty();
-				result.error(exception);
-			}
-		}
-		
-		if ( check ) {
-			try {
-				attendanceEmployeeConfigList = attendanceEmployeeConfigServiceAdv.listByConfigType( "REQUIRED" );
-				if( attendanceEmployeeConfigList == null || attendanceEmployeeConfigList.isEmpty() ) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess( "系统未获取到需要考勤的人员配置,尚不需要补录任何信息." );
-					result.error( exception );
-				}
-			} catch ( Exception e ) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统在查询需要考勤的人员配置列表时发生异常." );
-				result.error( exception );
-				logger.error( e, currentPerson, request, null );
-			}
-		}
-		
-		if (check) {
-			try {// 查询所有的统计周期配置,组织成Map
-				topUnitAttendanceStatisticalCycleMap = attendanceStatisticCycleServiceAdv.getCycleMapFormAllCycles( effectivePerson.getDebugger() );
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess( e, "系统在查询并且组织所有的统计周期时发生异常." );
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		if (check) {
-			new SenderForSupplementData().execute( attendanceEmployeeConfigList, topUnitAttendanceStatisticalCycleMap, cycleYear, cycleMonth, effectivePerson.getDebugger() );
-		}
-		
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 47
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionDelete.java

@@ -1,47 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckRemoveType;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionDelete extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionDelete.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			// 先判断需要操作的应用信息是否存在,根据ID进行一次查询,如果不存在不允许继续操作
-			AttendanceDetail attendanceDetail = emc.find(id, AttendanceDetail.class);
-			if ( null == attendanceDetail ) {
-				Exception exception = new ExceptionDetailNotExists(id);
-				result.error(exception);
-			} else {
-				// 进行数据库持久化操作
-				emc.beginTransaction(AttendanceDetail.class);
-				emc.remove(attendanceDetail, CheckRemoveType.all);
-				emc.commit();
-				result.setData( new Wo(id) );
-			}
-		} catch (Exception e) {
-			Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在删除员工打卡信息时发生异常。ID:" + id);
-			result.error(exception);
-			logger.error(e, effectivePerson, request, null);
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 49
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionDeleteMobile.java

@@ -1,49 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceDetailMobile;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckRemoveType;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionDeleteMobile extends BaseAction {
-	
-	private static  Logger logger = LoggerFactory.getLogger( ActionDeleteMobile.class );
-	
-	protected ActionResult<Wo> execute( HttpServletRequest request, EffectivePerson effectivePerson, String id ) throws Exception {
-		
-		ActionResult<Wo> result = new ActionResult<>();
-
-		try ( EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			//先判断需要操作的应用信息是否存在,根据ID进行一次查询,如果不存在不允许继续操作
-			AttendanceDetailMobile attendanceDetailMobile = emc.find(id, AttendanceDetailMobile.class);
-			if ( null == attendanceDetailMobile ) {
-				Exception exception = new ExceptionDetaillMobileNotExists( id );
-				result.error( exception );
-			}else{
-				//进行数据库持久化操作				
-				emc.beginTransaction( AttendanceDetailMobile.class );
-				emc.remove( attendanceDetailMobile, CheckRemoveType.all );
-				emc.commit();
-				result.setData( new Wo(id) );
-				logger.info( "成功删除打卡数据信息。id=" + id );
-			}			
-		} catch ( Exception e ) {
-			Exception exception = new ExceptionDetaillMobileNotExists( id );
-			result.error( exception );
-			logger.error( e, effectivePerson, request, null);
-		}
-		return result;
-	}
-	
-	public static class Wo extends WoId {
-		public Wo( String id ) {
-			setId( id );
-		}
-	}
-}

+ 0 - 71
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionGet.java

@@ -1,71 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionGet extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionGet.class);
-
-	protected ActionResult<Wo> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id)
-			throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		Wo wrap = null;
-		AttendanceDetail attendanceDetail = null;
-		Boolean check = true;
-
-		if (check) {
-			if (id == null) {
-				check = false;
-				Exception exception = new ExceptionDetailIdEmpty();
-				result.error(exception);
-			}
-		}
-		if (check) {
-			try {
-				attendanceDetail = attendanceDetailServiceAdv.get(id);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在根据ID查询员工打卡信息时发生异常!ID:" + id);
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		if (check) {
-			if (attendanceDetail == null) {
-				check = false;
-				Exception exception = new ExceptionDetailNotExists(id);
-				result.error(exception);
-			}
-		}
-		if (check) {
-			try {
-				wrap = Wo.copier.copy(attendanceDetail);
-				result.setData(wrap);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在转换员工打卡信息为输出对象时发生异常.");
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		return result;
-	}
-
-	public static class Wo extends AttendanceDetail {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceDetail, Wo> copier = WrapCopierFactory.wo(AttendanceDetail.class, Wo.class,
-				null, JpaObject.FieldsInvisible);
-	}
-
-}

+ 0 - 71
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionGetMobile.java

@@ -1,71 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceDetailMobile;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionGetMobile extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionGetMobile.class);
-
-	protected ActionResult<Wo> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id)
-			throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		Wo wrap = null;
-		AttendanceDetailMobile attendanceDetailMobile = null;
-		Boolean check = true;
-
-		if (check) {
-			if (id == null) {
-				check = false;
-				Exception exception = new ExceptionDetailMobileIdEmpty();
-				result.error(exception);
-			}
-		}
-		if (check) {
-			try {
-				attendanceDetailMobile = attendanceDetailServiceAdv.getMobile(id);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在根据ID查询员工手机打卡信息时发生异常!ID:" + id);
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		if (check) {
-			if (attendanceDetailMobile == null) {
-				check = false;
-				Exception exception = new ExceptionDetaillMobileNotExists(id);
-				result.error(exception);
-			}
-		}
-		if (check) {
-			try {
-				wrap = Wo.copier.copy(attendanceDetailMobile);
-				result.setData(wrap);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在转换员工手机打卡信息为输出对象时发生异常.");
-				result.error(exception);
-				logger.error(e, currentPerson, request, null);
-			}
-		}
-		return result;
-	}
-
-	public static class Wo extends AttendanceDetailMobile {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceDetailMobile, Wo> copier = WrapCopierFactory.wo(AttendanceDetailMobile.class,
-				Wo.class, null, JpaObject.FieldsInvisible);
-	}
-
-}

+ 0 - 83
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListImportByFileName.java

@@ -1,83 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionListImportByFileName extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListImportByFileName.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson,
-			String file_id) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		List<Wo> wraps = new ArrayList<>();
-		List<String> ids = null;
-		List<AttendanceDetail> attendanceDetailList = null;
-		Boolean check = true;
-
-		if (check) {
-			if (file_id == null) {
-				check = false;
-				Exception exception = new ExceptionFileIdEmpty();
-				result.error(exception);
-			}
-		}
-		if (check) {
-			try {
-				ids = attendanceDetailServiceAdv.listByBatchName(file_id);
-			} catch (Exception e) {
-				check = false;
-				Exception exception = new ExceptionAttendanceDetailProcess(e,
-						"系统在根据打卡信息导入文件ID查询员工打卡信息时发生异常!FileId:" + file_id);
-				result.error(exception);
-				logger.error(e, effectivePerson, request, null);
-			}
-		}
-
-		if (check) {
-			if (ids != null && !ids.isEmpty()) {
-				try {
-					attendanceDetailList = attendanceDetailServiceAdv.list(ids);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e,
-							"系统根据开始时间和结束时间查询需要分析的员工打卡信息ID列表时发生异常!");
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		if (check) {
-			if (attendanceDetailList != null && !attendanceDetailList.isEmpty()) {
-				try {
-					wraps = Wo.copier.copy(attendanceDetailList);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在转换员工打卡信息为输出对象时发生异常.");
-					result.error(exception);
-					logger.error(e, effectivePerson, request, null);
-				}
-			}
-		}
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wo extends AttendanceDetail {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceDetail, Wo> copier = WrapCopierFactory.wo(AttendanceDetail.class, Wo.class,
-				null, JpaObject.FieldsInvisible);
-	}
-}

+ 0 - 242
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListMobileWithFilter.java

@@ -1,242 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import org.apache.commons.lang3.StringUtils;
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.common.date.DateOperation;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceDetailMobile;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionListMobileWithFilter extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListMobileWithFilter.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson, Integer page,
-			Integer count, JsonElement jsonElement) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		List<Wo> wraps = new ArrayList<>();
-		List<Wo> allResultWrap = null;
-		List<AttendanceDetailMobile> attendanceDetailMobileList = null;
-		Date datetime = null;
-		DateOperation dateOperation = new DateOperation();
-		Long total = 0L;
-		Integer selectTotal = 0;
-		Boolean check = true;
-		Wi wrapIn = null;
-		Boolean queryConditionIsNull = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, Wi.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, currentPerson, request, null);
-		}
-
-		if (check) {
-			if (page == null) {
-				page = 1;
-			}
-		}
-		if (check) {
-			if (count == null) {
-				count = 20;
-			}
-		}
-		if (page <= 0) {
-			page = 1;
-		}
-		if (count <= 0) {
-			count = 20;
-		}
-		if (check) {
-			if ( StringUtils.isNotEmpty( wrapIn.getEmpNo() )) {
-				queryConditionIsNull = false;
-			}
-			if ( StringUtils.isNotEmpty( wrapIn.getEmpName() )) {
-				queryConditionIsNull = false;
-			}
-			if ( StringUtils.isNotEmpty( wrapIn.getStartDate() )) {
-				queryConditionIsNull = false;
-				if ( StringUtils.isNotEmpty( wrapIn.getEndDate() )) {
-					wrapIn.setEndDate(wrapIn.getStartDate());
-				}
-			}
-			if (queryConditionIsNull) {
-				check = false;
-				Exception exception = new ExceptionQueryParameterEmpty();
-				result.error(exception);
-			}
-		}
-		if (check) {
-			if ( StringUtils.isNotEmpty( wrapIn.getEndDate() )) {
-				try {
-					datetime = dateOperation.getDateFromString(wrapIn.getEndDate());
-					wrapIn.setEndDate(dateOperation.getDateStringFromDate(datetime, "YYYY-MM-DD")); // 结束日期
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e,
-							"查询结束日期格式异常,格式:yyyy-mm-dd.日期:" + wrapIn.getEndDate());
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-				if ( StringUtils.isNotEmpty( wrapIn.getEndDate() )) {
-					wrapIn.setEndDate(wrapIn.getStartDate());
-				}
-			}
-			if ( StringUtils.isNotEmpty( wrapIn.getStartDate() )) {
-				try {
-					datetime = dateOperation.getDateFromString(wrapIn.getStartDate());
-					wrapIn.setStartDate(dateOperation.getDateStringFromDate(datetime, "YYYY-MM-DD")); // 开始日期
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e,
-							"查询开始日期格式异常,格式:yyyy-mm-dd.日期:" + wrapIn.getEndDate());
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-			}
-		}
-		// 查询的最大条目数
-		selectTotal = page * count;
-		if (check) {
-			if (selectTotal > 0) {
-				try {
-					total = attendanceDetailServiceAdv.countAttendanceDetailMobileForPage(wrapIn.getEmpNo(),
-							wrapIn.getEmpName(), wrapIn.getSignDescription(), wrapIn.getStartDate(),
-							wrapIn.getEndDate());
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e,
-							"根据条件查询员工手机打卡信息条目数时发生异常." + "EmpNo:" + wrapIn.getEmpNo() + ", EmpName:"
-									+ wrapIn.getEmpName() + ", SignDescription:" + wrapIn.getSignDescription()
-									+ ", StartDate:" + wrapIn.getStartDate() + ", EndDate:" + wrapIn.getEndDate());
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-			}
-		}
-		if (check) {
-			if (selectTotal > 0 && total > 0) {
-				try {
-					attendanceDetailMobileList = attendanceDetailServiceAdv.listAttendanceDetailMobileForPage(
-							wrapIn.getEmpNo(), wrapIn.getEmpName(), wrapIn.getSignDescription(), wrapIn.getStartDate(),
-							wrapIn.getEndDate(), selectTotal);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e,
-							"根据条件查询员工手机打卡信息列表时发生异常." + "EmpNo:" + wrapIn.getEmpNo() + ", EmpName:" + wrapIn.getEmpName()
-									+ ", SignDescription:" + wrapIn.getSignDescription() + ", StartDate:"
-									+ wrapIn.getStartDate() + ", EndDate:" + wrapIn.getEndDate());
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-			}
-		}
-		if (check) {
-			if (attendanceDetailMobileList != null && !attendanceDetailMobileList.isEmpty()) {
-				try {
-					allResultWrap = Wo.copier.copy(attendanceDetailMobileList);
-				} catch (Exception e) {
-					check = false;
-					Exception exception = new ExceptionAttendanceDetailProcess(e, "系统在转换员工手机打卡信息为输出对象时发生异常.");
-					result.error(exception);
-					logger.error(e, currentPerson, request, null);
-				}
-			}
-		}
-		if (check) {
-			int startIndex = (page - 1) * count;
-			int endIndex = page * count;
-			for (int i = 0; allResultWrap != null && i < allResultWrap.size(); i++) {
-				if (i >= startIndex && i < endIndex) {
-					wraps.add(allResultWrap.get(i));
-				}
-			}
-		}
-		result.setCount(total);
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wi {
-
-		@FieldDescribe("员工号,根据员工号查询记录")
-		private String empNo;
-
-		@FieldDescribe("员工姓名,根据员工姓名查询记录.")
-		private String empName;
-
-		@FieldDescribe("开始日期:yyyy-mm-dd.")
-		private String startDate;
-
-		@FieldDescribe("结束日期:yyyy-mm-dd,如果开始日期填写,结束日期不填写就是只查询开始日期那一天")
-		private String endDate;
-
-		@FieldDescribe("打卡说明:上班打卡,下班打卡.")
-		private String signDescription;
-
-		public String getEmpNo() {
-			return empNo;
-		}
-
-		public void setEmpNo(String empNo) {
-			this.empNo = empNo;
-		}
-
-		public String getEmpName() {
-			return empName;
-		}
-
-		public void setEmpName(String empName) {
-			this.empName = empName;
-		}
-
-		public String getStartDate() {
-			return startDate;
-		}
-
-		public void setStartDate(String startDate) {
-			this.startDate = startDate;
-		}
-
-		public String getEndDate() {
-			return endDate;
-		}
-
-		public void setEndDate(String endDate) {
-			this.endDate = endDate;
-		}
-
-		public String getSignDescription() {
-			return signDescription;
-		}
-
-		public void setSignDescription(String signDescription) {
-			this.signDescription = signDescription;
-		}
-
-	}
-
-	public static class Wo extends AttendanceDetailMobile {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceDetailMobile, Wo> copier = WrapCopierFactory.wo(AttendanceDetailMobile.class,
-				Wo.class, null, JpaObject.FieldsInvisible);
-	}
-}

+ 0 - 128
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListNextWithFilter.java

@@ -1,128 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionListNextWithFilter extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListNextWithFilter.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id,
-			Integer count, JsonElement jsonElement) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		List<Wo> wraps = new ArrayList<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		long total = 0;
-		List<AttendanceDetail> detailList = null;
-		List<String> topUnitNames = new ArrayList<String>();
-		List<String> unitNames = new ArrayList<String>();
-		List<String> topUnitNames_tmp = null;
-		List<String> unitNames_tmp = null;
-		WrapInFilter wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, WrapInFilter.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, currentPerson, request, null);
-		}
-		if (check) {
-			try {
-				EntityManagerContainer emc = EntityManagerContainerFactory.instance().create();
-				Business business = new Business(emc);
-
-				// 查询出ID对应的记录的sequence
-				Object sequence = null;
-				if (id == null || "(0)".equals(id) || id.isEmpty()) {
-				} else {
-					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
-						sequence = PropertyUtils.getProperty(emc.find(id, AttendanceDetail.class),  JpaObject.sequence_FIELDNAME);
-					}
-				}
-
-				// 处理一下顶层组织,查询下级顶层组织
-				if ( StringUtils.isNotEmpty( wrapIn.getQ_topUnitName() )) {
-					topUnitNames.add(wrapIn.getQ_topUnitName());
-					try {
-						topUnitNames_tmp = userManagerService.listSubUnitNameWithParent(wrapIn.getQ_topUnitName());
-					} catch (Exception e) {
-						Exception exception = new ExceptionAttendanceDetailProcess(e,
-								"根据顶层组织顶层组织列示所有下级组织名称发生异常!TopUnit:" + wrapIn.getQ_topUnitName());
-						result.error(exception);
-						logger.error(e, currentPerson, request, null);
-					}
-					if (topUnitNames_tmp != null && topUnitNames_tmp.size() > 0) {
-						for (String topUnitName : topUnitNames_tmp) {
-							topUnitNames.add(topUnitName);
-						}
-					}
-					wrapIn.setTopUnitNames(topUnitNames);
-				}
-
-				// 处理一下组织,查询下级组织
-				if ( StringUtils.isNotEmpty( wrapIn.getQ_unitName() )) {
-					unitNames.add(wrapIn.getQ_unitName());
-					try {
-						unitNames_tmp = userManagerService.listSubUnitNameWithParent(wrapIn.getQ_unitName());
-					} catch (Exception e) {
-						Exception exception = new ExceptionAttendanceDetailProcess(e,
-								"根据组织名称列示所有下级组织名称发生异常!Unit:" + wrapIn.getQ_unitName());
-						result.error(exception);
-						logger.error(e, currentPerson, request, null);
-					}
-					if (unitNames_tmp != null && unitNames_tmp.size() > 0) {
-						for (String unitName : unitNames_tmp) {
-							unitNames.add(unitName);
-						}
-					}
-					wrapIn.setUnitNames(unitNames);
-				}
-
-				// 从数据库中查询符合条件的一页数据对象
-				detailList = business.getAttendanceDetailFactory().listIdsNextWithFilter(id, count, sequence, wrapIn);
-				// 从数据库中查询符合条件的对象总数
-				total = business.getAttendanceDetailFactory().getCountWithFilter(wrapIn);
-				// 将所有查询出来的有状态的对象转换为可以输出的过滤过属性的对象
-				wraps = Wo.copier.copy(detailList);
-				
-			} catch (Throwable th) {
-				th.printStackTrace();
-				result.error(th);
-			}
-		}
-		result.setCount(total);
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wo extends AttendanceDetail {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceDetail, Wo> copier = WrapCopierFactory.wo(AttendanceDetail.class, Wo.class,
-				null, JpaObject.FieldsInvisible);
-	}
-}

+ 0 - 129
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionListPrevWithFilter.java

@@ -1,129 +0,0 @@
-package com.x.attendance.assemble.control.jaxrs.attendancedetail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.attendance.assemble.control.Business;
-import com.x.attendance.assemble.control.ExceptionWrapInConvert;
-import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ActionListPrevWithFilter extends BaseAction {
-
-	private static  Logger logger = LoggerFactory.getLogger(ActionListPrevWithFilter.class);
-
-	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson, String id,
-			Integer count, JsonElement jsonElement) throws Exception {
-		ActionResult<List<Wo>> result = new ActionResult<>();
-		List<Wo> wraps = new ArrayList<>();
-		EffectivePerson currentPerson = this.effectivePerson(request);
-		long total = 0;
-		List<AttendanceDetail> detailList = null;
-		List<String> topUnitNames = new ArrayList<String>();
-		List<String> unitNames = new ArrayList<String>();
-		List<String> topUnitNames_tmp = null;
-		List<String> unitNames_tmp = null;
-		WrapInFilter wrapIn = null;
-		Boolean check = true;
-
-		try {
-			wrapIn = this.convertToWrapIn(jsonElement, WrapInFilter.class);
-		} catch (Exception e) {
-			check = false;
-			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
-			result.error(exception);
-			logger.error(e, currentPerson, request, null);
-		}
-		if (check) {
-			try {
-				EntityManagerContainer emc = EntityManagerContainerFactory.instance().create();
-				Business business = new Business(emc);
-
-				// 查询出ID对应的记录的sequence
-				Object sequence = null;
-				if (id == null || "(0)".equals(id) || id.isEmpty()) {
-				} else {
-					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
-						sequence = PropertyUtils.getProperty(emc.find(id, AttendanceDetail.class),  JpaObject.sequence_FIELDNAME);
-					}
-				}
-
-				// 处理一下顶层组织,查询下级顶层组织
-				if ( StringUtils.isNotEmpty( wrapIn.getQ_topUnitName() )) {
-					topUnitNames.add(wrapIn.getQ_topUnitName());
-					try {
-						topUnitNames_tmp = userManagerService.listSubUnitNameWithParent(wrapIn.getQ_topUnitName());
-					} catch (Exception e) {
-						Exception exception = new ExceptionAttendanceDetailProcess(e,
-								"根据顶层组织顶层组织列示所有下级组织名称发生异常!TopUnit:" + wrapIn.getQ_topUnitName());
-						result.error(exception);
-						logger.error(e, currentPerson, request, null);
-					}
-					if (topUnitNames_tmp != null && topUnitNames_tmp.size() > 0) {
-						for (String topUnitName : topUnitNames_tmp) {
-							topUnitNames.add(topUnitName);
-						}
-					}
-					wrapIn.setTopUnitNames(topUnitNames);
-				}
-
-				// 处理一下组织,查询下级组织
-				if ( StringUtils.isNotEmpty( wrapIn.getQ_topUnitName() )) {
-					unitNames.add(wrapIn.getQ_topUnitName());
-					try {
-						unitNames_tmp = userManagerService.listSubUnitNameWithParent(wrapIn.getQ_topUnitName());
-					} catch (Exception e) {
-						Exception exception = new ExceptionAttendanceDetailProcess(e,
-								"根据组织名称列示所有下级组织名称发生异常!Unit:" + wrapIn.getQ_topUnitName());
-						result.error(exception);
-						logger.error(e, currentPerson, request, null);
-					}
-					if (unitNames_tmp != null && unitNames_tmp.size() > 0) {
-						for (String unitName : unitNames_tmp) {
-							unitNames.add(unitName);
-						}
-					}
-					wrapIn.setUnitNames(unitNames);
-				}
-
-				// 从数据库中查询符合条件的一页数据对象
-				detailList = business.getAttendanceDetailFactory().listIdsPrevWithFilter(id, count, sequence, wrapIn);
-				// 从数据库中查询符合条件的对象总数
-				total = business.getAttendanceDetailFactory().getCountWithFilter(wrapIn);
-				// 将所有查询出来的有状态的对象转换为可以输出的过滤过属性的对象
-				wraps = Wo.copier.copy(detailList);
-				
-
-			} catch (Throwable th) {
-				th.printStackTrace();
-				result.error(th);
-			}
-		}
-		result.setCount(total);
-		result.setData(wraps);
-		return result;
-	}
-
-	public static class Wo extends AttendanceDetail {
-
-		private static final long serialVersionUID = -5076990764713538973L;
-
-		public static WrapCopier<AttendanceDetail, Wo> copier = WrapCopierFactory.wo(AttendanceDetail.class, Wo.class,
-				null, JpaObject.FieldsInvisible);
-	}
-}

Некоторые файлы не были показаны из-за большого количества измененных файлов