caixiangyi 8 лет назад
Родитель
Сommit
614c0f30a8
100 измененных файлов с 2019 добавлено и 815 удалено
  1. 105 0
      x_attendance_assemble_control/jest/logger.js
  2. 1 1
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/common/date/DateOperation.java
  3. 21 7
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/ApplicationServletContextListener.java
  4. 62 55
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/Business.java
  5. 20 18
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/ThisApplication.java
  6. 10 15
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailFactory.java
  7. 0 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailMobileFactory.java
  8. 1 0
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceImportFileInfoFactory.java
  9. 1 0
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceSettingFactory.java
  10. 1 0
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/StatisticDepartmentForMonthFactory.java
  11. 10 10
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceadmin/AttendanceAdminAction.java
  12. 34 35
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/AttendanceAppealInfoAction.java
  13. 81 82
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancedetail/AttendanceDetailAction.java
  14. 20 20
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancedetail/AttendanceDetailMobileAction.java
  15. 15 15
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceemployeeconfig/AttendanceEmployeeConfigAction.java
  16. 13 12
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceimportfileinfo/AttendanceImportFileInfoAction.java
  17. 29 29
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceschedulesetting/AttendanceScheduleSettingAction.java
  18. 19 19
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancesetting/AttendanceSettingAction.java
  19. 2 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/AttendanceStatisticAction.java
  20. 81 82
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/AttendanceStatisticShowAction.java
  21. 15 15
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatisticalcycle/AttendanceStatisticalCycleAction.java
  22. 6 6
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatisticrequirelog/AttendanceStatisticRequireLogAction.java
  23. 10 10
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceworkdayconfig/AttendanceWorkDayConfigAction.java
  24. 10 10
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/fileimport/AttendanceDetailFileImportAction.java
  25. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/fileimport/AttendancePersonExcelReader.java
  26. 16 17
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/selfholiday/AttendanceSelfHolidayAction.java
  27. 7 7
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/selfholiday/AttendanceSelfHolidaySimpleAction.java
  28. 5 4
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/uuid/UUIDAction.java
  29. 14 14
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/workplace/AttendanceWorkPlaceAction.java
  30. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceAppealInfoServiceAdv.java
  31. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java
  32. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailService.java
  33. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailServiceAdv.java
  34. 2 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceSettingService.java
  35. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticService.java
  36. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticServiceAdv.java
  37. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticalCycleService.java
  38. 3 2
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticalCycleServiceAdv.java
  39. 7 17
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/servlet/download/DownloadServlet.java
  40. 14 19
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/servlet/download/ExportAbnormalCaseDetailsServlet.java
  41. 93 56
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/servlet/download/ExportSelfHolidayDetailsServlet.java
  42. 8 4
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/task/AttendanceStatisticTask.java
  43. 10 4
      x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/task/MobileRecordAnalyseTask.java
  44. 2 2
      x_attendance_assemble_control/src/main/resources/META-INF/persistence.xml
  45. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceAdmin_.java
  46. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceAppealInfo_.java
  47. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceDetailMobile_.java
  48. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceDetail_.java
  49. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceEmployeeConfig_.java
  50. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceImportFileInfo_.java
  51. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceScheduleSetting_.java
  52. 2 2
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceSelfHoliday.java
  53. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceSelfHoliday_.java
  54. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceSetting_.java
  55. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceStatisticRequireLog_.java
  56. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceStatisticalCycle_.java
  57. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceWorkDayConfig_.java
  58. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceWorkPlace_.java
  59. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticCompanyForDay_.java
  60. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticCompanyForMonth_.java
  61. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticDepartmentForDay_.java
  62. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticDepartmentForMonth_.java
  63. 1 1
      x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticPersonForMonth_.java
  64. 14 14
      x_attendance_core_entity/src/main/resources/META-INF/persistence.xml
  65. 0 1
      x_attendance_core_entity/x_attendance_core_entity_build.xml
  66. 4 0
      x_base_core_project/src/main/java/com/x/base/core/DefaultCharset.java
  67. 5 0
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/AbstractActionApplication.java
  68. 2 0
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/AnonymousJaxrsFilter.java
  69. 0 2
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CacheJaxrsFilter.java
  70. 3 1
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CipherJaxrsFilter.java
  71. 3 1
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CipherManagerJaxrsFilter.java
  72. 2 0
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CipherManagerUserJaxrsFilter.java
  73. 8 0
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/ClockScheduleJaxrsFilter.java
  74. 0 2
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/DruidFilter.java
  75. 0 2
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/EchoJaxrsFilter.java
  76. 3 1
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/ManagerUserJaxrsFilter.java
  77. 3 1
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/UserJaxrsFilter.java
  78. 16 4
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/cache/CacheAction.java
  79. 1 1
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/echo/EchoAction.java
  80. 48 46
      x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/logger/LoggerAction.java
  81. 6 2
      x_base_core_project/src/main/java/com/x/base/core/application/servlet/AbstractServletAction.java
  82. 21 15
      x_base_core_project/src/main/java/com/x/base/core/cache/ApplicationCache.java
  83. 1 1
      x_base_core_project/src/main/java/com/x/base/core/container/factory/SlicePropertiesBuilder.java
  84. 1 1
      x_base_core_project/src/main/java/com/x/base/core/entity/JpaObject_.java
  85. 1 1
      x_base_core_project/src/main/java/com/x/base/core/entity/SliceJpaObject_.java
  86. 58 12
      x_base_core_project/src/main/java/com/x/base/core/entity/StorageObject.java
  87. 1 1
      x_base_core_project/src/main/java/com/x/base/core/entity/StorageObject_.java
  88. 4 2
      x_base_core_project/src/main/java/com/x/base/core/entity/item/ItemConverter.java
  89. 0 5
      x_base_core_project/src/main/java/com/x/base/core/entity/tools/JpaObjectTools.java
  90. 44 38
      x_base_core_project/src/main/java/com/x/base/core/http/ActionResult.java
  91. 1 1
      x_base_core_project/src/main/java/com/x/base/core/http/FilterTools.java
  92. 3 2
      x_base_core_project/src/main/java/com/x/base/core/http/HttpToken.java
  93. 16 16
      x_base_core_project/src/main/java/com/x/base/core/http/annotation/tools/HttpMethodDescribeWriter.java
  94. 11 13
      x_base_core_project/src/main/java/com/x/base/core/logger/Logger.java
  95. 120 0
      x_base_core_project/src/main/java/com/x/base/core/project/Application.java
  96. 121 0
      x_base_core_project/src/main/java/com/x/base/core/project/Applications.java
  97. 360 0
      x_base_core_project/src/main/java/com/x/base/core/project/Context.java
  98. 117 0
      x_base_core_project/src/main/java/com/x/base/core/project/bean/WrapCopier.java
  99. 195 0
      x_base_core_project/src/main/java/com/x/base/core/project/bean/WrapCopierFactory.java
  100. 34 0
      x_base_core_project/src/main/java/com/x/base/core/project/clock/ClockScheduleTask.java

+ 105 - 0
x_attendance_assemble_control/jest/logger.js

@@ -0,0 +1,105 @@
+logger_parameter = {};
+
+function logger_init() {
+    $('#result').html('');
+    $('#content').html('');
+    var str = '<table border="1" width="100%">';
+    str += '<tr><td colspan="2"><a href="#" id="get">get</a>&nbsp<a href="#" id="trace">trace</a>&nbsp;<a href="#" id="debug">debug</a>&nbsp;<a href="#" id="info">info</a>&nbsp;<a href="#" id="warn">warn</a></td></tr>';
+    str += '<tr><td>debug:</td><td id="level">&nbsp;</td></tr>';
+    str += '</table>';
+    $('#content').html(str);
+    $('#get').click(function() {
+	logger_get();
+    });
+    $('#trace').click(function() {
+	logger_trace();
+    });
+    $('#debug').click(function() {
+	logger_debug();
+    });
+    $('#info').click(function() {
+	logger_info();
+    });
+    $('#warn').click(function() {
+	logger_warn();
+    });
+}
+
+function logger_get() {
+    $.ajax({
+	type : 'get',
+	dataType : 'json',
+	url : '../jaxrs/logger',
+	contentType : 'application/json; charset=utf-8',
+	xhrFields : {
+	    'withCredentials' : true
+	},
+	crossDomain : true
+    }).done(function(json) {
+	if (json.type == 'success') {
+	    $('#level').html(json.data.value);
+	}
+    }).always(function(json) {
+	$('#result').html(JSON.stringify(json, null, 4));
+    });
+}
+
+function logger_trace() {
+    $.ajax({
+	type : 'get',
+	dataType : 'json',
+	url : '../jaxrs/logger/trace',
+	contentType : 'application/json; charset=utf-8',
+	xhrFields : {
+	    'withCredentials' : true
+	},
+	crossDomain : true
+    }).always(function(json) {
+	$('#result').html(JSON.stringify(json, null, 4));
+    });
+}
+
+function logger_debug() {
+    $.ajax({
+	type : 'get',
+	dataType : 'json',
+	url : '../jaxrs/logger/debug',
+	contentType : 'application/json; charset=utf-8',
+	xhrFields : {
+	    'withCredentials' : true
+	},
+	crossDomain : true
+    }).always(function(json) {
+	$('#result').html(JSON.stringify(json, null, 4));
+    });
+}
+
+function logger_info() {
+    $.ajax({
+	type : 'get',
+	dataType : 'json',
+	url : '../jaxrs/logger/info',
+	contentType : 'application/json; charset=utf-8',
+	xhrFields : {
+	    'withCredentials' : true
+	},
+	crossDomain : true
+    }).always(function(json) {
+	$('#result').html(JSON.stringify(json, null, 4));
+    });
+}
+
+function logger_warn() {
+    $.ajax({
+	type : 'get',
+	dataType : 'json',
+	url : '../jaxrs/logger/warn',
+	contentType : 'application/json; charset=utf-8',
+	xhrFields : {
+	    'withCredentials' : true
+	},
+	crossDomain : true
+    }).always(function(json) {
+	$('#result').html(JSON.stringify(json, null, 4));
+    });
+}

+ 1 - 1
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/common/date/DateOperation.java

@@ -761,7 +761,7 @@ public class DateOperation {
 	 * @throws Exception 
 	 */
 	public Date getLastDateInMonth(Date recordDate) throws Exception {
-		Date lastDate = getLastDayOfMonth(recordDate);
+		Date lastDate = getLastDayOfMonth( recordDate );
 		return getDateFromString( getDateStringFromDate( lastDate, "yyyy-MM-dd") );
 	}
 	

+ 21 - 7
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/ApplicationServletContextListener.java

@@ -1,18 +1,32 @@
 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.AbstractApplicationServletContextListener;
-import com.x.base.core.project.ThisApplicationClass;
-import com.x.base.core.project.x_attendance_assemble_control;
+import com.x.base.core.project.Context;
 
 @WebListener
-@ThisApplicationClass(ThisApplication.class)
-public class ApplicationServletContextListener extends AbstractApplicationServletContextListener {
+public class ApplicationServletContextListener implements ServletContextListener {
 
 	@Override
-	public Class<?> getThis() {
-		return x_attendance_assemble_control.class;
+	public void contextInitialized(ServletContextEvent servletContextEvent) {
+		try {
+			ThisApplication.context = Context.concrete(servletContextEvent);
+			ThisApplication.init();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	@Override
+	public void contextDestroyed(ServletContextEvent servletContextEvent) {
+		try {
+			ThisApplication.destroy();
+			ThisApplication.context.destrory(servletContextEvent);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 	}
 
 }

+ 62 - 55
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/Business.java

@@ -25,184 +25,191 @@ import com.x.organization.core.express.Organization;
 public class Business {
 
 	private EntityManagerContainer emc;
-	
+
 	public Business(EntityManagerContainer emc) throws Exception {
 		this.emc = emc;
 	}
+
 	public EntityManagerContainer entityManagerContainer() {
 		return this.emc;
 	}
-	
-	//人员组织业务处理类
+
+	// 人员组织业务处理类
 	private Organization organization;
-	//系统配置业务处理类
+	// 系统配置业务处理类
 	private AttendanceSettingFactory attendanceSettingFactory;
-	//工作场所配置业务处理类
+	// 工作场所配置业务处理类
 	private AttendanceWorkPlaceFactory attendanceWorkPlaceFactory;
-	//节假日工作日配置业务处理类
+	// 节假日工作日配置业务处理类
 	private AttendanceWorkDayConfigFactory attendanceWorkDayConfigFactory;
-	//人员考勤数据导入文件操作业务处理类
+	// 人员考勤数据导入文件操作业务处理类
 	private AttendanceImportFileInfoFactory attendanceImportFileInfoFactory;
-	//人员考勤数据业务处理类
+	// 人员考勤数据业务处理类
 	private AttendanceDetailFactory attendanceDetailFactory;
 	private AttendanceDetailMobileFactory attendanceDetailMobileFactory;
-	//考勤管理员业务处理类
+	// 考勤管理员业务处理类
 	private AttendanceAdminFactory attendanceAdminFactory;
-	//排班管理业务处理类
+	// 排班管理业务处理类
 	private AttendanceScheduleSettingFactory attendanceScheduleSettingFactory;
-	//休假申请数据业务处理类
+	// 休假申请数据业务处理类
 	private AttendanceSelfHolidayFactory attendanceSelfHolidayFactory;
-	
+
 	private StatisticCompanyForDayFactory statisticCompanyForDayFactory;
-	
+
 	private StatisticCompanyForMonthFactory statisticCompanyForMonthFactory;
-	
+
 	private StatisticDepartmentForDayFactory statisticDepartmentForDayFactory;
-	
+
 	private StatisticDepartmentForMonthFactory statisticDepartmentForMonthFactory;
-	
+
 	private StatisticPersonForMonthFactory statisticPersonForMonthFactory;
-	
+
 	private AttendanceAppealInfoFactory attendanceAppealInfoFactory;
-	
+
 	private AttendanceStatisticalCycleFactory attendanceStatisticalCycleFactory;
-	
+
 	private AttendanceEmployeeConfigFactory attendanceEmployeeConfigFactory;
-	
+
 	private AttendanceStatisticRequireLogFactory attendanceStatisticRequireLogFactory;
-	
+
 	private AttendanceDetailStatisticFactory attendanceDetailStatisticFactory;
-	
+
 	public AttendanceWorkPlaceFactory attendanceWorkPlaceFactory() throws Exception {
 		if (null == this.attendanceWorkPlaceFactory) {
-			this.attendanceWorkPlaceFactory = new AttendanceWorkPlaceFactory( this );
+			this.attendanceWorkPlaceFactory = new AttendanceWorkPlaceFactory(this);
 		}
 		return attendanceWorkPlaceFactory;
 	}
-	
+
 	public AttendanceDetailMobileFactory getAttendanceDetailMobileFactory() throws Exception {
 		if (null == this.attendanceDetailMobileFactory) {
-			this.attendanceDetailMobileFactory = new AttendanceDetailMobileFactory( this );
+			this.attendanceDetailMobileFactory = new AttendanceDetailMobileFactory(this);
 		}
 		return attendanceDetailMobileFactory;
 	}
-	
+
 	public AttendanceDetailStatisticFactory getAttendanceDetailStatisticFactory() throws Exception {
 		if (null == this.attendanceDetailStatisticFactory) {
-			this.attendanceDetailStatisticFactory = new AttendanceDetailStatisticFactory( this );
+			this.attendanceDetailStatisticFactory = new AttendanceDetailStatisticFactory(this);
 		}
 		return attendanceDetailStatisticFactory;
 	}
-	
+
 	public AttendanceEmployeeConfigFactory getAttendanceEmployeeConfigFactory() throws Exception {
 		if (null == this.attendanceEmployeeConfigFactory) {
-			this.attendanceEmployeeConfigFactory = new AttendanceEmployeeConfigFactory( this );
+			this.attendanceEmployeeConfigFactory = new AttendanceEmployeeConfigFactory(this);
 		}
 		return attendanceEmployeeConfigFactory;
 	}
-	
+
 	public AttendanceStatisticRequireLogFactory getAttendanceStatisticRequireLogFactory() throws Exception {
 		if (null == this.attendanceStatisticRequireLogFactory) {
-			this.attendanceStatisticRequireLogFactory = new AttendanceStatisticRequireLogFactory( this );
+			this.attendanceStatisticRequireLogFactory = new AttendanceStatisticRequireLogFactory(this);
 		}
 		return attendanceStatisticRequireLogFactory;
 	}
-	
+
 	public AttendanceStatisticalCycleFactory getAttendanceStatisticalCycleFactory() throws Exception {
 		if (null == this.attendanceStatisticalCycleFactory) {
-			this.attendanceStatisticalCycleFactory = new AttendanceStatisticalCycleFactory( this );
+			this.attendanceStatisticalCycleFactory = new AttendanceStatisticalCycleFactory(this);
 		}
 		return attendanceStatisticalCycleFactory;
 	}
-	
+
 	public AttendanceAppealInfoFactory getAttendanceAppealInfoFactory() throws Exception {
 		if (null == this.attendanceAppealInfoFactory) {
-			this.attendanceAppealInfoFactory = new AttendanceAppealInfoFactory( this );
+			this.attendanceAppealInfoFactory = new AttendanceAppealInfoFactory(this);
 		}
 		return attendanceAppealInfoFactory;
 	}
-	
+
 	public StatisticCompanyForDayFactory getStatisticCompanyForDayFactory() throws Exception {
 		if (null == this.statisticCompanyForDayFactory) {
-			this.statisticCompanyForDayFactory = new StatisticCompanyForDayFactory( this );
+			this.statisticCompanyForDayFactory = new StatisticCompanyForDayFactory(this);
 		}
 		return statisticCompanyForDayFactory;
 	}
+
 	public StatisticCompanyForMonthFactory getStatisticCompanyForMonthFactory() throws Exception {
 		if (null == this.statisticCompanyForMonthFactory) {
-			this.statisticCompanyForMonthFactory = new StatisticCompanyForMonthFactory( this );
+			this.statisticCompanyForMonthFactory = new StatisticCompanyForMonthFactory(this);
 		}
 		return statisticCompanyForMonthFactory;
 	}
+
 	public StatisticDepartmentForDayFactory getStatisticDepartmentForDayFactory() throws Exception {
 		if (null == this.statisticDepartmentForDayFactory) {
-			this.statisticDepartmentForDayFactory = new StatisticDepartmentForDayFactory( this );
+			this.statisticDepartmentForDayFactory = new StatisticDepartmentForDayFactory(this);
 		}
 		return statisticDepartmentForDayFactory;
 	}
+
 	public StatisticDepartmentForMonthFactory getStatisticDepartmentForMonthFactory() throws Exception {
 		if (null == this.statisticDepartmentForMonthFactory) {
-			this.statisticDepartmentForMonthFactory = new StatisticDepartmentForMonthFactory( this );
+			this.statisticDepartmentForMonthFactory = new StatisticDepartmentForMonthFactory(this);
 		}
 		return statisticDepartmentForMonthFactory;
 	}
+
 	public StatisticPersonForMonthFactory getStatisticPersonForMonthFactory() throws Exception {
 		if (null == this.statisticPersonForMonthFactory) {
-			this.statisticPersonForMonthFactory = new StatisticPersonForMonthFactory( this );
+			this.statisticPersonForMonthFactory = new StatisticPersonForMonthFactory(this);
 		}
 		return statisticPersonForMonthFactory;
 	}
+
 	public Organization organization() throws Exception {
 		if (null == this.organization) {
-			this.organization = new Organization();
+			this.organization = new Organization(ThisApplication.context());
 		}
 		return organization;
 	}
-	
+
 	public AttendanceSettingFactory getAttendanceSettingFactory() throws Exception {
 		if (null == this.attendanceSettingFactory) {
-			this.attendanceSettingFactory = new AttendanceSettingFactory( this );
+			this.attendanceSettingFactory = new AttendanceSettingFactory(this);
 		}
 		return attendanceSettingFactory;
 	}
-	
+
 	public AttendanceWorkDayConfigFactory getAttendanceWorkDayConfigFactory() throws Exception {
 		if (null == this.attendanceWorkDayConfigFactory) {
-			this.attendanceWorkDayConfigFactory = new AttendanceWorkDayConfigFactory( this );
+			this.attendanceWorkDayConfigFactory = new AttendanceWorkDayConfigFactory(this);
 		}
 		return attendanceWorkDayConfigFactory;
 	}
-	
+
 	public AttendanceImportFileInfoFactory getAttendanceImportFileInfoFactory() throws Exception {
 		if (null == this.attendanceImportFileInfoFactory) {
-			this.attendanceImportFileInfoFactory = new AttendanceImportFileInfoFactory( this );
+			this.attendanceImportFileInfoFactory = new AttendanceImportFileInfoFactory(this);
 		}
 		return attendanceImportFileInfoFactory;
 	}
-	
+
 	public AttendanceDetailFactory getAttendanceDetailFactory() throws Exception {
 		if (null == this.attendanceDetailFactory) {
-			this.attendanceDetailFactory = new AttendanceDetailFactory( this );
+			this.attendanceDetailFactory = new AttendanceDetailFactory(this);
 		}
 		return attendanceDetailFactory;
 	}
+
 	public AttendanceAdminFactory getAttendanceAdminFactory() throws Exception {
 		if (null == this.attendanceAdminFactory) {
-			this.attendanceAdminFactory = new AttendanceAdminFactory( this );
+			this.attendanceAdminFactory = new AttendanceAdminFactory(this);
 		}
 		return attendanceAdminFactory;
 	}
-	
+
 	public AttendanceScheduleSettingFactory getAttendanceScheduleSettingFactory() throws Exception {
 		if (null == this.attendanceScheduleSettingFactory) {
-			this.attendanceScheduleSettingFactory = new AttendanceScheduleSettingFactory( this );
+			this.attendanceScheduleSettingFactory = new AttendanceScheduleSettingFactory(this);
 		}
 		return attendanceScheduleSettingFactory;
 	}
-	
+
 	public AttendanceSelfHolidayFactory getAttendanceSelfHolidayFactory() throws Exception {
 		if (null == this.attendanceSelfHolidayFactory) {
-			this.attendanceSelfHolidayFactory = new AttendanceSelfHolidayFactory( this );
+			this.attendanceSelfHolidayFactory = new AttendanceSelfHolidayFactory(this);
 		}
 		return attendanceSelfHolidayFactory;
 	}

+ 20 - 18
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/ThisApplication.java

@@ -3,28 +3,30 @@ package com.x.attendance.assemble.control;
 import com.x.attendance.assemble.control.service.AttendanceSettingService;
 import com.x.attendance.assemble.control.task.AttendanceStatisticTask;
 import com.x.attendance.assemble.control.task.MobileRecordAnalyseTask;
-import com.x.base.core.project.AbstractThisApplication;
-import com.x.base.core.project.ReportTask;
-import com.x.collaboration.core.message.Collaboration;
+import com.x.base.core.project.Context;
 
-public class ThisApplication extends AbstractThisApplication {
+public class ThisApplication{
 	
-	public static void init() throws Exception {
-		/* 启动报告任务 */
-		timerWithFixedDelay(new ReportTask(), 1, 20);
-		initDatasFromCenters();
-		initStoragesFromCenters();
-		timerWithFixedDelay(new AttendanceStatisticTask(), 60 * 20, 60 * 60 * 12 );
-		timerWithFixedDelay( new MobileRecordAnalyseTask(), 60 * 30, 60 * 60 * 10 );
-		Collaboration.start();
-		initAllSystemConfig();
+	protected static Context context;
+	
+	public static Context context() {
+		return context;
 	}
-
-	public static void destroy() throws Exception {
-		Collaboration.stop();
+	
+	public static void init() throws Exception {
+		try {
+			new AttendanceSettingService().initAllSystemConfig();
+			context().schedule( AttendanceStatisticTask.class, "0 0 0/4 * * ?");
+			context().schedule( MobileRecordAnalyseTask.class, "0 0 1/4 * * ?");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 	}
 	
-	private static void initAllSystemConfig() {
-		new AttendanceSettingService().initAllSystemConfig();
+	public static void destroy() {
+		try {
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 	}
 }

+ 10 - 15
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailFactory.java

@@ -147,7 +147,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 				p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
 			}
 		}
-		return em.createQuery(cq.where(p)).setMaxResults(10000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	@MethodDescribe("按指定的开始时间,结束时间列示未被分析的AttendanceDetail信息列表")
@@ -191,7 +191,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 				p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
 			}
 		}
-		return em.createQuery(cq.where(p)).setMaxResults(10000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	@MethodDescribe("按指定的年份,月份列示AttendanceDetail信息列表")
@@ -239,7 +239,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	/**
@@ -288,7 +288,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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(1000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的公司名称列表")
@@ -320,7 +320,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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(1000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的公司名称列表")
@@ -336,7 +336,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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(1000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的部门名称列表")
@@ -352,7 +352,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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(1000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 	
 	@MethodDescribe("按指定的统计周期年份,月份列示AttendanceDetail信息中涉及的部门名称列表")
@@ -369,7 +369,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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(1000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 
 
@@ -703,9 +703,6 @@ public class AttendanceDetailFactory extends AbstractFactory {
 			sql_stringBuffer.append(" order by o.sequence " + order );
 		}
 		
-		//logger.debug("listIdsPrevWithFilter:["+sql_stringBuffer.toString()+"]");
-		//logger.debug( vs );
-		
 		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceDetail.class );
 		//为查询设置所有的参数值
 		for (int i = 0; i < vs.size(); i++) {
@@ -802,8 +799,6 @@ public class AttendanceDetailFactory extends AbstractFactory {
 			vs.add( wrapIn.getIsLeaveEarlier() );
 			index++;
 		}
-		//logger.debug("listIdsPrevWithFilter:["+sql_stringBuffer.toString()+"]");
-		//logger.debug( vs );
 		
 		Query query = em.createQuery( sql_stringBuffer.toString(), AttendanceDetail.class );
 		//为查询设置所有的参数值
@@ -874,7 +869,7 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		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(2000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 
 	public List<String> listAnalysenessDetailsByEmployee( String empName ) throws Exception {
@@ -888,6 +883,6 @@ public class AttendanceDetailFactory extends AbstractFactory {
 		statusArray.add( 0 ); //未分析的
 		statusArray.add( -1 ); //有错误的
 		p = cb.and( p, root.get( AttendanceDetail_.recordStatus).in( statusArray ));
-		return em.createQuery(cq.where(p)).setMaxResults(10000).getResultList();
+		return em.createQuery(cq.where(p)).setMaxResults(20000).getResultList();
 	}
 }

+ 0 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailMobileFactory.java

@@ -10,10 +10,8 @@ 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.AttendanceDetailMobile;
 import com.x.attendance.entity.AttendanceDetailMobile_;
-import com.x.base.core.exception.ExceptionWhen;
 import com.x.base.core.utils.annotation.MethodDescribe;
 /**
  * 系统配置信息表基础功能服务类

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

@@ -8,6 +8,7 @@ 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;

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

@@ -8,6 +8,7 @@ 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;

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

@@ -11,6 +11,7 @@ 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.WrapInFilterStatisticDepartmentForMonth;

+ 10 - 10
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceadmin/AttendanceAdminAction.java

@@ -18,17 +18,17 @@ import com.google.gson.JsonElement;
 import com.x.attendance.assemble.control.service.AttendanceAdminServiceAdv;
 import com.x.attendance.assemble.control.service.UserManagerService;
 import com.x.attendance.entity.AttendanceAdmin;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendanceadmin")
@@ -72,7 +72,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceAdminWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -98,7 +98,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 				result.error( e );
 				Exception exception = new AttendanceAdminQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -110,7 +110,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceAdminWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -135,7 +135,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if( check ){
 			if( wrapIn.getOrganizationName() == null  || wrapIn.getOrganizationName().isEmpty() ){
@@ -145,7 +145,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new GetCurrentPersonCompanyNameException( e, currentPerson.getName() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 				wrapIn.setOrganizationName( companyName );
 			}
@@ -161,7 +161,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceAdminWrapCopyException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -172,7 +172,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceAdminSaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -202,7 +202,7 @@ public class AttendanceAdminAction extends StandardJaxrsAction{
     			check = false;
     			Exception exception = new AttendanceAdminDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
     		}
         }
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 34 - 35
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceappealinfo/AttendanceAppealInfoAction.java

@@ -27,20 +27,19 @@ import com.x.attendance.assemble.control.service.AttendanceNoticeService;
 import com.x.attendance.assemble.control.service.UserManagerService;
 import com.x.attendance.entity.AttendanceAppealInfo;
 import com.x.attendance.entity.AttendanceDetail;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
-import com.x.base.core.http.HttpAttribute;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.organization.core.express.wrap.WrapDepartment;
 import com.x.organization.core.express.wrap.WrapPerson;
 
@@ -78,7 +77,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;				
 				Exception exception = new AttendanceAppealQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
         }
         if( check ){
@@ -90,7 +89,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new AttendanceAppealWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
         	}
         }
@@ -121,7 +120,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new AttendanceAppealDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -157,7 +156,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		if( check ){
 			try {
@@ -166,7 +165,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new AttendanceDetailQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}		
 		if( check ){
@@ -199,7 +198,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new AttendanceDetailNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -230,19 +229,19 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 									check = false;
 									Exception exception = new PersonHasNoIdenitityException( wrapIn.getProcessPerson1() );
 									result.error( exception );
-									logger.error( exception, effectivePerson, request, null);
+								//	logger.error( e, effectivePerson, request, null);
 								}
 							}else{
 								check = false;
 								Exception exception = new PersonHasNoDepartmentException( wrapIn.getProcessPerson1() );
 								result.error( exception );
-								logger.error( exception, effectivePerson, request, null);
+							//	logger.error( e, effectivePerson, request, null);
 							}
 						} catch ( Exception e) {
 							check = false;
 							Exception exception = new QeuryDepartmentWithPersonException( e, wrapIn.getProcessPerson1() );
 							result.error( exception );
-							logger.error( exception, effectivePerson, request, null);
+							logger.error( e, effectivePerson, request, null);
 						}
 					}
 				}
@@ -276,19 +275,19 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 									check = false;
 									Exception exception = new PersonHasNoIdenitityException( wrapIn.getProcessPerson2() );
 									result.error( exception );
-									logger.error( exception, effectivePerson, request, null);
+								//	logger.error( e, effectivePerson, request, null);
 								}
 							}else{
 								check = false;
 								Exception exception = new PersonHasNoDepartmentException( wrapIn.getProcessPerson2() );
 								result.error( exception );
-								logger.error( exception, effectivePerson, request, null);
+								//logger.error( e, effectivePerson, request, null);
 							}
 						} catch (Exception e) {
 							check = false;
 							Exception exception = new QeuryDepartmentWithPersonException( e, wrapIn.getProcessPerson2() );
 							result.error( exception );
-							logger.error( exception, effectivePerson, request, null);
+							logger.error( e, effectivePerson, request, null);
 						}
 					}
 				}	
@@ -302,7 +301,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new AttendanceAppealSaveException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -313,7 +312,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new NotifyAttendanceAppealException( e, attendanceAppealInfo.getProcessPerson1() );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -340,7 +339,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		
 		if( check ){
@@ -350,13 +349,13 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new AttendanceAppealNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch ( Exception e ) {
 				check = false;
 				Exception exception = new AttendanceAppealQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -369,13 +368,13 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonHasNoDepartmentException( effectivePerson.getName() );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			}catch( Exception e ){
 				check = false;
 				Exception exception = new QeuryDepartmentWithPersonException( e, effectivePerson.getName() );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -391,7 +390,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new AttendanceAppealProcessException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -418,7 +417,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( check ){
@@ -428,13 +427,13 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new AttendanceAppealNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					//logger.error( e, currentPerson, request, null);
 				}
 			} catch ( Exception e ) {
 				check = false;
 				Exception exception = new AttendanceAppealQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -447,14 +446,14 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonHasNoDepartmentException( currentPerson.getName() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					//logger.error( e, currentPerson, request, null);
 				}
 			}catch( Exception e ){
 				check = false;
 				result.error( e );
 				Exception exception = new QeuryDepartmentWithPersonException( e, currentPerson.getName() );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -471,7 +470,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				result.error( e );
 				Exception exception = new AttendanceAppealProcessException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -498,7 +497,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if( check ){
 			try {
@@ -510,7 +509,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty( emc.find(id, AttendanceAppealInfo.class ), "sequence");
 					}
 				}
@@ -555,7 +554,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if( check ){
 			try {
@@ -568,7 +567,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils
 								.getProperty(emc.find(id, AttendanceAppealInfo.class ), "sequence");
 					}
@@ -606,7 +605,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 				result.error( e );
 				Exception exception = new AttendanceAppealArchiveException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}else{ //归档所有的考勤申诉记录
 			try{
@@ -614,7 +613,7 @@ public class AttendanceAppealInfoAction extends StandardJaxrsAction {
 			}catch( Exception e ){
 				Exception exception = new AttendanceAppealArchiveException( e, null );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 81 - 82
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancedetail/AttendanceDetailAction.java

@@ -24,7 +24,6 @@ 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.Business;
-import com.x.attendance.assemble.control.jaxrs.attendanceappealinfo.WrapInFilterAppeal;
 import com.x.attendance.assemble.control.service.AttendanceDetailAnalyseServiceAdv;
 import com.x.attendance.assemble.control.service.AttendanceDetailServiceAdv;
 import com.x.attendance.assemble.control.service.AttendanceEmployeeConfigServiceAdv;
@@ -35,7 +34,6 @@ import com.x.attendance.entity.AttendanceDetail;
 import com.x.attendance.entity.AttendanceEmployeeConfig;
 import com.x.attendance.entity.AttendanceStatisticalCycle;
 import com.x.attendance.entity.AttendanceWorkDayConfig;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -43,13 +41,13 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
-import com.x.base.core.http.HttpAttribute;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.organization.core.express.wrap.WrapCompany;
 import com.x.organization.core.express.wrap.WrapDepartment;
 
@@ -83,7 +81,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailIdEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}		
 		if( check ){
@@ -93,7 +91,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}		
 		if( check ){
@@ -101,7 +99,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}		
 		if( check ){
@@ -112,7 +110,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailWrapCopyException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -136,7 +134,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailImportFileIdEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -146,7 +144,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListByImportFileIdException( e, file_id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		
@@ -158,7 +156,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -170,7 +168,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -204,7 +202,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( check ){
@@ -223,7 +221,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetAttendanceDetailMaxRecordDateException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -241,7 +239,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListByNameYearMonthException( e, q_empName, q_year, q_month );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -252,7 +250,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -265,7 +263,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -300,7 +298,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( check ){
@@ -324,7 +322,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetAttendanceDetailMaxRecordDateException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -343,7 +341,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailListByNameYearMonthException( e, q_empName, cycleYear, cycleMonth );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}else if( q_year != null && q_month != null && !q_year.isEmpty() && !q_month.isEmpty()){
 				try {
@@ -352,7 +350,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailListByNameYearMonthException( e, q_empName, cycleYear, cycleMonth );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -364,7 +362,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -377,7 +375,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}	
 			}
 		}
@@ -411,7 +409,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 
 		if( check ){
@@ -430,7 +428,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetAttendanceDetailMaxRecordDateException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -447,7 +445,8 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					companyNames = userManagerService.listSubCompanyNameList( q_companyName );
 				}catch(Exception e){
 					Exception exception = new ListCompanyNameByParentNameException( e, q_companyName );
-					logger.error( exception, currentPerson, request, null);
+					result.error( exception );
+					logger.error( e, currentPerson, request, null);
 				}
 				if( !companyNames.contains( q_companyName )){
 					companyNames.add( q_companyName );
@@ -461,7 +460,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListByCompanyYearMonthException( e, companyNames, q_year, q_month );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}	
 		}
 		if( check ){
@@ -471,7 +470,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListByIdsException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -483,7 +482,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}	
 			}
 		}		
@@ -517,7 +516,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( check ){
@@ -536,7 +535,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetAttendanceDetailMaxRecordDateException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -551,13 +550,15 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			if( q_departmentName != null && !q_departmentName.isEmpty()){
 				try{
 					departmentNames = userManagerService.listSubOrganizationNameList( q_departmentName );
+					if( !departmentNames.contains( q_departmentName )){
+						departmentNames.add( q_departmentName );
+					}
 				}catch(Exception e){
 					Exception exception = new ListDepartmentNameByParentNameException( e, q_departmentName );
-					logger.error( exception, currentPerson, request, null);
-				}
-				if( !departmentNames.contains( q_departmentName )){
-					departmentNames.add( q_departmentName );
+					result.error( exception );
+					logger.error( e, currentPerson, request, null);
 				}
+				
 			}
 		}
 		if( check ){
@@ -567,7 +568,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListByDepartmentYearMonthException( e, departmentNames, q_year, q_month );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}	
 		}
 		if( check ){
@@ -577,7 +578,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListByIdsException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -589,7 +590,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}	
 			}
 		}		
@@ -615,7 +616,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailCycleYearEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -623,7 +624,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailCycleMonthEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -633,7 +634,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new RequiredAttendanceEmployeeListException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -644,7 +645,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceEmployeeConfigListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -656,7 +657,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new GetCycleMapFromAllCyclesException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 			if( check ){
@@ -674,7 +675,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 						globalCheck = subCheck = false;
 						Exception exception = new CheckAttendanceWithEmployeeConfigException( e );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( subCheck ){
 						try {//根据公司部门,年月获取到一个适合的统计周期,如果没有则新建一个新的配置
@@ -683,7 +684,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 							globalCheck = subCheck = false;
 							Exception exception = new GetAttendanceDetailStatisticCycleException( e, attendanceEmployeeConfig.getCompanyName(), attendanceEmployeeConfig.getOrganizationName(), cycleYear, cycleMonth );
 							result.error( exception );
-							logger.error( exception, currentPerson, request, null);
+							logger.error( e, currentPerson, request, null);
 						}
 					}
 					if( subCheck ){
@@ -694,7 +695,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 								globalCheck = subCheck = false;
 								Exception exception = new AttendanceDetailCheckAndReplenishException( e, attendanceStatisticalCycle.getCycleStartDate(), attendanceStatisticalCycle.getCycleEndDate() );
 								result.error( exception );
-								logger.error( exception, currentPerson, request, null);
+								logger.error( e, currentPerson, request, null);
 							}
 						}
 					}
@@ -731,7 +732,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailListNeedAnalyseException( e, startDate, endDate );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check && ids != null && !ids.isEmpty() ){
@@ -741,7 +742,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkDayConfigListAllException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}	
 		}
 		if( check && ids != null && !ids.isEmpty() ){
@@ -751,7 +752,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetCycleMapFromAllCyclesException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -769,21 +770,20 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 						}else{
 							Exception exception = new AttendanceDetailNotExistsException( ids.get(i) );
 							result.error( exception );
-							logger.error( exception, currentPerson, request, null);
 						}						
 					}catch(Exception e){
 						check = false;
 						Exception exception = new AttendanceDetailAnalyseException( e, ids.get(i) );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 				}
-				logger.info( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>所有需要分析的考勤数据已经全部分析完成." );
+				logger.info( "所有需要分析的考勤数据已经全部分析完成." );
 			}else{
-				logger.info( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>没有需要分析的员工打卡信息!" );
+				logger.info( "没有需要分析的员工打卡信息!" );
 			}
 		}
-		logger.info( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>数据分析过程退出!" );
+		logger.info( "数据分析过程退出!" );
 		return ResponseFactory.getDefaultActionResultResponse(result);
 	}
 	
@@ -805,7 +805,6 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailIdEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -815,13 +814,13 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					//logger.error( e, currentPerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new AttendanceDetailQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -831,7 +830,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkDayConfigListAllException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -841,7 +840,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetCycleMapFromAllCyclesException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -853,7 +852,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailAnalyseException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		logger.info( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>数据分析过程退出!" );
@@ -879,7 +878,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailArchiveException( e, id );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}else{
 				try{
@@ -889,7 +888,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailArchiveException( e, id );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}		
@@ -920,7 +919,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {		
@@ -932,7 +931,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				if( id == null || "(0)".equals(id) || id.isEmpty() ){
 					//logger.debug( "第一页查询,没有id传入" );
 				}else{
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(emc.find( id, AttendanceDetail.class ), "sequence");
 					}
 				}
@@ -945,7 +944,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListCompanyNameByParentNameException( e, wrapIn.getQ_companyName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( companyList != null && companyList.size() > 0 ){
 						for( WrapCompany company : companyList){
@@ -963,7 +962,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListDepartmentNameByParentNameException( e, wrapIn.getQ_departmentName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( departments != null && departments.size() > 0 ){
 						for( WrapDepartment department : departments){
@@ -1016,7 +1015,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {		
@@ -1029,7 +1028,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				if( id == null || "(0)".equals(id) || id.isEmpty() ){
 					//logger.debug( "第一页查询,没有id传入" );
 				}else{
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(emc.find(id, AttendanceDetail.class ), "sequence");
 					}
 				}		
@@ -1042,7 +1041,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListCompanyNameByParentNameException( e, wrapIn.getQ_companyName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( companyList != null && companyList.size() > 0 ){
 						for( WrapCompany company : companyList){
@@ -1060,7 +1059,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListDepartmentNameByParentNameException( e, wrapIn.getQ_departmentName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( departments != null && departments.size() > 0 ){
 						for( WrapDepartment department : departments){
@@ -1119,14 +1118,14 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if( check ){
 			if( wrapIn.getRecordDateString() == null || wrapIn.getRecordDateString().isEmpty() ){
 				check = false;
 				Exception exception = new AttendanceDetailRecordDateEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -1134,7 +1133,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailEmployeeNameEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -1148,7 +1147,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailRecordDateFormatException( e, wrapIn.getRecordDateString() );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -1160,7 +1159,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailOnDutyTimeFormatException( e, wrapIn.getOnDutyTime() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -1173,7 +1172,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailOffDutyTimeFormatException( e, wrapIn.getOffDutyTime() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -1186,7 +1185,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailSaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -1196,7 +1195,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkDayConfigListAllException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -1206,7 +1205,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetCycleMapFromAllCyclesException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -1217,7 +1216,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailAnalyseException( e, attendanceDetail.getId() );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -1238,7 +1237,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 			if ( null == attendanceDetail ) {
 				Exception exception = new AttendanceDetailNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				//进行数据库持久化操作				
 				emc.beginTransaction( AttendanceDetail.class );
@@ -1250,7 +1249,7 @@ public class AttendanceDetailAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceDetailDeleteException( e, id );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
 	}

+ 20 - 20
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancedetail/AttendanceDetailMobileAction.java

@@ -20,7 +20,6 @@ import javax.ws.rs.core.Response;
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.service.AttendanceDetailServiceAdv;
 import com.x.attendance.entity.AttendanceDetailMobile;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -29,11 +28,12 @@ import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendancedetail/mobile")
@@ -60,7 +60,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileIdEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}		
 		if( check ){
@@ -70,7 +70,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileQueryByIdException( e, id);
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}		
 		if( check ){
@@ -78,7 +78,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetaillMobileNotExistsException( id);
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}		
 		if( check ){
@@ -89,7 +89,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileWrapCopyException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -151,7 +151,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileQueryParameterEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -163,7 +163,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileEndDateFormatException( e, wrapIn.getEndDate() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 				if( wrapIn.getEndDate() == null || wrapIn.getEndDate().isEmpty() ){
 					wrapIn.setEndDate( wrapIn.getStartDate() );
@@ -177,7 +177,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileStartDateFormatException( e, wrapIn.getEndDate() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -191,7 +191,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileCountException( e, wrapIn.getEmpNo(), wrapIn.getEmpName(), wrapIn.getSignDescription(), wrapIn.getStartDate(), wrapIn.getEndDate() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -203,7 +203,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileListByParameterException( e, wrapIn.getEmpNo(), wrapIn.getEmpName(), wrapIn.getSignDescription(), wrapIn.getStartDate(), wrapIn.getEndDate() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -215,7 +215,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileWrapCopyException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -268,7 +268,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileRecordAddressEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				attendanceDetailMobile.setRecordAddress( wrapIn.getRecordAddress() );
 			}
@@ -278,7 +278,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileLatitudeEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				attendanceDetailMobile.setLatitude( wrapIn.getLatitude() );
 			}
@@ -288,7 +288,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileLongitudeEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				attendanceDetailMobile.setLongitude( wrapIn.getLongitude() );
 			}
@@ -305,7 +305,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileSignTimeFormatException( e, wrapIn.getSignTime() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}else{//打卡时间没有填写就填写为当前时间
 				attendanceDetailMobile.setSignTime( dateOperation.getNowTime() ); //打卡时间
@@ -320,7 +320,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceDetailMobileRecordDateFormatException( e, wrapIn.getRecordDateString() );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}				
 			}else{
 				attendanceDetailMobile.setRecordDateString( dateOperation.getNowDate() ); //打卡日期
@@ -339,7 +339,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceDetailMobileSaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -359,7 +359,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 			if ( null == attendanceDetailMobile ) {
 				Exception exception = new AttendanceDetaillMobileNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				//进行数据库持久化操作				
 				emc.beginTransaction( AttendanceDetailMobile.class );
@@ -371,7 +371,7 @@ public class AttendanceDetailMobileAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceDetaillMobileNotExistsException( id );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
 	}

+ 15 - 15
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceemployeeconfig/AttendanceEmployeeConfigAction.java

@@ -17,17 +17,17 @@ import javax.ws.rs.core.Response;
 import com.google.gson.JsonElement;
 import com.x.attendance.assemble.control.service.AttendanceEmployeeConfigServiceAdv;
 import com.x.attendance.entity.AttendanceEmployeeConfig;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendanceemployeeconfig")
@@ -57,7 +57,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				result.error(e);
 				Exception exception = new AttendanceEmployeeConfigListAllException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && attendanceEmployeeConfigList != null ){
@@ -69,7 +69,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -92,7 +92,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}		
 		if( check ){
@@ -102,13 +102,13 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceEmployeeConfigNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -119,7 +119,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -143,7 +143,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		if( check ){
 			try {
@@ -155,7 +155,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigWrapInException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -167,7 +167,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigSaveException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}		
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -189,7 +189,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}		
 		if( check ){
@@ -199,13 +199,13 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceEmployeeConfigNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -217,7 +217,7 @@ public class AttendanceEmployeeConfigAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceEmployeeConfigDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 			
 		}

+ 13 - 12
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceimportfileinfo/AttendanceImportFileInfoAction.java

@@ -12,19 +12,20 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+
 import com.x.attendance.assemble.control.service.AttendanceImportFileInfoServiceAdv;
 import com.x.attendance.entity.AttendanceImportFileInfo;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendanceimportfileinfo")
@@ -53,7 +54,7 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceImportFileListAllException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && attendanceSettingList != null ){
@@ -64,7 +65,7 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceImportFileWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 			
 		}
@@ -88,7 +89,7 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceImportFileIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -98,13 +99,13 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceImportFileNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new AttendanceImportFileQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && attendanceImportFileInfo != null ){
@@ -115,7 +116,7 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceImportFileWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}	
 		}	
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -138,7 +139,7 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceImportFileIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -148,13 +149,13 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceImportFileNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new AttendanceImportFileQueryByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -166,7 +167,7 @@ public class AttendanceImportFileInfoAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceImportFileDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 29 - 29
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceschedulesetting/AttendanceScheduleSettingAction.java

@@ -18,17 +18,17 @@ import com.google.gson.JsonElement;
 import com.x.attendance.assemble.control.service.AttendanceScheduleSettingServiceAdv;
 import com.x.attendance.assemble.control.service.UserManagerService;
 import com.x.attendance.entity.AttendanceScheduleSetting;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.organization.core.express.wrap.WrapCompany;
 import com.x.organization.core.express.wrap.WrapDepartment;
 
@@ -61,7 +61,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleListAllException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && attendanceScheduleSettingList != null ){
@@ -72,7 +72,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -96,7 +96,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -106,7 +106,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleListByDepartmentException( e, name );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && ids != null && !ids.isEmpty() ){
@@ -116,7 +116,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleListByIdsException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && attendanceScheduleSettingList != null ){
@@ -127,7 +127,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -151,7 +151,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -161,7 +161,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleListByCompanyException( e, name );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && ids != null && !ids.isEmpty() ){
@@ -171,7 +171,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleListByIdsException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check && attendanceScheduleSettingList != null ){
@@ -182,7 +182,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -205,7 +205,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -215,13 +215,13 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceScheduleNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new AttendanceScheduleGetByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -232,7 +232,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -260,7 +260,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		if( check ){
 			identity = wrapIn.getIdentity();
@@ -273,7 +273,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 						check = false;
 						Exception exception = new GetCompanyNameByUserIdentityException( e, identity );
 						result.error( exception );
-						logger.error( exception, effectivePerson, request, null);
+						logger.error( e, effectivePerson, request, null);
 					}
 				}
 				if( companyName == null || companyName.isEmpty() ){
@@ -283,14 +283,14 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 						check = false;
 						Exception exception = new GetCompanyNameByUserIdentityException( e, effectivePerson.getName() );
 						result.error( exception );
-						logger.error( exception, effectivePerson, request, null);
+						logger.error( e, effectivePerson, request, null);
 					}
 				}
 				if( companyName == null || companyName.isEmpty() ){
 					check = false;
 					Exception exception = new CanNotFindCompanyWithPersonException( effectivePerson.getName() );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}else{
 					wrapIn.setOrganizationName( companyName );
 				}
@@ -301,7 +301,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new GetDepartmentWithNameException( e, wrapIn.getOrganizationName() );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 				if( department == null ){
 					try {
@@ -310,7 +310,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 						check = false;
 						Exception exception = new GetCompanyWithNameException( e, wrapIn.getOrganizationName() );
 						result.error( exception );
-						logger.error( exception, effectivePerson, request, null);
+						logger.error( e, effectivePerson, request, null);
 					}
 					if( company != null ){
 						wrapIn.setCompanyName( company.getName() );
@@ -318,7 +318,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 						check = false;
 						Exception exception = new CanNotFindCompanyWithOrganNameException( wrapIn.getOrganizationName() );
 						result.error( exception );
-						logger.error( exception, effectivePerson, request, null);
+						//logger.error( e, effectivePerson, request, null);
 					}
 				}else{
 					wrapIn.setOrganizationName( department.getName() );
@@ -337,7 +337,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -349,7 +349,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleSaveException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -372,7 +372,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -382,13 +382,13 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceScheduleNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new GetAttendanceScheduleByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -400,7 +400,7 @@ public class AttendanceScheduleSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceScheduleDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 19 - 19
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancesetting/AttendanceSettingAction.java

@@ -17,17 +17,17 @@ import javax.ws.rs.core.Response;
 import com.google.gson.JsonElement;
 import com.x.attendance.assemble.control.service.AttendanceSettingServiceAdv;
 import com.x.attendance.entity.AttendanceSetting;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendancesetting")
@@ -57,7 +57,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingListAllException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -68,7 +68,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -91,7 +91,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -101,7 +101,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetAttendanceSettingByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -112,7 +112,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -135,7 +135,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingCodeEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -145,7 +145,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingListByCodeException( e, code );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -156,7 +156,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -180,14 +180,14 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		if( check ){
 			if( wrapIn.getConfigCode() == null || wrapIn.getConfigCode().isEmpty() ){
 				check = false;
 				Exception exception = new AttendanceSettingCodeEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -195,7 +195,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -208,7 +208,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingWrapInException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -220,7 +220,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingSaveException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -243,7 +243,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingIdEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -253,13 +253,13 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new AttendanceSettingNotExistsException( id );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new GetAttendanceSettingByIdException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -271,7 +271,7 @@ public class AttendanceSettingAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceSettingDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 2 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/AttendanceStatisticAction.java

@@ -10,14 +10,14 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import com.x.attendance.assemble.control.service.AttendanceStatisticServiceAdv;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("statistic")

+ 81 - 82
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/AttendanceStatisticShowAction.java

@@ -26,19 +26,18 @@ import com.x.attendance.entity.StatisticCompanyForMonth;
 import com.x.attendance.entity.StatisticDepartmentForDay;
 import com.x.attendance.entity.StatisticDepartmentForMonth;
 import com.x.attendance.entity.StatisticPersonForMonth;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
-import com.x.base.core.http.HttpAttribute;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.organization.core.express.wrap.WrapCompany;
 import com.x.organization.core.express.wrap.WrapDepartment;
 
@@ -84,7 +83,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticPersonNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -94,7 +93,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new PersonStatisticForMonthListByUserException( e, name, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -105,7 +104,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -118,7 +117,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -149,7 +148,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticDepartmentNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}else{
 				departmentNameList.add( name );
 			}
@@ -161,7 +160,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new PersonStatisticForMonthListByDepartmentsException(e, departmentNameList, year, month);
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -172,7 +171,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -185,7 +184,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -216,7 +215,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticDepartmentNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -226,7 +225,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new ListDepartmentNameByParentNameException( e, name );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -242,7 +241,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new PersonStatisticForMonthListByDepartmentsException(e, departmentNameList, year, month);
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -253,7 +252,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -266,7 +265,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new PersonStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -298,7 +297,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticDepartmentNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -308,7 +307,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new ListDepartmentNameByParentNameException( e, name );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -324,7 +323,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthListByDepartmentsException(e, departmentNameList, year, month);
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -335,7 +334,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -348,7 +347,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -381,7 +380,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticCompanyNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -392,7 +391,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new GetTopDepartmentNamesByOrganNameException( e, name, departmentNames );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -408,7 +407,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthListByDepartmentsException(e, departmentNames, year, month);
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -419,7 +418,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -432,7 +431,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -464,7 +463,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticDepartmentNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -475,7 +474,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				result.error( e );
 				Exception exception = new DepartmentStatisticForMonthListByDepartmentsException(e, name, year, month);
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -486,7 +485,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -499,7 +498,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -540,7 +539,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticDepartmentNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -550,7 +549,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new ListDepartmentNameByParentNameException( e, name );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -566,7 +565,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumAbsenceDayException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -576,7 +575,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumSelfHolidayException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -586,7 +585,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumLateCountException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -596,7 +595,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumLeaveEarlyDayException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -606,7 +605,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumOnDutyException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -616,7 +615,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumOffDutyException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -626,7 +625,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumAbsenceDayException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -636,7 +635,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumLackOfTimeException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}		
 		}
 		if( check ){
@@ -646,7 +645,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthSumAbsenceDayException( e, departmentNameList, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -680,7 +679,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForMonthWrapOutException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -710,7 +709,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticCompanyNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -720,7 +719,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new CompanyStatisticForMonthListByCompanyException( e, name, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -731,7 +730,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new CompanyStatisticForMonthListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -744,7 +743,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new CompanyStatisticForMonthWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -776,7 +775,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticDepartmentNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -786,7 +785,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new ListDepartmentNameByParentNameException( e, name );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -802,7 +801,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new DepartmentStatisticForDayListByDepartmentsException( e, departmentNames, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -813,7 +812,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForDayListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -826,7 +825,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new DepartmentStatisticForDayWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -857,7 +856,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new QueryStatisticCompanyNameEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -867,7 +866,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				check = false;
 				Exception exception = new CompanyStatisticForDayListByCompanyException( e, name, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -878,7 +877,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new CompanyStatisticForDayListByIdsException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -891,7 +890,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					check = false;
 					Exception exception = new CompanyStatisticForDayWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null );
+					logger.error( e, effectivePerson, request, null );
 				}
 			}
 		}
@@ -927,7 +926,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 					departments = business.organization().department().listSubNested( name );
 				}catch(Exception e){
 					Exception exception = new ListDepartmentNameByParentNameException( e, name );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 				if( departments != null && departments.size() > 0 ){
 					for( WrapDepartment department : departments){
@@ -939,7 +938,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				ids = business.getStatisticDepartmentForDayFactory().listByDepartmentDayDate( departmentNames, date );
 			}catch(Exception e){
 				Exception exception = new DepartmentStatisticForDayListByDateException( e, departmentNames, date );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 			try{
 				if( ids != null && !ids.isEmpty() ){
@@ -947,7 +946,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				}
 			}catch(Exception e){
 				Exception exception = new DepartmentStatisticForDayListByIdsException( e );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 			try{
 				if( statisticDepartmentForDay_list != null && !statisticDepartmentForDay_list.isEmpty() ){
@@ -956,7 +955,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				}
 			}catch(Exception e){
 				Exception exception = new DepartmentStatisticForDayWrapOutException( e );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}		
 		} catch (Exception e) {
 			result.error( e );
@@ -996,7 +995,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				ids = business.getStatisticDepartmentForDayFactory().listByDepartmentDayDate( departmentNames, date );
 			}catch(Exception e){
 				Exception exception = new DepartmentStatisticForDayListByDateException( e, departmentNames, date );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 			try{
 				if( ids != null && !ids.isEmpty() ){
@@ -1004,7 +1003,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				}
 			}catch(Exception e){
 				Exception exception = new DepartmentStatisticForDayListByIdsException( e );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 			try{
 				if( statisticDepartmentForDay_list != null && !statisticDepartmentForDay_list.isEmpty() ){
@@ -1013,7 +1012,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				}
 			}catch(Exception e){
 				Exception exception = new DepartmentStatisticForDayWrapOutException( e );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		} catch (Exception e) {
 			result.error( e );
@@ -1042,7 +1041,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1054,7 +1053,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					// logger.debug( "第一页查询,没有id传入" );
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticPersonForMonth.class ), "sequence");
 					}
@@ -1106,7 +1105,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1119,7 +1118,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticPersonForMonth.class ), "sequence");
 					}
@@ -1172,7 +1171,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1184,7 +1183,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					// logger.debug( "第一页查询,没有id传入" );
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticDepartmentForMonth.class ), "sequence");
 					}
@@ -1238,7 +1237,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1251,7 +1250,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticDepartmentForMonth.class ), "sequence");
 					}
@@ -1304,7 +1303,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1316,7 +1315,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					// logger.debug( "第一页查询,没有id传入" );
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticCompanyForMonth.class ), "sequence");
 					}
@@ -1369,7 +1368,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1382,7 +1381,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticCompanyForMonth.class ), "sequence");
 					}
@@ -1435,7 +1434,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1447,7 +1446,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					// logger.debug( "第一页查询,没有id传入" );
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticDepartmentForDay.class ), "sequence");
 					}
@@ -1501,7 +1500,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1514,7 +1513,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticDepartmentForDay.class ), "sequence");
 					}
@@ -1566,7 +1565,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1578,7 +1577,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					// logger.debug( "第一页查询,没有id传入" );
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticCompanyForDay.class ), "sequence");
 					}
@@ -1631,7 +1630,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {
@@ -1644,7 +1643,7 @@ public class AttendanceStatisticShowAction extends StandardJaxrsAction {
 				if (id == null || "(0)".equals(id) || id.isEmpty()) {
 					logger.debug("第一页查询,没有id传入");
 				} else {
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(
 								emc.find(id, StatisticCompanyForDay.class ), "sequence");
 					}

+ 15 - 15
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatisticalcycle/AttendanceStatisticalCycleAction.java

@@ -22,7 +22,6 @@ import com.x.attendance.assemble.control.factory.AttendanceStatisticalCycleFacto
 import com.x.attendance.assemble.control.service.AttendanceStatisticalCycleServiceAdv;
 import com.x.attendance.assemble.control.service.UserManagerService;
 import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -32,11 +31,12 @@ import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendancestatisticalcycle")
@@ -128,7 +128,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new QueryStatisticCycleYearEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -136,7 +136,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new QueryStatisticCycleMonthEmptyException();
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}
 		}		
 		if( check ){
@@ -146,7 +146,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new CanNotFindCompanyNameByPersonException( effectivePerson.getName() );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			}  catch ( PersonHasNoIdentityException e ) {
 				check = false;
@@ -156,7 +156,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetCompanyNameByPersonException( e, effectivePerson.getName() );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -166,7 +166,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 					check = false;
 					Exception exception = new CanNotFindDepartmentNameByPersonException( effectivePerson.getName() );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					//logger.error( e, effectivePerson, request, null);
 				}
 			} catch ( PersonHasNoIdentityException e ) {
 				check = false;
@@ -176,7 +176,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetDepartmentNameByPersonException( e, effectivePerson.getName() );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -186,7 +186,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetCycleMapFromAllCyclesException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -196,7 +196,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new GetAttendanceDetailStatisticCycleException( e, companyName, departmentName, year, month );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 		if( check ){
@@ -207,7 +207,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				}catch(Exception e){
 					Exception exception = new AttendanceStatisticCycleWrapOutException( e );
 					result.error( exception );
-					logger.error( exception, effectivePerson, request, null);
+					logger.error( e, effectivePerson, request, null);
 				}
 			}
 		}
@@ -230,7 +230,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 		} catch (Exception e ) {
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		
 		if( wrapIn != null){		
@@ -272,7 +272,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 				e.printStackTrace();
 				Exception exception = new AttendanceStatisticCycleSaveException( e );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				logger.error( e, effectivePerson, request, null);
 			}
 		}
 //		else{
@@ -296,7 +296,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 			if (null == attendanceStatisticalCycle) {
 				Exception exception = new AttendanceStatisticCycleNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, effectivePerson, request, null);
+				//logger.error( e, effectivePerson, request, null);
 			}else{
 				//进行数据库持久化操作
 				emc.beginTransaction( AttendanceStatisticalCycle.class );
@@ -307,7 +307,7 @@ public class AttendanceStatisticalCycleAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceStatisticCycleDeleteException( e, id );
 			result.error( exception );
-			logger.error( exception, effectivePerson, request, null);
+			logger.error( e, effectivePerson, request, null);
 		}
 		
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 6 - 6
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatisticrequirelog/AttendanceStatisticRequireLogAction.java

@@ -18,7 +18,6 @@ import com.google.gson.JsonElement;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.assemble.control.factory.AttendanceStatisticRequireLogFactory;
 import com.x.attendance.entity.AttendanceStatisticRequireLog;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -28,11 +27,12 @@ import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendancestatisticrequirelog")
@@ -110,7 +110,7 @@ public class AttendanceStatisticRequireLogAction extends StandardJaxrsAction{
 		} catch (Exception e ) {
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( wrapIn != null){
@@ -144,7 +144,7 @@ public class AttendanceStatisticRequireLogAction extends StandardJaxrsAction{
 			} catch ( Exception e ) {
 				Exception exception = new AttendanceStatisticRequireSaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 //		else{
@@ -168,7 +168,7 @@ public class AttendanceStatisticRequireLogAction extends StandardJaxrsAction{
 			if ( null == attendanceStatisticRequireLog ) {
 				Exception exception = new AttendanceStatisticRequireNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				emc.beginTransaction( AttendanceStatisticRequireLog.class );
 				emc.remove( attendanceStatisticRequireLog, CheckRemoveType.all );
@@ -178,7 +178,7 @@ public class AttendanceStatisticRequireLogAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceStatisticRequireDeleteException( e, id );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 10 - 10
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendanceworkdayconfig/AttendanceWorkDayConfigAction.java

@@ -21,7 +21,6 @@ import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.assemble.control.factory.AttendanceWorkDayConfigFactory;
 import com.x.attendance.entity.AttendanceWorkDayConfig;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -31,11 +30,12 @@ import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("attendanceworkdayconfig")
@@ -100,7 +100,7 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			q_Name = wrapIn.getQ_Name();
@@ -194,7 +194,7 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if( check ){
 			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
@@ -218,7 +218,7 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 							}catch(Exception e){
 								Exception exception = new AttendanceWorkDayFormatException( e, _attendanceWorkDayConfig.getConfigDate() );
 								result.error( exception );
-								logger.error( exception, currentPerson, request, null);
+								logger.error( e, currentPerson, request, null);
 							}
 						}else{
 							emc.beginTransaction( AttendanceWorkDayConfig.class );
@@ -234,7 +234,7 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 							}catch(Exception e){
 								Exception exception = new AttendanceWorkDayFormatException( e, attendanceWorkDayConfig.getConfigDate() );
 								result.error( exception );
-								logger.error( exception, currentPerson, request, null);
+								logger.error( e, currentPerson, request, null);
 							}
 						}
 					}else{
@@ -251,14 +251,14 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 						}catch(Exception e){
 							Exception exception = new AttendanceWorkDayFormatException( e, attendanceWorkDayConfig.getConfigDate() );
 							result.error( exception );
-							logger.error( exception, currentPerson, request, null);
+							logger.error( e, currentPerson, request, null);
 						}
 					}
 				}
 			} catch ( Exception e ) {
 				Exception exception = new AttendanceWorkDayConfigSaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
@@ -278,7 +278,7 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 			if (null == attendanceWorkDayConfig) {
 				Exception exception = new AttendanceWorkDayConfigNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				//进行数据库持久化操作
 				emc.beginTransaction( AttendanceWorkDayConfig.class );
@@ -289,7 +289,7 @@ public class AttendanceWorkDayConfigAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceWorkDayConfigDeleteException( e, id );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
 	}

+ 10 - 10
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/fileimport/AttendanceDetailFileImportAction.java

@@ -25,18 +25,18 @@ import com.x.attendance.assemble.control.Business;
 import com.x.attendance.assemble.control.jaxrs.DateRecord;
 import com.x.attendance.entity.AttendanceDetail;
 import com.x.attendance.entity.AttendanceImportFileInfo;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 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.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("fileimport")
@@ -68,7 +68,7 @@ public class AttendanceDetailFileImportAction extends StandardJaxrsAction{
 			}catch(Exception e){
 				Exception exception = new AttendanceImportFileQueryByIdException( e, file_id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 			if( attendanceImportFileInfo == null ){
 				logger.info( "需要导入的文件信息不存在,无法进行数据导入。" );
@@ -96,7 +96,7 @@ public class AttendanceDetailFileImportAction extends StandardJaxrsAction{
 					} catch (Exception e) {
 						Exception exception = new AttendanceImportFileWriteToLocalException( e, attendanceImportFileInfo.getId(), attendanceImportFileInfo.getFileName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					} finally{
 						logger.info( "关闭输出流......"  );
 						output.close();
@@ -104,7 +104,7 @@ public class AttendanceDetailFileImportAction extends StandardJaxrsAction{
 				} catch (Exception e) {
 					Exception exception = new AttendanceImportFileWriteToLocalException( e );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 				
 				//然后进行数据检查
@@ -127,7 +127,7 @@ public class AttendanceDetailFileImportAction extends StandardJaxrsAction{
 				} catch (Exception e) {
 					Exception exception = new AttendanceImportFileReadException( e, file_id, importFilePath + importFileName );
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 				logger.info("数据检查完成,准备向客户端返回需要导入的数据检查情况......");
 				
@@ -279,16 +279,16 @@ public class AttendanceDetailFileImportAction extends StandardJaxrsAction{
 				}
 				result.setData( dateRecordList );				
 				logger.info("数据处理事务提交完成!");
-			} catch (Throwable th) {
-				Exception exception = new AttendanceImportFileImportException( th, file_id );
+			} catch ( Exception e ) {
+				Exception exception = new AttendanceImportFileImportException( e, file_id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 			ApplicationGobal.importFileCheckResultMap.remove( file_id );
 		}else{
 			Exception exception = new AttendanceImportFileDataCacheNotExistsException( file_id );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			//logger.error( e, currentPerson, request, null);
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
 	}

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/fileimport/AttendancePersonExcelReader.java

@@ -4,11 +4,12 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.common.excel.reader.IRowReader;
 import com.x.attendance.assemble.control.ApplicationGobal;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 
 public class AttendancePersonExcelReader implements IRowReader{
 	

+ 16 - 17
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/selfholiday/AttendanceSelfHolidayAction.java

@@ -27,7 +27,6 @@ import com.x.attendance.assemble.control.service.AttendanceDetailAnalyseServiceA
 import com.x.attendance.assemble.control.service.AttendanceStatisticalCycleServiceAdv;
 import com.x.attendance.entity.AttendanceSelfHoliday;
 import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -36,13 +35,13 @@ import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
-import com.x.base.core.http.HttpAttribute;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.organization.core.express.wrap.WrapCompany;
 import com.x.organization.core.express.wrap.WrapDepartment;
 
@@ -104,7 +103,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( check ){
@@ -151,7 +150,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 						} catch (Exception e) {
 							Exception exception = new GetCycleMapFromAllCyclesException( e );
 							result.error( exception );
-							logger.error( exception, currentPerson, request, null);
+							logger.error( e, currentPerson, request, null);
 						}
 						attendanceDetailAnalyseServiceAdv.analyseAttendanceDetails( attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(), attendanceSelfHoliday.getEndTime(), companyAttendanceStatisticalCycleMap );
 					}
@@ -159,7 +158,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 			} catch ( Exception e ) {
 				Exception exception = new AttendanceSelfHolidaySaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		
@@ -181,7 +180,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 			if (null == attendanceSelfHoliday) {
 				Exception exception = new AttendanceSelfHolidayNotExistsException( id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}else{
 				emc.beginTransaction( AttendanceSelfHoliday.class );
 				emc.remove( attendanceSelfHoliday, CheckRemoveType.all );
@@ -195,7 +194,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 					} catch (Exception e) {
 						Exception exception = new GetCycleMapFromAllCyclesException( e );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					attendanceDetailAnalyseServiceAdv.analyseAttendanceDetails( attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(), attendanceSelfHoliday.getEndTime(), companyAttendanceStatisticalCycleMap );
 				}
@@ -203,7 +202,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceSelfHolidayDeleteException( e, id );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		return ResponseFactory.getDefaultActionResultResponse(result);
 	}
@@ -232,7 +231,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {		
@@ -244,7 +243,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 				if( id == null || "(0)".equals(id) || id.isEmpty() ){
 					//logger.info( "第一页查询,没有id传入" );
 				}else{
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id,StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(emc.find( id, AttendanceSelfHoliday.class ), "sequence");
 					}
 				}
@@ -257,7 +256,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListCompaniesWithParentNameException( e, wrapIn.getQ_companyName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( companyList != null && companyList.size() > 0 ){
 						for( WrapCompany company : companyList){
@@ -275,7 +274,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListDepartmentsWithParentNameException( e, wrapIn.getQ_departmentName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( departments != null && departments.size() > 0 ){
 						for( WrapDepartment department : departments){
@@ -331,7 +330,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if(check ){
 			try {		
@@ -344,7 +343,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 				if( id == null || "(0)".equals(id) || id.isEmpty() ){
 					//logger.info( "第一页查询,没有id传入" );
 				}else{
-					if (!StringUtils.equalsIgnoreCase(id, HttpAttribute.x_empty_symbol)) {
+					if (!StringUtils.equalsIgnoreCase(id, StandardJaxrsAction.EMPTY_SYMBOL)) {
 						sequence = PropertyUtils.getProperty(emc.find(id, AttendanceSelfHoliday.class ), "sequence");
 					}
 				}		
@@ -357,7 +356,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListCompaniesWithParentNameException( e, wrapIn.getQ_companyName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( companyList != null && companyList.size() > 0 ){
 						for( WrapCompany company : companyList){
@@ -375,7 +374,7 @@ public class AttendanceSelfHolidayAction extends StandardJaxrsAction{
 					}catch(Exception e){
 						Exception exception = new ListDepartmentsWithParentNameException( e, wrapIn.getQ_departmentName() );
 						result.error( exception );
-						logger.error( exception, currentPerson, request, null);
+						logger.error( e, currentPerson, request, null);
 					}
 					if( departments != null && departments.size() > 0 ){
 						for( WrapDepartment department : departments){

+ 7 - 7
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/selfholiday/AttendanceSelfHolidaySimpleAction.java

@@ -20,7 +20,6 @@ import com.x.attendance.assemble.control.service.AttendanceDetailAnalyseServiceA
 import com.x.attendance.assemble.control.service.AttendanceStatisticalCycleServiceAdv;
 import com.x.attendance.entity.AttendanceSelfHoliday;
 import com.x.attendance.entity.AttendanceStatisticalCycle;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.container.EntityManagerContainer;
@@ -30,11 +29,12 @@ import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.organization.core.express.wrap.WrapCompany;
 
 
@@ -65,7 +65,7 @@ public class AttendanceSelfHolidaySimpleAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		
 		if( check ){
@@ -119,7 +119,7 @@ public class AttendanceSelfHolidaySimpleAction extends StandardJaxrsAction{
 						} catch (Exception e) {
 							Exception exception = new GetCycleMapFromAllCyclesException( e );
 							result.error( exception );
-							logger.error( exception, currentPerson, request, null);
+							logger.error( e, currentPerson, request, null);
 						}
 						attendanceDetailAnalyseServiceAdv.analyseAttendanceDetails( attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(), attendanceSelfHoliday.getEndTime(), companyAttendanceStatisticalCycleMap );
 					}
@@ -127,7 +127,7 @@ public class AttendanceSelfHolidaySimpleAction extends StandardJaxrsAction{
 			} catch ( Exception e ) {
 				Exception exception = new AttendanceSelfHolidaySaveException( e );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		
@@ -174,7 +174,7 @@ public class AttendanceSelfHolidaySimpleAction extends StandardJaxrsAction{
 							} catch (Exception e) {
 								Exception exception = new GetCycleMapFromAllCyclesException( e );
 								result.error( exception );
-								logger.error( exception, currentPerson, request, null);
+								logger.error( e, currentPerson, request, null);
 							}
 							attendanceDetailAnalyseServiceAdv.analyseAttendanceDetails( attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(), attendanceSelfHoliday.getEndTime(), companyAttendanceStatisticalCycleMap );
 						}
@@ -184,7 +184,7 @@ public class AttendanceSelfHolidaySimpleAction extends StandardJaxrsAction{
 		} catch ( Exception e ) {
 			Exception exception = new AttendanceSelfHolidayDeleteByDocIdException( e, docId );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		result.setData( wrapOutMessage );
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 5 - 4
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/uuid/UUIDAction.java

@@ -12,15 +12,16 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.google.gson.JsonElement;
-import com.x.base.core.application.jaxrs.AbstractJaxrsAction;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.AbstractJaxrsAction;
+import com.x.base.core.project.jaxrs.ResponseFactory;
 
 /**
  * 该类旨在提供一个服务创建唯一的UNID

+ 14 - 14
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/workplace/AttendanceWorkPlaceAction.java

@@ -17,17 +17,17 @@ import javax.ws.rs.core.Response;
 import com.google.gson.JsonElement;
 import com.x.attendance.assemble.control.service.AttendanceWorkPlaceServiceAdv;
 import com.x.attendance.entity.AttendanceWorkPlace;
-import com.x.base.core.application.jaxrs.StandardJaxrsAction;
 import com.x.base.core.bean.BeanCopyTools;
 import com.x.base.core.bean.BeanCopyToolsBuilder;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutId;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 
 
 @Path("workplace")
@@ -55,7 +55,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 			check = false;
 			Exception exception = new WrapInConvertException( e, jsonElement );
 			result.error( exception );
-			logger.error( exception, currentPerson, request, null);
+			logger.error( e, currentPerson, request, null);
 		}
 		if( check ){
 			if( wrapIn.getErrorRange() == null || wrapIn.getPlaceName().isEmpty() ){
@@ -67,7 +67,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkPlaceNameEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -75,7 +75,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkPlaceLatitudeEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -83,7 +83,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkPlaceLongitudeEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -103,7 +103,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkPlaceWrapInException(e);
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -113,7 +113,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 			} catch (Exception e) {
 				Exception exception = new AttendanceWorkPlaceSaveException(e);
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		
@@ -138,7 +138,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkPlaceListAllException(e);
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -149,7 +149,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				} catch (Exception e) {
 					Exception exception = new AttendanceWorkPlaceWrapOutException(e);
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 			}
 		}
@@ -174,7 +174,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				check = false;
 				Exception exception = new AttendanceWorkPlaceyQueryByIdException(e, id);
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
 			}
 		}
 		if( check ){
@@ -185,7 +185,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
 				} catch (Exception e) {
 					Exception exception = new AttendanceWorkPlaceWrapOutException(e);
 					result.error( exception );
-					logger.error( exception, currentPerson, request, null);
+					logger.error( e, currentPerson, request, null);
 				}
 				
 			}
@@ -208,7 +208,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
         		check = false;
         		Exception exception = new AttendanceWorkPlaceIdEmptyException();
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				//logger.error( e, currentPerson, request, null);
         	}
         }
         if( check ){
@@ -218,7 +218,7 @@ public class AttendanceWorkPlaceAction extends StandardJaxrsAction{
     		} catch (Exception e) {
     			Exception exception = new AttendanceWorkPlaceDeleteException( e, id );
 				result.error( exception );
-				logger.error( exception, currentPerson, request, null);
+				logger.error( e, currentPerson, request, null);
     		}
         }
 		return ResponseFactory.getDefaultActionResultResponse(result);

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceAppealInfoServiceAdv.java

@@ -2,8 +2,7 @@ package com.x.attendance.assemble.control.service;
 
 import java.util.Date;
 import java.util.List;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.entity.AttendanceAppealInfo;
@@ -11,6 +10,8 @@ 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.CheckPersistType;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 
 public class AttendanceAppealInfoServiceAdv {
 	

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java

@@ -6,8 +6,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.assemble.control.factory.AttendanceStatisticRequireLogFactory;
@@ -21,6 +20,8 @@ import com.x.attendance.entity.AttendanceWorkDayConfig;
 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.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 import com.x.organization.core.express.wrap.WrapCompany;
 import com.x.organization.core.express.wrap.WrapDepartment;
 

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailService.java

@@ -1,8 +1,7 @@
 package com.x.attendance.assemble.control.service;
 
 import java.util.List;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.entity.AttendanceDetail;
@@ -11,6 +10,8 @@ import com.x.attendance.entity.AttendanceEmployeeConfig;
 import com.x.attendance.entity.AttendanceSetting;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.entity.annotation.CheckPersistType;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 
 
 public class AttendanceDetailService {

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailServiceAdv.java

@@ -2,8 +2,7 @@ package com.x.attendance.assemble.control.service;
 
 import java.util.Date;
 import java.util.List;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.entity.AttendanceDetail;
@@ -11,6 +10,8 @@ import com.x.attendance.entity.AttendanceDetailMobile;
 import com.x.attendance.entity.AttendanceEmployeeConfig;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 
 public class AttendanceDetailServiceAdv {
 	

+ 2 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceSettingService.java

@@ -2,14 +2,14 @@ package com.x.attendance.assemble.control.service;
 
 import java.util.List;
 
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.entity.AttendanceSetting;
 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.entity.annotation.CheckRemoveType;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 
 public class AttendanceSettingService {
 	

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticService.java

@@ -4,8 +4,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.assemble.control.factory.AttendanceDetailStatisticFactory;
 import com.x.attendance.assemble.control.factory.StatisticDepartmentForMonthFactory;
@@ -20,6 +19,8 @@ import com.x.attendance.entity.StatisticPersonForMonth;
 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.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 import com.x.organization.core.express.wrap.WrapDepartment;
 import com.x.organization.core.express.wrap.WrapIdentity;
 

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticServiceAdv.java

@@ -3,8 +3,7 @@ package com.x.attendance.assemble.control.service;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.entity.AttendanceStatisticRequireLog;
 import com.x.attendance.entity.AttendanceStatisticalCycle;
 import com.x.attendance.entity.AttendanceWorkDayConfig;
@@ -15,6 +14,8 @@ import com.x.attendance.entity.StatisticDepartmentForMonth;
 import com.x.attendance.entity.StatisticPersonForMonth;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 
 public class AttendanceStatisticServiceAdv {
 	

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticalCycleService.java

@@ -5,8 +5,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.entity.AttendanceDetail;
@@ -15,6 +14,8 @@ import com.x.attendance.entity.AttendanceStatisticalCycle;
 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.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 import com.x.organization.core.express.wrap.WrapDepartment;
 import com.x.organization.core.express.wrap.WrapIdentity;
 

+ 3 - 2
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticalCycleServiceAdv.java

@@ -5,8 +5,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import com.x.base.core.logger.Logger;
-import com.x.base.core.logger.LoggerFactory;
+
 import com.x.attendance.assemble.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.entity.AttendanceDetail;
@@ -14,6 +13,8 @@ import com.x.attendance.entity.AttendanceStatisticalCycle;
 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.logger.Logger;
+import com.x.base.core.logger.LoggerFactory;
 import com.x.organization.core.express.wrap.WrapDepartment;
 import com.x.organization.core.express.wrap.WrapIdentity;
 

+ 7 - 17
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/servlet/download/DownloadServlet.java

@@ -9,8 +9,6 @@ import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang3.StringUtils;
-
 import com.x.attendance.assemble.control.jaxrs.attendanceimportfileinfo.WrapOutAttendanceImportFileInfo;
 import com.x.attendance.entity.AttendanceImportFileInfo;
 import com.x.base.core.application.servlet.AbstractServletAction;
@@ -33,35 +31,27 @@ public class DownloadServlet extends AbstractServletAction {
 	protected void doGet(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
 		AttendanceImportFileInfo fileInfo = null;
-		boolean streamContentType = false;
+		boolean streamContentType = true;
 		request.setCharacterEncoding("UTF-8");
 		try {
-			EffectivePerson effectivePerson = this.effectivePerson(request);
-			logger.debug("[downloadFile]用户" + effectivePerson.getName() + "尝试下载数据文件.....");
-			String part = this.getURIPart(request.getRequestURI(), "download");
-			logger.debug("[downloadFile]截取URL, part=[" + part + "]");
+			EffectivePerson effectivePerson = this.effectivePerson( request );
 			// 从URI里截取需要的信息
-			String id = StringUtils.substringBefore(part, "/"); // 附件的ID
-			logger.debug("[downloadFile]从URL中获取文件的ID, id=[" + id + "]");
-			// part = StringUtils.substringAfter(part, "/");
-			logger.debug("[downloadFile]从URL中获取part, part=[" + part + "]");
+			String id = this.getURIPart( request.getRequestURI(), "download" );
 
-			streamContentType = StringUtils.endsWith(part, "/stream");
-			logger.info("[downloadFile]用application/octet-stream输出,streamContentType=" + streamContentType);
 			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 				OutputStream output = response.getOutputStream();
-				logger.debug("[downloadFile]系统尝试从数据库中根据ID进行查询......");
+				logger.debug("系统尝试从数据库中根据ID进行查询......");
 				fileInfo = emc.find(id, AttendanceImportFileInfo.class);
 				if (fileInfo != null) {
-					logger.debug("[downloadFile]成功从数据库中查询到文件信息:filename=" + fileInfo.getFileName());
+					logger.debug("成功从数据库中查询到文件信息:filename=" + fileInfo.getFileName());
 					try {
 						byte[] buffer = fileInfo.getFileBody();
-						logger.debug("[downloadFile]设置浏览器响应头......");
+						logger.debug("设置浏览器响应头......");
 						this.setResponseHeader(response, streamContentType, fileInfo);
 						output.write(buffer, 0, buffer.length);
 						output.flush();
 					} catch (Exception e) {
-						logger.info("[downloadFile]数据文件流向浏览器输出时发生异常!");
+						logger.info("数据文件流向浏览器输出时发生异常!");
 						e.printStackTrace();
 					} finally {
 						if (output != null) {

+ 14 - 19
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/servlet/download/ExportAbnormalCaseDetailsServlet.java

@@ -3,6 +3,7 @@ package com.x.attendance.assemble.control.servlet.download;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.net.URLEncoder;
+import java.util.Date;
 import java.util.List;
 
 import javax.servlet.ServletException;
@@ -10,12 +11,12 @@ import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang3.StringUtils;
 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.common.date.DateOperation;
 import com.x.attendance.assemble.control.Business;
 import com.x.attendance.assemble.control.jaxrs.attendanceimportfileinfo.WrapOutAttendanceImportFileInfo;
 import com.x.attendance.entity.AttendanceAppealInfo;
@@ -24,7 +25,6 @@ import com.x.base.core.application.servlet.AbstractServletAction;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.http.ActionResult;
-import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
@@ -36,28 +36,23 @@ public class ExportAbnormalCaseDetailsServlet extends AbstractServletAction {
 	private static final long serialVersionUID = -4314532091497625540L;
 	private Logger logger = LoggerFactory.getLogger(ExportAbnormalCaseDetailsServlet.class);
 
-	@HttpMethodDescribe(value = "导出信息 servlet/export/abnormaldetails/{year}/{month}/stream", response = WrapOutAttendanceImportFileInfo.class)
+	@HttpMethodDescribe(value = "导出信息 servlet/export/abnormaldetails/year/{year}/month/{month}", response = WrapOutAttendanceImportFileInfo.class)
 	protected void doGet(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
-		boolean streamContentType = false;
+		boolean streamContentType = true;
 		request.setCharacterEncoding("UTF-8");
+		DateOperation dateOperation = new DateOperation();
 		try {
-			EffectivePerson effectivePerson = this.effectivePerson(request);
-			logger.info("[ExportAbnormalCaseDetailsServlet]用户" + effectivePerson.getName() + "尝试下载数据文件.....");
-			String part = this.getURIPart(request.getRequestURI(), "abnormaldetails");
-			logger.info("[ExportAbnormalCaseDetailsServlet]截取URL, part=[" + part + "]");
 			// 从URI里截取需要的信息
-			String year = StringUtils.substringBefore(part, "/"); // year
-			logger.info("[ExportAbnormalCaseDetailsServlet]从URL中获取year, year=[" + year + "]");
-			part = StringUtils.substringAfter(part, "/"); // {month}/stream
-			logger.info("[ExportAbnormalCaseDetailsServlet]从URL中获取part, part=[" + part + "]");
-			String month = StringUtils.substringBefore(part, "/"); // year
-			logger.info("[ExportAbnormalCaseDetailsServlet]从URL中获取month, month=[" + month + "]");
-			part = StringUtils.substringAfter(part, "/"); // {month}/stream
-			logger.info("[ExportAbnormalCaseDetailsServlet]从URL中获取part, part=[" + part + "]");
-			streamContentType = StringUtils.endsWith(part, "stream");
-			logger.info("[downloadFile]用application/octet-stream输出,streamContentType=" + streamContentType);
-
+			String year = this.getURIPart( request.getRequestURI(), "year" );
+			String month = this.getURIPart( request.getRequestURI(), "month" );
+			if( year == null || year.isEmpty() ){
+				year = dateOperation.getYear( new Date() );
+			}
+			if( month == null || month.isEmpty() ){
+				month = dateOperation.getMonth( new Date() );
+			}
+			
 			List<String> ids = null;
 			List<AttendanceDetail> detailList = null;
 			// 先组织一个EXCEL

+ 93 - 56
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/servlet/download/ExportSelfHolidayDetailsServlet.java

@@ -11,7 +11,6 @@ import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -37,96 +36,134 @@ public class ExportSelfHolidayDetailsServlet extends AbstractServletAction {
 	private static final long serialVersionUID = -4314532091497625540L;
 	private Logger logger = LoggerFactory.getLogger(ExportSelfHolidayDetailsServlet.class);
 
+	@SuppressWarnings("resource")
 	@HttpMethodDescribe(value = "导出信息 servlet/export/selfholiday/{startdate}/{enddate}/stream", response = WrapOutAttendanceImportFileInfo.class)
 	protected void doGet(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException {
-		boolean streamContentType = false;
+		ActionResult<Object> result = null;
+		Boolean streamContentType = true;
+		OutputStream output = null;
+		Date startDate = null;
+		Date endDate = null;
 		request.setCharacterEncoding("UTF-8");
 		DateOperation dateOperation = new DateOperation();
 		try {
 			EffectivePerson effectivePerson = this.effectivePerson(request);
-			logger.debug("[ExportSelfHolidayDetailsServlet]用户" + effectivePerson.getName() + "尝试下载数据文件.....");
-			String part = this.getURIPart(request.getRequestURI(), "selfholiday");
-			logger.debug("[ExportSelfHolidayDetailsServlet]截取URL, part=[" + part + "]");
-			// 从URI里截取需要的信息
-			String startdate = StringUtils.substringBefore(part, "/"); // year
-			logger.debug("[ExportSelfHolidayDetailsServlet]从URL中获取year, startdate=[" + startdate + "]");
-			part = StringUtils.substringAfter(part, "/"); // {month}/stream
-			logger.debug("[ExportSelfHolidayDetailsServlet]从URL中获取part, part=[" + part + "]");
-			String enddate = StringUtils.substringBefore(part, "/"); // year
-			logger.debug("[ExportSelfHolidayDetailsServlet]从URL中获取month, enddate=[" + enddate + "]");
-			part = StringUtils.substringAfter(part, "/"); // {month}/stream
-			logger.debug("[ExportSelfHolidayDetailsServlet]从URL中获取part, part=[" + part + "]");
-			streamContentType = StringUtils.endsWith(part, "stream");
-			logger.info("[downloadFile]用application/octet-stream输出,streamContentType=" + streamContentType);
-
+			String startdate = this.getURIPart( request.getRequestURI(), "selfholiday" );
+			String enddate = this.getURIPart( request.getRequestURI(), startdate );
 			List<String> ids = null;
 			List<AttendanceSelfHoliday> detailList = null;
 			// 先组织一个EXCEL
 			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 				Business business = new Business(emc);
 
-				Date startDate = dateOperation.getDateFromString(startdate + " 00:00:00");
-				Date endDate = dateOperation.getDateFromString(enddate + " 23:59:59");
-
-				ids = business.getAttendanceSelfHolidayFactory().listByStartDateAndEndDate(startDate, endDate);
-				detailList = business.getAttendanceSelfHolidayFactory().list(ids);
+				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 + "]");
+				}
+				
+				ids = business.getAttendanceSelfHolidayFactory().listByStartDateAndEndDate( startDate, endDate );
+				
+				if( ids != null && !ids.isEmpty() ){
+					detailList = business.getAttendanceSelfHolidayFactory().list(ids);
+				}
+				
 			} catch (Exception e) {
 				logger.info("系统在查询所有[" + startdate + "] 到 [" + enddate + "]的所有请假记录时发生异常。");
 				e.printStackTrace();
 			}
 			// 将结果组织成EXCEL
 			String fileName = "" + startdate + "至" + enddate + "月请假记录.xls";
-			Workbook wb = new HSSFWorkbook();
+			
 			AttendanceSelfHoliday attendanceSelfHoliday = null;
-			if (detailList != null && detailList.size() > 0) {
-				// 创建新的表格
-				Sheet sheet = wb.createSheet("请假记录");
-				Row row = null;
-
-				// 先创建表头
-				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("其他说明");
+			Workbook wb = new HSSFWorkbook();
+			// 创建新的表格
+			Sheet sheet = wb.createSheet("请假记录");
+			Row row = null;
 
+			// 先创建表头
+			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 ( detailList != null && detailList.size() > 0 ) {
+				
+				logger.info("[" + startdate + "] 到 [" + enddate + "]一共有"+detailList.size()+"条请求记录可以输出。");
+				
 				for (int i = 0; i < detailList.size(); i++) {
 					attendanceSelfHoliday = detailList.get(i);
-					row = sheet.createRow(i + 1);
-					row.createCell(0).setCellValue(attendanceSelfHoliday.getCompanyName());
-					row.createCell(1).setCellValue(attendanceSelfHoliday.getOrganizationName());
-					row.createCell(2).setCellValue(attendanceSelfHoliday.getEmployeeName());
-					row.createCell(3).setCellValue(attendanceSelfHoliday.getLeaveType());
-					row.createCell(4).setCellValue(dateOperation
-							.getDateStringFromDate(attendanceSelfHoliday.getStartTime(), "yyyy-MM-dd HH:mm:ss"));
-					row.createCell(5).setCellValue(dateOperation
-							.getDateStringFromDate(attendanceSelfHoliday.getEndTime(), "yyyy-MM-dd HH:mm:ss"));
-					row.createCell(6).setCellValue(attendanceSelfHoliday.getLeaveDayNumber());
-					row.createCell(7).setCellValue(attendanceSelfHoliday.getDescription());
+					if( attendanceSelfHoliday != null ){
+						row = sheet.createRow(i + 1);
+						row.createCell(0).setCellValue(attendanceSelfHoliday.getCompanyName());
+						row.createCell(1).setCellValue(attendanceSelfHoliday.getOrganizationName());
+						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());
+						}
+					}
 				}
 			}
+			
 			// 向浏览器输出文件流
-			OutputStream output = response.getOutputStream();
-			this.setResponseHeader(response, streamContentType, fileName);
-			wb.write(output);
+			output = response.getOutputStream();
+			setResponseHeader( response, streamContentType, fileName );
+			wb.write( output );
 			output.flush();
-			output.close();
+			
 		} catch (Exception e) {
 			e.printStackTrace();
 			logger.info("[ExportSelfHolidayDetailsServlet]用户下载请假记录文件发生未知异常!");
-			ActionResult<Object> result = new ActionResult<>();
+			result = new ActionResult<>();
 			result.error(e);
 			response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-			this.result(response, result);
+			result( response, result );
+		} finally{
+			if( output != null ){
+				output.close();
+			}
 		}
 	}
 
-	private void setResponseHeader(HttpServletResponse response, boolean streamContentType, String fileName)
+	private void setResponseHeader(HttpServletResponse response, Boolean streamContentType, String fileName)
 			throws Exception {
 		if (streamContentType) {
 			response.setHeader("Content-Type", "application/octet-stream");

+ 8 - 4
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/task/AttendanceStatisticTask.java

@@ -1,10 +1,10 @@
 package com.x.attendance.assemble.control.task;
 
-import java.util.TimerTask;
-
 import com.x.attendance.assemble.control.service.AttendanceStatisticServiceAdv;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.Context;
+import com.x.base.core.project.clock.ClockScheduleTask;
 
 /**
  * 定时统计代理,定时对所有的统计需求进行统计
@@ -12,11 +12,15 @@ import com.x.base.core.logger.LoggerFactory;
  * @author LIYI
  *
  */
-public class AttendanceStatisticTask extends TimerTask {
+public class AttendanceStatisticTask extends ClockScheduleTask {
 
 	private Logger logger = LoggerFactory.getLogger( AttendanceStatisticTask.class );
 
-	public void run() {
+	public AttendanceStatisticTask(Context context) {
+		super(context);
+	}
+	
+	public void execute() {
 		AttendanceStatisticServiceAdv attendanceStatisticServiceAdv = new AttendanceStatisticServiceAdv();
 		attendanceStatisticServiceAdv.doStatistic();
 		logger.info( "Timertask completed and excute success." );

+ 10 - 4
x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/task/MobileRecordAnalyseTask.java

@@ -1,7 +1,6 @@
 package com.x.attendance.assemble.control.task;
 
 import java.util.List;
-import java.util.TimerTask;
 
 import com.x.attendance.assemble.control.service.AttendanceDetailMobileAnalyseServiceAdv;
 import com.x.attendance.assemble.control.service.AttendanceDetailMobileService;
@@ -9,17 +8,24 @@ import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
+import com.x.base.core.project.Context;
+import com.x.base.core.project.clock.ClockScheduleTask;
 
 /**
  * 定期对用户手机打卡记录进行分析
  */
-public class MobileRecordAnalyseTask extends TimerTask {
+public class MobileRecordAnalyseTask extends ClockScheduleTask {
 
 	private Logger logger = LoggerFactory.getLogger( MobileRecordAnalyseTask.class );
 	
 	private AttendanceDetailMobileService attendanceDetailMobileService = new AttendanceDetailMobileService();
 	private AttendanceDetailMobileAnalyseServiceAdv attendanceDetailMobileAnalyseServiceAdv = new AttendanceDetailMobileAnalyseServiceAdv();
-	public void run() {
+	
+	public MobileRecordAnalyseTask(Context context) {
+		super(context);
+	}
+	
+	public void execute() {
 		List<String> ids = null;
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			ids = attendanceDetailMobileService.listAllAnalyseWithStatus( emc, 0 );	
@@ -35,6 +41,6 @@ public class MobileRecordAnalyseTask extends TimerTask {
 				}
 			}
 		}
-		logger.info( "Timertask completed and excute success." );
+		logger.info( "Timertask MobileRecordAnalyseTask completed and excute success." );
 	}
 }

+ 2 - 2
x_attendance_assemble_control/src/main/resources/META-INF/persistence.xml

@@ -45,8 +45,8 @@
   </persistence-unit>
   <persistence-unit name="com.x.attendance.entity.AttendanceScheduleSetting" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    <class>com.x.attendance.entity.AttendanceScheduleSetting</class>
     <class>com.x.base.core.entity.JpaObject</class>
+    <class>com.x.attendance.entity.AttendanceScheduleSetting</class>
     <class>com.x.base.core.entity.SliceJpaObject</class>
     <properties/>
   </persistence-unit>
@@ -80,8 +80,8 @@
   </persistence-unit>
   <persistence-unit name="com.x.attendance.entity.AttendanceWorkDayConfig" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    <class>com.x.base.core.entity.JpaObject</class>
     <class>com.x.attendance.entity.AttendanceWorkDayConfig</class>
+    <class>com.x.base.core.entity.JpaObject</class>
     <class>com.x.base.core.entity.SliceJpaObject</class>
     <properties/>
   </persistence-unit>

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceAdmin_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceAdmin.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceAdmin_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceAdmin,String> adminLevel;
     public static volatile SingularAttribute<AttendanceAdmin,String> adminName;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceAppealInfo_.java

@@ -13,7 +13,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceAppealInfo.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceAppealInfo_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceAppealInfo,String> address;
     public static volatile SingularAttribute<AttendanceAppealInfo,String> appealDateString;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceDetailMobile_.java

@@ -13,7 +13,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceDetailMobile.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceDetailMobile_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceDetailMobile,Date> createTime;
     public static volatile SingularAttribute<AttendanceDetailMobile,String> description;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceDetail_.java

@@ -16,7 +16,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceDetail.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceDetail_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceDetail,String> abnormalDutyDayTime;
     public static volatile SingularAttribute<AttendanceDetail,Double> absence;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceEmployeeConfig_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceEmployeeConfig.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceEmployeeConfig_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceEmployeeConfig,String> companyName;
     public static volatile SingularAttribute<AttendanceEmployeeConfig,String> companyOu;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceImportFileInfo_.java

@@ -13,7 +13,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceImportFileInfo.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceImportFileInfo_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceImportFileInfo,Date> createTime;
     public static volatile SingularAttribute<AttendanceImportFileInfo,String> creatorUid;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceScheduleSetting_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceScheduleSetting.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceScheduleSetting_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceScheduleSetting,String> absenceStartTime;
     public static volatile SingularAttribute<AttendanceScheduleSetting,String> companyName;

+ 2 - 2
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceSelfHoliday.java

@@ -134,7 +134,7 @@ public class AttendanceSelfHoliday extends SliceJpaObject {
 	/* ==================================================================================
 	 *                             以下为具体不同的业务及数据表字段要求
 	 * ================================================================================== */
-	@EntityFieldDescribe("公司名称")
+	@EntityFieldDescribe("流程WorkId")
 	@Column(name="xdocId", length = JpaObject.length_id)
 	@CheckPersist( allowEmpty = true)
 	private String docId;
@@ -187,7 +187,7 @@ public class AttendanceSelfHoliday extends SliceJpaObject {
 	@EntityFieldDescribe("请假天数")
 	@Column(name="xleaveDayNumber" )
 	@CheckPersist( allowEmpty = true )
-	private Double leaveDayNumber;
+	private Double leaveDayNumber = 0.0;
 	
 	@EntityFieldDescribe("请假说明")
 	@Column(name="xdescription", length = JpaObject.length_255B )

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceSelfHoliday_.java

@@ -13,7 +13,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceSelfHoliday.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceSelfHoliday_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceSelfHoliday,String> companyName;
     public static volatile SingularAttribute<AttendanceSelfHoliday,String> companyOu;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceSetting_.java

@@ -14,7 +14,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceSetting.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceSetting_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceSetting,String> configCode;
     public static volatile SingularAttribute<AttendanceSetting,String> configName;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceStatisticRequireLog_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceStatisticRequireLog.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceStatisticRequireLog_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceStatisticRequireLog,Date> createTime;
     public static volatile SingularAttribute<AttendanceStatisticRequireLog,String> description;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceStatisticalCycle_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceStatisticalCycle.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceStatisticalCycle_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceStatisticalCycle,String> companyName;
     public static volatile SingularAttribute<AttendanceStatisticalCycle,Date> createTime;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceWorkDayConfig_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceWorkDayConfig.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceWorkDayConfig_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceWorkDayConfig,String> configDate;
     public static volatile SingularAttribute<AttendanceWorkDayConfig,String> configMonth;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceWorkPlace_.java

@@ -13,7 +13,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.AttendanceWorkPlace.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class AttendanceWorkPlace_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<AttendanceWorkPlace,Date> createTime;
     public static volatile SingularAttribute<AttendanceWorkPlace,String> creator;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticCompanyForDay_.java

@@ -14,7 +14,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.StatisticCompanyForDay.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:53 CST 2017")
 public class StatisticCompanyForDay_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<StatisticCompanyForDay,Long> abNormalDutyCount;
     public static volatile SingularAttribute<StatisticCompanyForDay,Double> absenceDayCount;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticCompanyForMonth_.java

@@ -14,7 +14,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.StatisticCompanyForMonth.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:54 CST 2017")
 public class StatisticCompanyForMonth_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<StatisticCompanyForMonth,Long> abNormalDutyCount;
     public static volatile SingularAttribute<StatisticCompanyForMonth,Double> absenceDayCount;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticDepartmentForDay_.java

@@ -14,7 +14,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.StatisticDepartmentForDay.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:54 CST 2017")
 public class StatisticDepartmentForDay_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<StatisticDepartmentForDay,Long> abNormalDutyCount;
     public static volatile SingularAttribute<StatisticDepartmentForDay,Double> absenceDayCount;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticDepartmentForMonth_.java

@@ -14,7 +14,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.StatisticDepartmentForMonth.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:54 CST 2017")
 public class StatisticDepartmentForMonth_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<StatisticDepartmentForMonth,Long> abNormalDutyCount;
     public static volatile SingularAttribute<StatisticDepartmentForMonth,Double> absenceDayCount;

+ 1 - 1
x_attendance_core_entity/src/main/java/com/x/attendance/entity/StatisticPersonForMonth_.java

@@ -14,7 +14,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.attendance.entity.StatisticPersonForMonth.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:07:18 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:33:54 CST 2017")
 public class StatisticPersonForMonth_ extends SliceJpaObject_  {
     public static volatile SingularAttribute<StatisticPersonForMonth,Long> abNormalDutyCount;
     public static volatile SingularAttribute<StatisticPersonForMonth,Double> absenceDayCount;

+ 14 - 14
x_attendance_core_entity/src/main/resources/META-INF/persistence.xml

@@ -2,26 +2,26 @@
 
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
   <persistence-unit name="enhance">
-    <class>com.x.attendance.entity.AttendanceSelfHoliday</class>
-    <class>com.x.attendance.entity.StatisticDepartmentForDay</class>
-    <class>com.x.attendance.entity.AttendanceScheduleSetting</class>
-    <class>com.x.attendance.entity.StatisticDepartmentForMonth</class>
-    <class>com.x.attendance.entity.AttendanceAdmin</class>
+    <class>com.x.base.core.entity.SliceJpaObject</class>
     <class>com.x.attendance.entity.AttendanceImportFileInfo</class>
-    <class>com.x.attendance.entity.AttendanceStatisticRequireLog</class>
-    <class>com.x.attendance.entity.AttendanceAppealInfo</class>
+    <class>com.x.attendance.entity.StatisticCompanyForDay</class>
+    <class>com.x.attendance.entity.AttendanceEmployeeConfig</class>
+    <class>com.x.attendance.entity.StatisticDepartmentForMonth</class>
+    <class>com.x.attendance.entity.StatisticCompanyForMonth</class>
     <class>com.x.base.core.entity.StorageObject</class>
-    <class>com.x.base.core.entity.SliceJpaObject</class>
     <class>com.x.attendance.entity.AttendanceDetailMobile</class>
-    <class>com.x.attendance.entity.AttendanceEmployeeConfig</class>
-    <class>com.x.attendance.entity.AttendanceWorkPlace</class>
+    <class>com.x.attendance.entity.AttendanceSelfHoliday</class>
+    <class>com.x.attendance.entity.AttendanceAdmin</class>
     <class>com.x.base.core.entity.JpaObject</class>
+    <class>com.x.attendance.entity.StatisticPersonForMonth</class>
+    <class>com.x.attendance.entity.AttendanceAppealInfo</class>
     <class>com.x.attendance.entity.AttendanceDetail</class>
     <class>com.x.attendance.entity.AttendanceStatisticalCycle</class>
-    <class>com.x.attendance.entity.AttendanceWorkDayConfig</class>
-    <class>com.x.attendance.entity.StatisticCompanyForMonth</class>
     <class>com.x.attendance.entity.AttendanceSetting</class>
-    <class>com.x.attendance.entity.StatisticPersonForMonth</class>
-    <class>com.x.attendance.entity.StatisticCompanyForDay</class>
+    <class>com.x.attendance.entity.AttendanceStatisticRequireLog</class>
+    <class>com.x.attendance.entity.AttendanceWorkPlace</class>
+    <class>com.x.attendance.entity.AttendanceScheduleSetting</class>
+    <class>com.x.attendance.entity.StatisticDepartmentForDay</class>
+    <class>com.x.attendance.entity.AttendanceWorkDayConfig</class>
   </persistence-unit>
 </persistence>

+ 0 - 1
x_attendance_core_entity/x_attendance_core_entity_build.xml

@@ -9,7 +9,6 @@
 		<antcall target="common.clean" />
 		<antcall target="common.compile" />
 		<antcall target="common.metamodel" />
-		<antcall target="common.compile" />
 		<antcall target="common.createEnhancePersistenceXml" />
 		<antcall target="common.enhance" />
 		<antcall target="common.jar" />

+ 4 - 0
x_base_core_project/src/main/java/com/x/base/core/DefaultCharset.java

@@ -10,6 +10,10 @@ public class DefaultCharset {
 
 	public static final String name = Charset.forName("UTF-8").name();
 
+	public static final Charset charset_iso_8859_1 = Charset.forName("iso-8859-1");
+
+	public static final String name_iso_8859_1 = Charset.forName("iso-8859-1").name();
+
 	@Test
 	public void test() {
 		Charset charset = Charset.forName("utf-8");

+ 5 - 0
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/AbstractActionApplication.java

@@ -5,9 +5,12 @@ import java.util.Set;
 
 import javax.ws.rs.core.Application;
 
+import org.glassfish.jersey.media.multipart.MultiPartFeature;
+
 import com.x.base.core.application.jaxrs.cache.CacheAction;
 import com.x.base.core.application.jaxrs.echo.EchoAction;
 import com.x.base.core.application.jaxrs.logger.LoggerAction;
+import com.x.base.core.project.jaxrs.clockschedule.ClockScheduleAction;
 
 public abstract class AbstractActionApplication extends Application {
 	protected Set<Object> singletons = new HashSet<>();
@@ -17,8 +20,10 @@ public abstract class AbstractActionApplication extends Application {
 		classes.add(EchoAction.class);
 		classes.add(CacheAction.class);
 		classes.add(LoggerAction.class);
+		classes.add(ClockScheduleAction.class);
 		// providers
 		classes.add(WrapInMessageBodyReader.class);
+		classes.add(MultiPartFeature.class);
 	}
 
 }

+ 2 - 0
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/AnonymousJaxrsFilter.java

@@ -31,6 +31,8 @@ public abstract class AnonymousJaxrsFilter extends TokenFilter {
 				HttpToken httpToken = new HttpToken();
 				EffectivePerson effectivePerson = httpToken.who(request, response, Config.token().getCipher());
 				if (!TokenType.anonymous.equals(effectivePerson.getTokenType())) {
+					/** 需要自己标志500 */
+					response.setStatus(500);
 					response.setHeader("Content-Type", "application/json;charset=UTF-8");
 					response.getWriter().write(FilterTools.Application_Not_Anonymous_Json);
 				} else {

+ 0 - 2
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CacheJaxrsFilter.java

@@ -2,8 +2,6 @@ package com.x.base.core.application.jaxrs;
 
 import javax.servlet.annotation.WebFilter;
 
-import com.x.base.core.application.jaxrs.CipherManagerJaxrsFilter;
-
 @WebFilter(urlPatterns = { "/jaxrs/cache/*" })
 public class CacheJaxrsFilter extends CipherManagerJaxrsFilter {
 

+ 3 - 1
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CipherJaxrsFilter.java

@@ -29,8 +29,10 @@ public abstract class CipherJaxrsFilter extends TokenFilter {
 			FilterTools.allow(request, response);
 			if (!request.getMethod().equalsIgnoreCase("options")) {
 				HttpToken httpToken = new HttpToken();
-				EffectivePerson effectivePerson = httpToken.who(request, response,  Config.token().getCipher());
+				EffectivePerson effectivePerson = httpToken.who(request, response, Config.token().getCipher());
 				if (!TokenType.cipher.equals(effectivePerson.getTokenType())) {
+					/** 需要自己标志500 */
+					response.setStatus(500);
 					response.setHeader("Content-Type", "application/json;charset=UTF-8");
 					response.getWriter().write(FilterTools.Application_Not_Cipher_Json);
 				} else {

+ 3 - 1
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CipherManagerJaxrsFilter.java

@@ -29,9 +29,11 @@ public abstract class CipherManagerJaxrsFilter extends TokenFilter {
 			FilterTools.allow(request, response);
 			if (!request.getMethod().equalsIgnoreCase("options")) {
 				HttpToken httpToken = new HttpToken();
-				EffectivePerson effectivePerson = httpToken.who(request, response,  Config.token().getCipher());
+				EffectivePerson effectivePerson = httpToken.who(request, response, Config.token().getCipher());
 				if ((!TokenType.cipher.equals(effectivePerson.getTokenType()))
 						&& (!TokenType.manager.equals(effectivePerson.getTokenType()))) {
+					/** 需要自己标志500 */
+					response.setStatus(500);
 					response.setHeader("Content-Type", "application/json;charset=UTF-8");
 					response.getWriter().write(FilterTools.Application_Not_CipherManager_Json);
 				} else {

+ 2 - 0
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/CipherManagerUserJaxrsFilter.java

@@ -31,6 +31,8 @@ public abstract class CipherManagerUserJaxrsFilter extends TokenFilter {
 				HttpToken httpToken = new HttpToken();
 				EffectivePerson effectivePerson = httpToken.who(request, response, Config.token().getCipher());
 				if (TokenType.anonymous.equals(effectivePerson.getTokenType())) {
+					/** 需要自己标志500 */
+					response.setStatus(500);
 					response.setHeader("Content-Type", "application/json;charset=UTF-8");
 					response.getWriter().write(FilterTools.Application_Not_CipherManagerUser_Json);
 				} else {

+ 8 - 0
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/ClockScheduleJaxrsFilter.java

@@ -0,0 +1,8 @@
+package com.x.base.core.application.jaxrs;
+
+import javax.servlet.annotation.WebFilter;
+
+@WebFilter(urlPatterns = "/jaxrs/clockschedule/*", asyncSupported = true)
+public class ClockScheduleJaxrsFilter extends CipherManagerJaxrsFilter {
+
+}

+ 0 - 2
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/DruidFilter.java

@@ -2,8 +2,6 @@ package com.x.base.core.application.jaxrs;
 
 import javax.servlet.annotation.WebFilter;
 
-import com.x.base.core.application.jaxrs.CipherManagerJaxrsFilter;
-
 @WebFilter(urlPatterns = { "/druid/*" })
 public class DruidFilter extends CipherManagerJaxrsFilter {
 

+ 0 - 2
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/EchoJaxrsFilter.java

@@ -2,8 +2,6 @@ package com.x.base.core.application.jaxrs;
 
 import javax.servlet.annotation.WebFilter;
 
-import com.x.base.core.application.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
 @WebFilter(urlPatterns = { "/jaxrs/echo/*" })
 public class EchoJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter {
 

+ 3 - 1
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/ManagerUserJaxrsFilter.java

@@ -29,8 +29,10 @@ public abstract class ManagerUserJaxrsFilter extends TokenFilter {
 			FilterTools.allow(request, response);
 			if (!request.getMethod().equalsIgnoreCase("options")) {
 				HttpToken httpToken = new HttpToken();
-				EffectivePerson effectivePerson = httpToken.who(request, response,  Config.token().getCipher());
+				EffectivePerson effectivePerson = httpToken.who(request, response, Config.token().getCipher());
 				if (TokenType.anonymous.equals(effectivePerson.getTokenType())) {
+					/** 需要自己标志500 */
+					response.setStatus(500);
 					response.setHeader("Content-Type", "application/json;charset=UTF-8");
 					response.getWriter().write(FilterTools.Application_Not_ManagerUser_Json);
 				} else {

+ 3 - 1
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/UserJaxrsFilter.java

@@ -29,8 +29,10 @@ public abstract class UserJaxrsFilter extends TokenFilter {
 			FilterTools.allow(request, response);
 			if (!request.getMethod().equalsIgnoreCase("options")) {
 				HttpToken httpToken = new HttpToken();
-				EffectivePerson effectivePerson = httpToken.who(request, response,  Config.token().getCipher());
+				EffectivePerson effectivePerson = httpToken.who(request, response, Config.token().getCipher());
 				if (!TokenType.user.equals(effectivePerson.getTokenType())) {
+					/** 需要自己标志500 */
+					response.setStatus(500);
 					response.setHeader("Content-Type", "application/json;charset=UTF-8");
 					response.getWriter().write(FilterTools.Application_Not_User_Json);
 				} else {

+ 16 - 4
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/cache/CacheAction.java

@@ -1,5 +1,6 @@
 package com.x.base.core.application.jaxrs.cache;
 
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.PUT;
@@ -9,14 +10,14 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import com.x.base.core.application.jaxrs.AbstractJaxrsAction;
 import com.x.base.core.cache.ApplicationCache;
 import com.x.base.core.cache.ClearCacheRequest;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.WrapOutString;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
+import com.x.base.core.project.jaxrs.AbstractJaxrsAction;
+import com.x.base.core.project.jaxrs.ResponseFactory;
 
 @Path("cache")
 public class CacheAction extends AbstractJaxrsAction {
@@ -25,11 +26,22 @@ public class CacheAction extends AbstractJaxrsAction {
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
 	@HttpMethodDescribe(value = "处理Cache刷新信息.", request = ClearCacheRequest.class, response = WrapOutString.class)
-	public Response remove(@Context HttpServletRequest request, ClearCacheRequest clearCacheRequest) {
+	public Response remove(@Context ServletContext servletContext, @Context HttpServletRequest request,
+			ClearCacheRequest clearCacheRequest) {
 		ActionResult<WrapOutString> result = new ActionResult<>();
 		WrapOutString wrap = new WrapOutString();
 		try {
-			ApplicationCache.receive(clearCacheRequest);
+			Object o = servletContext.getAttribute(com.x.base.core.project.Context.class.getName());
+			if (null != o) {
+				com.x.base.core.project.Context cxt = (com.x.base.core.project.Context) o;
+				if (null != cxt.clearCacheRequestQueue()) {
+					cxt.clearCacheRequestQueue().send(clearCacheRequest);
+				} else {
+					ApplicationCache.receive(clearCacheRequest);
+				}
+			} else {
+				ApplicationCache.receive(clearCacheRequest);
+			}
 			wrap.setValue(clearCacheRequest.getClassName());
 			result.setData(wrap);
 		} catch (Throwable th) {

+ 1 - 1
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/echo/EchoAction.java

@@ -9,8 +9,8 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
 
 import com.x.base.core.http.ActionResult;
-import com.x.base.core.http.ResponseFactory;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
+import com.x.base.core.project.jaxrs.ResponseFactory;
 
 @Path("echo")
 public class EchoAction {

+ 48 - 46
x_base_core_project/src/main/java/com/x/base/core/application/jaxrs/logger/LoggerAction.java

@@ -1,25 +1,26 @@
 package com.x.base.core.application.jaxrs.logger;
 
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 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 javax.ws.rs.core.Response;
 
-import com.x.base.core.application.jaxrs.AbstractJaxrsAction;
 import com.x.base.core.http.ActionResult;
 import com.x.base.core.http.EffectivePerson;
 import com.x.base.core.http.HttpMediaType;
-import com.x.base.core.http.ResponseFactory;
-import com.x.base.core.http.WrapOutBoolean;
-import com.x.base.core.http.WrapOutString;
 import com.x.base.core.http.annotation.HttpMethodDescribe;
 import com.x.base.core.logger.Logger;
 import com.x.base.core.logger.LoggerFactory;
-import com.x.base.core.project.AbstractThisApplication;
+import com.x.base.core.project.jaxrs.AbstractJaxrsAction;
+import com.x.base.core.project.jaxrs.BooleanWo;
+import com.x.base.core.project.jaxrs.ResponseFactory;
+import com.x.base.core.project.jaxrs.StringWo;
 
 @Path("logger")
 public class LoggerAction extends AbstractJaxrsAction {
@@ -29,104 +30,105 @@ public class LoggerAction extends AbstractJaxrsAction {
 	@GET
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	@HttpMethodDescribe(value = "获取logger状态.", response = WrapOutString.class)
-	public Response get(@Context HttpServletRequest request) {
-		ActionResult<WrapOutString> result = new ActionResult<>();
-		WrapOutString wrap = new WrapOutString();
+	@HttpMethodDescribe(value = "获取logger状态.", response = StringWo.class)
+	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
+		ActionResult<StringWo> result = new ActionResult<>();
 		EffectivePerson effectivePerson = this.effectivePerson(request);
 		try {
-			wrap.setValue(LoggerFactory.getLevel());
-
-			result.setData(wrap);
+			result.setData(new StringWo(LoggerFactory.getLevel()));
 		} catch (Exception e) {
 			logger.error(e, effectivePerson, request, null);
 			result.error(e);
 		}
-		return ResponseFactory.getDefaultActionResultResponse(result);
+		asyncResponse.resume(ResponseFactory.getDefaultActionResultResponse(result));
 	}
 
 	@GET
 	@Path("trace")
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	@HttpMethodDescribe(value = "将logger level 调整为 trace", response = WrapOutBoolean.class)
-	public Response trace(@Context HttpServletRequest request) {
-		ActionResult<WrapOutBoolean> result = new ActionResult<>();
-		WrapOutBoolean wrap = new WrapOutBoolean();
+	@HttpMethodDescribe(value = "将logger level 调整为 trace", response = BooleanWo.class)
+	public void trace(@Suspended final AsyncResponse asyncResponse, @Context ServletContext servletContext,
+			@Context HttpServletRequest request) {
+		ActionResult<BooleanWo> result = new ActionResult<>();
 		EffectivePerson effectivePerson = this.effectivePerson(request);
 		try {
-			logger.info("{} change logger level to TRACE.", AbstractThisApplication.clazz.getName());
+			com.x.base.core.project.Context ctx = (com.x.base.core.project.Context) servletContext
+					.getAttribute(com.x.base.core.project.Context.class.getName());
+			logger.info("{} change logger level to TRACE.", ctx.clazz().getName());
 			LoggerFactory.setLevelTrace();
-			wrap.setValue(true);
-			result.setData(wrap);
+			result.setData(BooleanWo.trueInstance());
 		} catch (Exception e) {
 			logger.error(e, effectivePerson, request, null);
 			result.error(e);
 		}
-		return ResponseFactory.getDefaultActionResultResponse(result);
+		asyncResponse.resume(ResponseFactory.getDefaultActionResultResponse(result));
 	}
 
 	@GET
 	@Path("debug")
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	@HttpMethodDescribe(value = "将logger level 调整为 debug", response = WrapOutBoolean.class)
-	public Response debug(@Context HttpServletRequest request) {
-		ActionResult<WrapOutBoolean> result = new ActionResult<>();
-		WrapOutBoolean wrap = new WrapOutBoolean();
+	@HttpMethodDescribe(value = "将logger level 调整为 debug", response = BooleanWo.class)
+	public void debug(@Suspended final AsyncResponse asyncResponse, @Context ServletContext servletContext,
+			@Context HttpServletRequest request) {
+		ActionResult<BooleanWo> result = new ActionResult<>();
 		EffectivePerson effectivePerson = this.effectivePerson(request);
 		try {
-			logger.info("{} change logger level to DEBUG.", AbstractThisApplication.clazz.getName());
+			com.x.base.core.project.Context ctx = (com.x.base.core.project.Context) servletContext
+					.getAttribute(com.x.base.core.project.Context.class.getName());
+			logger.info("{} change logger level to DEBUG.", ctx.clazz().getName());
 			LoggerFactory.setLevelDebug();
-			wrap.setValue(true);
-			result.setData(wrap);
+			result.setData(BooleanWo.trueInstance());
 		} catch (Exception e) {
 			logger.error(e, effectivePerson, request, null);
 			result.error(e);
 		}
-		return ResponseFactory.getDefaultActionResultResponse(result);
+		asyncResponse.resume(ResponseFactory.getDefaultActionResultResponse(result));
 	}
 
 	@GET
 	@Path("info")
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	@HttpMethodDescribe(value = "将logger level 调整为 info", response = WrapOutBoolean.class)
-	public Response info(@Context HttpServletRequest request) {
-		ActionResult<WrapOutBoolean> result = new ActionResult<>();
-		WrapOutBoolean wrap = new WrapOutBoolean();
+	@HttpMethodDescribe(value = "将logger level 调整为 info", response = BooleanWo.class)
+	public void info(@Suspended final AsyncResponse asyncResponse, @Context ServletContext servletContext,
+			@Context HttpServletRequest request) {
+		ActionResult<BooleanWo> result = new ActionResult<>();
 		EffectivePerson effectivePerson = this.effectivePerson(request);
 		try {
-			logger.info("{} change logger level to INFO.", AbstractThisApplication.clazz.getName());
+			com.x.base.core.project.Context ctx = (com.x.base.core.project.Context) servletContext
+					.getAttribute(com.x.base.core.project.Context.class.getName());
+			logger.info("{} change logger level to INFO.", ctx.clazz().getName());
 			LoggerFactory.setLevelInfo();
-			wrap.setValue(true);
-			result.setData(wrap);
+			result.setData(BooleanWo.trueInstance());
 		} catch (Exception e) {
 			logger.error(e, effectivePerson, request, null);
 			result.error(e);
 		}
-		return ResponseFactory.getDefaultActionResultResponse(result);
+		asyncResponse.resume(ResponseFactory.getDefaultActionResultResponse(result));
 	}
 
 	@GET
 	@Path("warn")
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	@HttpMethodDescribe(value = "将logger level 调整为 warn", response = WrapOutBoolean.class)
-	public Response enable(@Context HttpServletRequest request) {
-		ActionResult<WrapOutBoolean> result = new ActionResult<>();
-		WrapOutBoolean wrap = new WrapOutBoolean();
+	@HttpMethodDescribe(value = "将logger level 调整为 warn", response = BooleanWo.class)
+	public void warn(@Suspended final AsyncResponse asyncResponse, @Context ServletContext servletContext,
+			@Context HttpServletRequest request) {
+		ActionResult<BooleanWo> result = new ActionResult<>();
 		EffectivePerson effectivePerson = this.effectivePerson(request);
 		try {
-			logger.info("{} change logger level to WARN.", AbstractThisApplication.clazz.getName());
+			com.x.base.core.project.Context ctx = (com.x.base.core.project.Context) servletContext
+					.getAttribute(com.x.base.core.project.Context.class.getName());
+			logger.info("{} change logger level to WARN.", ctx.clazz().getName());
 			LoggerFactory.setLevelWarn();
-			wrap.setValue(true);
-			result.setData(wrap);
+			result.setData(BooleanWo.trueInstance());
 		} catch (Exception e) {
 			logger.error(e, effectivePerson, request, null);
 			result.error(e);
 		}
-		return ResponseFactory.getDefaultActionResultResponse(result);
+		asyncResponse.resume(ResponseFactory.getDefaultActionResultResponse(result));
 	}
 
 }

+ 6 - 2
x_base_core_project/src/main/java/com/x/base/core/application/servlet/AbstractServletAction.java

@@ -108,11 +108,15 @@ public abstract class AbstractServletAction extends HttpServlet {
 		if (streamContentType || StringUtils.isEmpty(o.getExtension())) {
 			response.setHeader(CONTENT_TYPE, "application/octet-stream");
 			response.setHeader(CONTENT_DISPOSITION,
-					"attachment; filename=" + URLEncoder.encode(o.getName(), DefaultCharset.name));
+					"attachment; filename*=UTF-8''" + URLEncoder.encode(o.getName(), DefaultCharset.name));
+			// response.setHeader(CONTENT_DISPOSITION, "attachment;
+			// filename*=UTF-8''" + o.getName());
 		} else {
 			response.setHeader(CONTENT_TYPE, Config.mimeTypes().getMimeByExtension("." + o.getExtension()));
 			response.setHeader(CONTENT_DISPOSITION,
-					"inline; filename=" + URLEncoder.encode(o.getName(), DefaultCharset.name));
+					"inline; filename*=UTF-8''" + URLEncoder.encode(o.getName(), DefaultCharset.name));
+			// response.setHeader(CONTENT_DISPOSITION, "inline;
+			// filename*=UTF-8''" + o.getName());
 		}
 		response.setIntHeader(CONTENT_LENGTH, o.getLength().intValue());
 	}

+ 21 - 15
x_base_core_project/src/main/java/com/x/base/core/cache/ApplicationCache.java

@@ -9,12 +9,12 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.reflect.FieldUtils;
 
 import com.x.base.core.Packages;
-import com.x.base.core.application.Application;
 import com.x.base.core.entity.JpaObject;
 import com.x.base.core.gson.XGsonBuilder;
-import com.x.base.core.project.AbstractThisApplication;
 import com.x.base.core.project.Assemble;
 import com.x.base.core.project.Service;
+import com.x.base.core.project.connection.CipherConnectionAction;
+import com.x.base.core.project.server.Config;
 import com.x.base.core.utils.ListTools;
 
 import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner;
@@ -102,7 +102,7 @@ public class ApplicationCache extends AbstractApplicationCache {
 		instance().ReceiveQueue.put(clearCacheRequest);
 	}
 
-	private Ehcache getCache(String name, Integer cacheSize, Integer timeToIdle, Integer timeToLive) {
+	public Ehcache getCache(String name, Integer cacheSize, Integer timeToIdle, Integer timeToLive) {
 		Ehcache cache = manager.getCache(name);
 		if (null != cache) {
 			return cache;
@@ -186,7 +186,8 @@ public class ApplicationCache extends AbstractApplicationCache {
 					if (clearCacheRequest instanceof StopNotifyThreadSignal) {
 						break out;
 					} else {
-						dispatch(clearCacheRequest);
+						String url = Config.x_program_centerUrlRoot() + "cachedispatch";
+						CipherConnectionAction.put(url, clearCacheRequest);
 					}
 				} catch (Exception e) {
 					e.printStackTrace();
@@ -196,17 +197,22 @@ public class ApplicationCache extends AbstractApplicationCache {
 		}
 	}
 
-	private void dispatch(ClearCacheRequest clearCacheRequest) {
-		for (Class<?> cls : ListTools.nullToEmpty(incidenceMap.get(clearCacheRequest.getClassName()))) {
-			for (Application o : ListTools.nullToEmpty(AbstractThisApplication.applications.get(cls.getName()))) {
-				try {
-					AbstractThisApplication.applications.putQuery(o, "cache", clearCacheRequest);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		}
-	}
+	// private void dispatch(ClearCacheRequest clearCacheRequest) {
+	// for (Class<?> cls :
+	// ListTools.nullToEmpty(incidenceMap.get(clearCacheRequest.getClassName())))
+	// {
+	// for (Application o :
+	// ListTools.nullToEmpty(AbstractThisApplication.applications.get(cls.getName())))
+	// {
+	// try {
+	// AbstractThisApplication.applications.putQuery(o, "cache",
+	// clearCacheRequest);
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// }
+	// }
+	// }
+	// }
 
 	public class ReceiveThread extends Thread {
 		public void run() {

+ 1 - 1
x_base_core_project/src/main/java/com/x/base/core/container/factory/SlicePropertiesBuilder.java

@@ -148,7 +148,7 @@ public class SlicePropertiesBuilder {
 			if (StringUtils.equals(determineDBDictionary(list.get(0)), dictionary_informix)) {
 				properties.put("openjpa.jdbc.Schema", "x");
 			}
-			properties.put("openjpa.slice.Lenient", "true");
+			properties.put("openjpa.slice.Lenient", "false");
 			// properties.put("openjpa.Multithreaded", "true");
 			properties.put("openjpa.slice.DistributionPolicy", FactorDistributionPolicy.class.getName());
 			properties.put("openjpa.slice.Names", getSliceNames(list));

+ 1 - 1
x_base_core_project/src/main/java/com/x/base/core/entity/JpaObject_.java

@@ -12,7 +12,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.base.core.entity.JpaObject.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:46:02 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:34:15 CST 2017")
 public class JpaObject_ {
     public static volatile SingularAttribute<JpaObject,Boolean> scratchBoolean;
     public static volatile SingularAttribute<JpaObject,Date> scratchDate;

+ 1 - 1
x_base_core_project/src/main/java/com/x/base/core/entity/SliceJpaObject_.java

@@ -10,7 +10,7 @@ import javax.persistence.metamodel.SingularAttribute;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.base.core.entity.SliceJpaObject.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:46:02 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:34:15 CST 2017")
 public class SliceJpaObject_ extends JpaObject_  {
     public static volatile SingularAttribute<SliceJpaObject,Integer> distributeFactor;
 }

+ 58 - 12
x_base_core_project/src/main/java/com/x/base/core/entity/StorageObject.java

@@ -87,22 +87,43 @@ public abstract class StorageObject extends SliceJpaObject {
 	}
 
 	/** 将内容导入到bytes字段,用于进行导入导出 */
-	public void dumpContent(StorageMapping mapping) throws Exception {
+	public Long dumpContent(StorageMapping mapping) throws Exception {
+		long length = -1L;
 		try (ByteArrayOutputStream output = new ByteArrayOutputStream()) {
-			this.readContent(mapping, output);
-			this.setBytes(output.toByteArray());
+			length = this.readContent(mapping, output);
+			if (length < 0) {
+				this.setBytes(new byte[] {});
+			} else {
+				this.setBytes(output.toByteArray());
+			}
+		}
+		return length;
+	}
+
+	/** 将导入的字节进行保存 */
+	public Long saveContent(StorageMapping mapping, byte[] bytes, String name) throws Exception {
+		try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes)) {
+			return saveContent(mapping, bais, name);
 		}
 	}
 
 	/** 将导入的流进行保存 */
-	public void saveContent(StorageMapping mapping, InputStream input, String name) throws Exception {
+	public Long saveContent(StorageMapping mapping, InputStream input, String name) throws Exception {
 		this.setName(name);
 		this.setExtension(StringUtils.lowerCase(FilenameUtils.getExtension(name)));
-		this.updateContent(mapping, input);
+		return this.updateContent(mapping, input);
 	}
 
 	/** 更新Content内容 */
-	public void updateContent(StorageMapping mapping, InputStream input) throws Exception {
+	public Long updateContent(StorageMapping mapping, byte[] bytes) throws Exception {
+		try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes)) {
+			return updateContent(mapping, bais);
+		}
+	}
+
+	/** 更新Content内容 */
+	public Long updateContent(StorageMapping mapping, InputStream input) throws Exception {
+		long length = -1L;
 		FileSystemManager manager = this.getFileSystemManager();
 		String prefix = this.getPrefix(mapping);
 		String path = this.path();
@@ -112,20 +133,30 @@ public abstract class StorageObject extends SliceJpaObject {
 		FileSystemOptions options = this.getOptions(mapping);
 		try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
 			/* 由于可以在传输过程中取消传输,先拷贝到内存 */
-			IOUtils.copy(input, baos);
+			IOUtils.copyLarge(input, baos);
 			try (FileObject fo = manager.resolveFile(prefix + PATHSEPARATOR + path, options);
 					OutputStream output = fo.getContent().getOutputStream()) {
-				int length = IOUtils.copy(new ByteArrayInputStream(baos.toByteArray()), output);
-				this.setLength((long) length);
+				length = IOUtils.copyLarge(new ByteArrayInputStream(baos.toByteArray()), output);
+				this.setLength(length);
 				manager.closeFileSystem(fo.getFileSystem());
 			}
 		}
 		this.setStorage(mapping.getName());
 		this.setLastUpdateTime(new Date());
+		return length;
+	}
+
+	/** 读出内容 */
+	public byte[] readContent(StorageMapping mapping) throws Exception {
+		try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
+			readContent(mapping, baos);
+			return baos.toByteArray();
+		}
 	}
 
 	/** 将内容流出到output */
-	public void readContent(StorageMapping mapping, OutputStream output) throws Exception {
+	public Long readContent(StorageMapping mapping, OutputStream output) throws Exception {
+		long length = -1L;
 		FileSystemManager manager = this.getFileSystemManager();
 		String prefix = this.getPrefix(mapping);
 		String path = this.path();
@@ -133,14 +164,29 @@ public abstract class StorageObject extends SliceJpaObject {
 		try (FileObject fo = manager.resolveFile(prefix + PATHSEPARATOR + path, options)) {
 			if (fo.exists() && fo.isFile()) {
 				try (InputStream input = fo.getContent().getInputStream()) {
-					IOUtils.copy(input, output);
+					length = IOUtils.copyLarge(input, output);
 				}
 			}
 			manager.closeFileSystem(fo.getFileSystem());
 		}
+		return length;
+	}
+
+	/** 检查是否存在内容 */
+	public boolean existContent(StorageMapping mapping) throws Exception {
+		FileSystemManager manager = this.getFileSystemManager();
+		String prefix = this.getPrefix(mapping);
+		String path = this.path();
+		FileSystemOptions options = this.getOptions(mapping);
+		try (FileObject fo = manager.resolveFile(prefix + PATHSEPARATOR + path, options)) {
+			if (fo.exists() && fo.isFile()) {
+				return true;
+			}
+			return false;
+		}
 	}
 
-	/** 删除内容 */
+	/** 删除内容,同时判断上一级目录(只判断一级)是否为空,为空则删除上一级目录 */
 	public void deleteContent(StorageMapping mapping) throws Exception {
 		FileSystemManager manager = this.getFileSystemManager();
 		String prefix = this.getPrefix(mapping);

+ 1 - 1
x_base_core_project/src/main/java/com/x/base/core/entity/StorageObject_.java

@@ -8,6 +8,6 @@ package com.x.base.core.entity;
 @javax.persistence.metamodel.StaticMetamodel
 (value=com.x.base.core.entity.StorageObject.class)
 @javax.annotation.Generated
-(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Fri Mar 10 10:46:02 CST 2017")
+(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Sat May 06 19:34:15 CST 2017")
 public class StorageObject_ extends SliceJpaObject_  {
 }

+ 4 - 2
x_base_core_project/src/main/java/com/x/base/core/entity/item/ItemConverter.java

@@ -116,9 +116,11 @@ public class ItemConverter<T extends Item> {
 		if (t.getItemType().equals(ItemType.p)) {
 			if (t.getItemPrimitiveType().equals(ItemPrimitiveType.s)) {
 				if (t.getItemStringValueType().equals(ItemStringValueType.l)) {
-					jsonElement = new JsonPrimitive(t.getStringLobValue());
+					/**为了兼容LobItem之前可能没有的问题,需要强制转换成""*/
+					jsonElement = new JsonPrimitive(Objects.toString(t.getStringLobValue(), ""));
 				} else {
-					jsonElement = new JsonPrimitive(t.getStringValue());
+					/**为了兼容LobItem之前可能没有的问题,需要强制转换成""*/
+					jsonElement = new JsonPrimitive(Objects.toString(t.getStringValue(), ""));
 				}
 			} else if (t.getItemPrimitiveType().equals(ItemPrimitiveType.n)) {
 				jsonElement = new JsonPrimitive(t.getNumberValue());

+ 0 - 5
x_base_core_project/src/main/java/com/x/base/core/entity/tools/JpaObjectTools.java

@@ -1,20 +1,15 @@
 package com.x.base.core.entity.tools;
 
 import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
 import javax.persistence.Column;
-import javax.persistence.EntityManager;
 import javax.persistence.criteria.Path;
 
 import org.apache.commons.lang3.reflect.FieldUtils;
 import org.apache.openjpa.persistence.jdbc.ElementColumn;
-import org.junit.Test;
 
-import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.entity.JpaObject;
 import com.x.base.core.utils.StringTools;
 

+ 44 - 38
x_base_core_project/src/main/java/com/x/base/core/http/ActionResult.java

@@ -1,16 +1,12 @@
 package com.x.base.core.http;
 
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
-import java.util.List;
-import java.util.Objects;
 
 import org.apache.commons.lang3.StringUtils;
 
 import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
 import com.x.base.core.exception.PromptException;
 import com.x.base.core.gson.XGsonBuilder;
 
@@ -18,29 +14,29 @@ public class ActionResult<T> implements Serializable {
 
 	private static final long serialVersionUID = 1484547449073789817L;
 
-	private static Gson gson = XGsonBuilder.instance();
-
-	private Type type = Type.success;
+	protected static Gson gson = XGsonBuilder.instance();
 
 	public enum Type {
 		success, warn, error, connectFatal
 	}
 
-	private T data;
+	protected Type type = Type.success;
+
+	protected T data;
 
-	private Date date = new Date();
+	protected String message = "";
 
-	private Long spent = -1L;
+	protected Date date = new Date();
 
-	private Long size = -1L;
+	protected Long spent = -1L;
 
-	private Long count = 0L;
+	protected Long size = -1L;
 
-	private Long position = 0L;
+	protected Long count = 0L;
 
-	private String message = "";
+	protected Long position = 0L;
 
-	private String prompt;
+	protected String prompt;
 
 	public void setData(T data) {
 		this.data = data;
@@ -66,28 +62,6 @@ public class ActionResult<T> implements Serializable {
 		return data;
 	}
 
-	public T getData(Class<T> clz) throws Exception {
-		if (Objects.equals(this.type, Type.connectFatal)) {
-			throw new Exception(this.message);
-		}
-		if (null == data) {
-			return null;
-		}
-		return XGsonBuilder.instance().fromJson(gson.toJsonTree(data), clz);
-	}
-
-	public List<T> getListData(Class<T> clz) throws Exception {
-		if (Objects.equals(this.type, Type.connectFatal)) {
-			throw new Exception(this.message);
-		}
-		if (null == data) {
-			return new ArrayList<T>();
-		}
-		java.lang.reflect.Type listType = new TypeToken<ArrayList<T>>() {
-		}.getType();
-		return XGsonBuilder.instance().fromJson(gson.toJsonTree(data), listType);
-	}
-
 	public Type getType() {
 		return type;
 	}
@@ -148,4 +122,36 @@ public class ActionResult<T> implements Serializable {
 		return prompt;
 	}
 
-}
+	public void setType(Type type) {
+		this.type = type;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public void setSpent(Long spent) {
+		this.spent = spent;
+	}
+
+	public void setSize(Long size) {
+		this.size = size;
+	}
+
+	public void setPrompt(String prompt) {
+		this.prompt = prompt;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+}

+ 1 - 1
x_base_core_project/src/main/java/com/x/base/core/http/FilterTools.java

@@ -11,7 +11,7 @@ public class FilterTools {
 	public static final String Access_Control_Allow_Methods = "Access-Control-Allow-Methods";
 	public static final String Access_Control_Allow_Methods_Value = "GET, POST, OPTIONS, PUT, DELETE, HEAD, TRACE";
 	public static final String Access_Control_Allow_Headers = "Access-Control-Allow-Headers";
-	public static final String Access_Control_Allow_Headers_Value = "x-requested-with, x-request, x-token,Content-Type, x-cipher";
+	public static final String Access_Control_Allow_Headers_Value = "x-requested-with, x-request, x-token,Content-Type, x-cipher, x-client";
 	public static final String Access_Control_Allow_Credentials = "Access-Control-Allow-Credentials";
 
 	public static void allow(HttpServletRequest request, HttpServletResponse response) throws Exception {

+ 3 - 2
x_base_core_project/src/main/java/com/x/base/core/http/HttpToken.java

@@ -19,6 +19,7 @@ public class HttpToken {
 
 	public static final String X_Token = "x-token";
 	public static final String X_Person = "x-person";
+	public static final String X_Client = "x-client";
 	private static final String RegularExpression_IP = "([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
 	private static final String RegularExpression_Token = "^(anonymous|user|manager|cipher)([2][0][1-2][0-9][0-1][0-9][0-3][0-9][0-5][0-9][0-5][0-9][0-5][0-9])(\\S{1,})$";
 
@@ -40,11 +41,11 @@ public class HttpToken {
 				plain = Crypto.decrypt(token, key);
 			} catch (Exception e) {
 				System.out.println("can not decrypt token:" + token + ". " + e.getMessage());
+				return EffectivePerson.anonymous();
 			}
 			Pattern pattern = Pattern.compile(RegularExpression_Token, Pattern.CASE_INSENSITIVE);
 			Matcher matcher = pattern.matcher(plain);
 			if (!matcher.find()) {
-				// throw new Exception("token format error." + token);
 				/* 不报错,跳过错误,将用户设置为anonymous */
 				System.out.println("token format error:" + plain + ".");
 				return EffectivePerson.anonymous();
@@ -54,7 +55,7 @@ public class HttpToken {
 			long diff = (new Date().getTime() - date.getTime());
 			diff = Math.abs(diff);
 			if (TokenType.user.equals(tokenType) || TokenType.manager.equals(tokenType)) {
-				if (diff > (60000 * 60 * 24 * 15)) {
+				if (diff > (60000L * 60 * 24 * 15)) {
 					// throw new Exception("token expired." + token);
 					/* 不报错,跳过错误,将用户设置为anonymous */
 					System.out.println("token expired." + plain);

+ 16 - 16
x_base_core_project/src/main/java/com/x/base/core/http/annotation/tools/HttpMethodDescribeWriter.java

@@ -56,7 +56,7 @@ public class HttpMethodDescribeWriter {
 		httpMethodDescribeWriter.write(args[0], args[1]);
 	}
 
-	public void write(String directory, String name) {
+	public void write( String directory, String name ) {
 		try {
 			List<Class<?>> classes = this.scanHttpServiceClass(name);
 			if (!classes.isEmpty()) {
@@ -67,18 +67,17 @@ public class HttpMethodDescribeWriter {
 					if (clz.isAnnotationPresent(Path.class)) {
 						List<Method> methods = this.scanJaxrsMethod(clz);
 						Path typePath = clz.getAnnotation(Path.class);
-						for (Method method : methods) {
+						for ( Method method : methods ) {
 							addRow(sheet, style, typePath, method);
 						}
-					} else if (clz.isAnnotationPresent(ServerEndpoint.class)) {
+					} else if ( clz.isAnnotationPresent(ServerEndpoint.class) ) {
 						ServerEndpoint serverEndpoint = clz.getAnnotation(ServerEndpoint.class);
 						addRow(sheet, style, serverEndpoint.value(), "", "");
-					} else if (clz.isAnnotationPresent(WebServlet.class)) {
+					} else if ( clz.isAnnotationPresent(WebServlet.class) ) {
 						WebServlet webServlet = clz.getAnnotation(WebServlet.class);
-						for (Method m : MethodUtils.getMethodsWithAnnotation(clz, HttpMethodDescribe.class)) {
-							if (webServletMethods.contains(m.getName())) {
-								addRow(sheet, style, StringUtils.join(webServlet.value()), m.getName(),
-										webServlet.description());
+						for ( Method m : MethodUtils.getMethodsWithAnnotation( clz, HttpMethodDescribe.class) ) {
+							if ( webServletMethods.contains(m.getName()) ) {
+								addRow(sheet, style, StringUtils.join(webServlet.value()), m.getName(), webServlet.description());
 							}
 						}
 					}
@@ -88,13 +87,13 @@ public class HttpMethodDescribeWriter {
 				wb.write(fileOut);
 				wb.close();
 				fileOut.close();
-				System.out.println("create:" + filePath);
-				for (Class<?> clz : this.scanWrapClass(name)) {
-					createWrapDescribe(clz, directory);
+				int i = 0;
+				int total = this.scanWrapClass( name ).size();
+				for ( Class<?> clz : this.scanWrapClass( name ) ) {
+					i++;
+					System.out.println( "creating("+i+"/"+total+"):" + clz.getName() );
+					createWrapDescribe( clz, directory );
 				}
-				// for (Class<?> clz : this.scanWrapOutClass(name)) {
-				// createWrapOutDescribe(clz, directory);
-				// }
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -119,7 +118,7 @@ public class HttpMethodDescribeWriter {
 		}
 	}
 
-	private List<Class<?>> scanHttpServiceClass(String name) throws Exception {
+	private List<Class<?>> scanHttpServiceClass( String name ) throws Exception {
 		String pack = "com." + name.replaceAll("_", ".");
 		ScanResult scanResult = new FastClasspathScanner(pack).scan();
 		SetUniqueList<String> list = SetUniqueList.setUniqueList(new ArrayList<String>());
@@ -353,12 +352,13 @@ public class HttpMethodDescribeWriter {
 			cell.setCellValue(describe);
 			cell.setCellStyle(style);
 		}
+		
 		String filePath = directory + "/" + clz.getSimpleName() + ".xls";
 		FileOutputStream fileOut = new FileOutputStream(filePath);
 		wb.write(fileOut);
 		wb.close();
 		fileOut.close();
-		System.out.println("create:" + filePath);
+		System.out.println( "file created:" + filePath );
 	}
 
 	// private void createWrapOutDescribe(Class<?> clz, String directory) throws

+ 11 - 13
x_base_core_project/src/main/java/com/x/base/core/logger/Logger.java

@@ -15,9 +15,7 @@ import com.google.gson.JsonElement;
 import com.x.base.core.exception.PromptException;
 import com.x.base.core.gson.XGsonBuilder;
 import com.x.base.core.http.EffectivePerson;
-import com.x.base.core.http.WrapOutBoolean;
-import com.x.base.core.project.AbstractThisApplication;
-import com.x.base.core.project.x_instrument_service_express;
+import com.x.base.core.project.connection.CipherConnectionAction;
 import com.x.base.core.project.server.Config;
 import com.x.base.core.utils.DateTools;
 
@@ -99,8 +97,8 @@ public class Logger {
 						parameters.put(PARAMETER_OCCURTIME, DateTools.now());
 						parameters.put(PARAMETER_LOGGERNAME, loggerName);
 						parameters.put(PARAMETER_MESSAGE, str);
-						AbstractThisApplication.applications.postQuery(x_instrument_service_express.class, "warnlog",
-								parameters, WrapOutBoolean.class);
+						String url = Config.x_program_centerUrlRoot() + "warnlog";
+						CipherConnectionAction.post(url, parameters);
 					} catch (Exception e) {
 						e.printStackTrace();
 					}
@@ -131,11 +129,11 @@ public class Logger {
 					parameters.put(PARAMETER_MESSAGE, e.getMessage());
 					parameters.put(PARAMETER_STACKTRACE, stackTraceString);
 					if (e instanceof PromptException) {
-						AbstractThisApplication.applications.postQuery(x_instrument_service_express.class,
-								"prompterrorlog", parameters, WrapOutBoolean.class);
+						String url = Config.x_program_centerUrlRoot() + "prompterrorlogs";
+						CipherConnectionAction.post(url, parameters);
 					} else {
-						AbstractThisApplication.applications.postQuery(x_instrument_service_express.class,
-								"unexpectederrorlog", parameters, WrapOutBoolean.class);
+						String url = Config.x_program_centerUrlRoot() + "unexpectederrorlog";
+						CipherConnectionAction.post(url, parameters);
 					}
 				} catch (Exception e) {
 					e.printStackTrace();
@@ -180,11 +178,11 @@ public class Logger {
 					parameters.put(PARAMETER_REQUESTBODY, bodyString);
 					parameters.put(PARAMETER_REQUESTBODYLENGTH, bodyString.length());
 					if (e instanceof PromptException) {
-						AbstractThisApplication.applications.postQuery(x_instrument_service_express.class,
-								"prompterrorlog", parameters, WrapOutBoolean.class);
+						String url = Config.x_program_centerUrlRoot() + "prompterrorlog";
+						CipherConnectionAction.post(url, parameters);
 					} else {
-						AbstractThisApplication.applications.postQuery(x_instrument_service_express.class,
-								"unexpectederrorlog", parameters, WrapOutBoolean.class);
+						String url = Config.x_program_centerUrlRoot() + "unexpectederrorlog";
+						CipherConnectionAction.post(url, parameters);
 					}
 				} catch (Exception e) {
 					e.printStackTrace();

+ 120 - 0
x_base_core_project/src/main/java/com/x/base/core/project/Application.java

@@ -0,0 +1,120 @@
+package com.x.base.core.project;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+
+import com.x.base.core.gson.GsonPropertyObject;
+
+public class Application extends GsonPropertyObject {
+
+	private String name;
+	private String host;
+	private String context;
+	private Integer port;
+	private String token;
+	private Boolean sslEnable;
+
+	private String proxyHost;
+	private Integer proxyPort;
+
+	private Integer weight;
+
+	private Date reportDate;
+
+	public String getUrlRoot() {
+		StringBuffer buffer = new StringBuffer();
+		if (BooleanUtils.isTrue(this.sslEnable)) {
+			buffer.append("https://").append(StringUtils.isNotEmpty(host) ? host : "127.0.0.1")
+					.append(port == 443 ? "" : (":" + port));
+		} else {
+			buffer.append("http://").append(StringUtils.isNotEmpty(host) ? host : "127.0.0.1")
+					.append(port == 80 ? "" : (":" + port));
+		}
+		buffer.append(context + "/jaxrs/");
+		return buffer.toString();
+
+	}
+
+	public String getHost() {
+		return host;
+	}
+
+	public void setHost(String host) {
+		this.host = host;
+	}
+
+	public Integer getPort() {
+		return port;
+	}
+
+	public void setPort(Integer port) {
+		this.port = port;
+	}
+
+	public String getToken() {
+		return token;
+	}
+
+	public void setToken(String token) {
+		this.token = token;
+	}
+
+	public Integer getWeight() {
+		return weight;
+	}
+
+	public void setWeight(Integer weight) {
+		this.weight = weight;
+	}
+
+	public Date getReportDate() {
+		return reportDate;
+	}
+
+	public void setReportDate(Date reportDate) {
+		this.reportDate = reportDate;
+	}
+
+	public String getContext() {
+		return context;
+	}
+
+	public void setContext(String context) {
+		this.context = context;
+	}
+
+	public void setProxyPort(Integer proxyPort) {
+		this.proxyPort = proxyPort;
+	}
+
+	public void setProxyHost(String proxyHost) {
+		this.proxyHost = proxyHost;
+	}
+
+	public String getProxyHost() {
+		return proxyHost;
+	}
+
+	public Integer getProxyPort() {
+		return proxyPort;
+	}
+
+	public Boolean getSslEnable() {
+		return sslEnable;
+	}
+
+	public void setSslEnable(Boolean sslEnable) {
+		this.sslEnable = sslEnable;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}

+ 121 - 0
x_base_core_project/src/main/java/com/x/base/core/project/Applications.java

@@ -0,0 +1,121 @@
+package com.x.base.core.project;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.x.base.core.DefaultCharset;
+import com.x.base.core.project.connection.ActionResponse;
+import com.x.base.core.project.connection.CipherConnectionAction;
+
+public class Applications extends ConcurrentHashMap<String, CopyOnWriteArrayList<Application>> {
+
+	private static Logger logger = LoggerFactory.getLogger(Applications.class);
+
+	private static final long serialVersionUID = -2416559829493154858L;
+
+	private volatile String token = UUID.randomUUID().toString();
+
+	public String getToken() {
+		return token;
+	}
+
+	public void setToken(String token) {
+		this.token = token;
+	}
+
+	public Application get(Class<?> clz, String token) throws Exception {
+		List<Application> list = this.get(clz.getName());
+		if (null != list) {
+			for (Application application : list) {
+				if (StringUtils.equals(token, application.getToken())) {
+					return application;
+				}
+			}
+		}
+		return null;
+	}
+
+	public List<Application> get(Class<?> clz) throws Exception {
+		return this.get(clz.getName());
+	}
+
+	public void add(Class<?> applicationClass, Application application) throws Exception {
+		CopyOnWriteArrayList<Application> list = this.get(applicationClass.getName());
+		if (null == list) {
+			list = new CopyOnWriteArrayList<Application>();
+			this.put(applicationClass.getName(), list);
+		}
+		list.add(application);
+	}
+
+	public ActionResponse getQuery(Class<?> applicationClass, String uri) throws Exception {
+		Application application = this.randomWithWeight(applicationClass);
+		return CipherConnectionAction.get(application.getUrlRoot() + CipherConnectionAction.trim(uri));
+	}
+
+	public ActionResponse deleteQuery(Class<?> applicationClass, String uri) throws Exception {
+		Application application = this.randomWithWeight(applicationClass);
+		return CipherConnectionAction.delete(application.getUrlRoot() + CipherConnectionAction.trim(uri));
+	}
+
+	public ActionResponse postQuery(Class<?> applicationClass, String uri, Object o) throws Exception {
+		Application application = this.randomWithWeight(applicationClass);
+		return CipherConnectionAction.post(application.getUrlRoot() + CipherConnectionAction.trim(uri), o);
+	}
+
+	public ActionResponse putQuery(Class<?> applicationClass, String uri, Object o) throws Exception {
+		Application application = this.randomWithWeight(applicationClass);
+		return CipherConnectionAction.put(application.getUrlRoot() + CipherConnectionAction.trim(uri), o);
+	}
+
+	public Application randomWithWeight(Class<?> clz) throws Exception {
+		List<Application> availabeApplications = new ArrayList<>();
+		List<Application> list = this.get(clz.getName());
+		if (null != list) {
+			for (Application app : list) {
+				availabeApplications.add(app);
+			}
+		}
+		if (availabeApplications.isEmpty()) {
+			return null;
+		}
+		int total = 0;
+		for (Application application : availabeApplications) {
+			total += application.getWeight();
+		}
+		Random random = new Random();
+		int rdm = random.nextInt(total);
+		int current = 0;
+		for (Application application : availabeApplications) {
+			current += application.getWeight();
+			if (rdm <= current) {
+				return application;
+			}
+		}
+		throw new Exception("randomWithWeight error.");
+	}
+
+	public static String joinQueryUri(String... parts) {
+		return Stream.of(parts).map(s -> {
+			try {
+				return URLEncoder.encode(s, DefaultCharset.name);
+			} catch (UnsupportedEncodingException e) {
+				e.printStackTrace();
+				return "";
+			}
+		}).collect(Collectors.joining("/"));
+	}
+
+}

+ 360 - 0
x_base_core_project/src/main/java/com/x/base/core/project/Context.java

@@ -0,0 +1,360 @@
+package com.x.base.core.project;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TimerTask;
+import java.util.UUID;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletRequest;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.openjpa.enhance.PCRegistry;
+
+import com.x.base.core.cache.ClearCacheRequest;
+import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.entity.StorageType;
+import com.x.base.core.gson.GsonPropertyObject;
+import com.x.base.core.project.clock.ClockScheduleTask;
+import com.x.base.core.project.clock.ClockTimerTask;
+import com.x.base.core.project.clock.ReportToCenter;
+import com.x.base.core.project.connection.ActionResponse;
+import com.x.base.core.project.connection.CipherConnectionAction;
+import com.x.base.core.project.queue.AbstractQueue;
+import com.x.base.core.project.server.Config;
+import com.x.base.core.project.server.DataMappings;
+import com.x.base.core.project.server.StorageMappings;
+import com.x.base.core.utils.ListTools;
+
+public class Context {
+
+	/** 从servletContext中抽取context */
+	public static Context fromServletContext(ServletContext servletContext) throws Exception {
+		Object o = servletContext.getAttribute(Context.class.getName());
+		if (null == o) {
+			throw new Exception("can not get context form servletContext.");
+		} else {
+			return (Context) o;
+		}
+	}
+
+	/** 从servletRequest中抽取context */
+	public static Context fromServletRequest(ServletRequest servletRequest) throws Exception {
+		Object o = servletRequest.getServletContext().getAttribute(Context.class.getName());
+		if (null == o) {
+			throw new Exception("can not get context form servletRequest.");
+		} else {
+			return (Context) o;
+		}
+	}
+
+	/* 应用的磁盘路径 */
+	private volatile String path;
+
+	public String path() {
+		return this.path;
+	}
+
+	/* 上下文 */
+	private volatile String servletContextName;
+
+	public String servletContextName() {
+		return this.servletContextName;
+	}
+
+	/* 上下文根 */
+	private volatile ServletContext servletContext;
+
+	public ServletContext servletContext() {
+		return this.servletContext;
+	}
+
+	/* 应用类 */
+	private Class<?> clazz;
+
+	public Class<?> clazz() {
+		return this.clazz;
+	}
+
+	/* 随机令牌 */
+	private volatile String token;
+
+	public String token() {
+		return this.token;
+	}
+
+	/* Applications资源 */
+	private volatile Applications applications;
+
+	public Applications applications() {
+		synchronized (this) {
+			return this.applications;
+		}
+	}
+
+	/* Storage资源 */
+	private volatile StorageMappings storageMappings;
+
+	public StorageMappings storageMappings() {
+		return this.storageMappings;
+	}
+
+	/* 是否已经初始化完成 */
+	private volatile boolean initialized;
+
+	public boolean initialized() {
+		return this.initialized;
+	}
+
+	/* 应用的权重 */
+	private volatile Integer weight;
+
+	public Integer weight() {
+		return this.weight;
+	}
+
+	private Boolean sslEnable;
+
+	public Boolean sslEnable() {
+		return this.sslEnable;
+	}
+
+	/* 用于执行定时任务的执行服务 */
+	private ScheduledExecutorService scheduledExecutorService;
+	/* 用于执行单机运行的任务 */
+	private List<TimerJob> timerJobs;
+
+	public List<TimerJob> timerJobs() {
+		return this.timerJobs;
+	}
+
+	/* 用于执行统一排程的定时任务 */
+	private List<ScheduleJob> scheduleJobs;
+
+	public List<ScheduleJob> scheduleJobs() {
+		return this.scheduleJobs;
+	}
+
+	private AbstractQueue<ClearCacheRequest> clearCacheRequestQueue;
+
+	public AbstractQueue<ClearCacheRequest> clearCacheRequestQueue() {
+		return this.clearCacheRequestQueue;
+	}
+
+	/* 队列 */
+	private List<AbstractQueue<?>> queues;
+
+	private Context() {
+		this.token = UUID.randomUUID().toString();
+		this.scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
+		this.scheduleJobs = new ArrayList<ScheduleJob>();
+		this.timerJobs = new ArrayList<TimerJob>();
+		this.applications = new Applications();
+		this.queues = new ArrayList<AbstractQueue<?>>();
+	}
+
+	public static Context concrete(ServletContextEvent servletContextEvent,
+			AbstractQueue<ClearCacheRequest> clearCacheRequestQueue) throws Exception {
+		Context context = concrete(servletContextEvent);
+		if (null != clearCacheRequestQueue) {
+			context.clearCacheRequestQueue = clearCacheRequestQueue;
+			context.startQueue(clearCacheRequestQueue);
+		}
+		return context;
+	}
+
+	public static Context concrete(ServletContextEvent servletContextEvent) throws Exception {
+		ServletContext servletContext = servletContextEvent.getServletContext();
+		Context context = new Context();
+		context.path = servletContext.getRealPath("");
+		context.servletContext = servletContext;
+		context.servletContextName = servletContext.getServletContextName();
+		context.clazz = Class.forName("com.x.base.core.project." + context.servletContextName);
+		context.weight = Config.currentNode().getApplication().weight(context.clazz);
+		context.sslEnable = Config.currentNode().getApplication().getSslEnable();
+		context.initDatasFromCenters();
+		context.initStoragesFromCenters();
+		ReportToCenter reportToCenter = new ReportToCenter(context);
+		/* 同步运行一次 */
+		reportToCenter.execute();
+		/* 再异步加入到定时循环中 */
+		context.timer(reportToCenter, 30, 45);
+		context.initialized = true;
+		servletContext.setAttribute(context.getClass().getName(), context);
+		return context;
+	}
+
+	public void timer(ClockTimerTask task, int initialDelay, int delay) throws Exception {
+		if (null == task) {
+			throw new Exception("timerWithFixedDelay task can not be null.");
+		}
+		TimerJob o = new TimerJob(task, initialDelay, delay);
+		timerJobs.add(o);
+		scheduledExecutorService.scheduleWithFixedDelay(task, initialDelay, delay, TimeUnit.SECONDS);
+	}
+
+	public void timer(TimerTask task, int initialDelay) throws Exception {
+		if (null == task) {
+			throw new Exception("timer task can not be null.");
+		}
+		scheduledExecutorService.schedule(task, initialDelay, TimeUnit.SECONDS);
+	}
+
+	public <T extends ClockScheduleTask> void schedule(Class<T> clz, String cron) throws Exception {
+		/* 统一排程任务需要延时90秒,等待instrument启动,每次间隔不能少于5分钟 */
+		if (null == clz) {
+			throw new Exception("schedule task can not be null.");
+		}
+		ScheduleJob o = new ScheduleJob(clz, cron);
+		scheduleJobs.add(o);
+	}
+
+	public void startQueue(AbstractQueue<?> queue) {
+		queues.add(queue);
+		queue.start();
+	}
+
+	public void loadApplications() {
+		try {
+			synchronized (this) {
+				ActionResponse response = CipherConnectionAction.get(Config.x_program_centerUrlRoot() + "applications");
+				this.applications = response.getData(Applications.class);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private void initDatasFromCenters() throws Exception {
+		@SuppressWarnings("unchecked")
+		List<String> containerEntities = (List<String>) FieldUtils.readStaticField(clazz, "containerEntities");
+		if (ListTools.isNotEmpty(containerEntities)) {
+			System.out.println(servletContextName + " loading datas.");
+			DataMappings dataMappings = null;
+			do {
+				try {
+					ActionResponse rep = CipherConnectionAction.get(Config.x_program_centerUrlRoot() + "datamappings");
+					dataMappings = rep.getData(DataMappings.class);
+				} catch (Exception e) {
+					e.printStackTrace();
+					Thread.sleep(5000);
+				}
+			} while (null == dataMappings);
+			EntityManagerContainerFactory.init(path, dataMappings);
+		}
+	}
+
+	private void initStoragesFromCenters() throws Exception {
+		@SuppressWarnings("unchecked")
+		List<StorageType> usedStorageTypes = (List<StorageType>) FieldUtils.readStaticField(clazz, "usedStorageTypes");
+		if (ListTools.isNotEmpty(usedStorageTypes)) {
+			StorageMappings storageMappings = null;
+			do {
+				try {
+					ActionResponse rep = CipherConnectionAction
+							.get(Config.x_program_centerUrlRoot() + "storagemappings");
+					storageMappings = rep.getData(StorageMappings.class);
+				} catch (Exception e) {
+					e.printStackTrace();
+					Thread.sleep(5000);
+				}
+			} while (null == storageMappings);
+			this.storageMappings = storageMappings;
+		}
+	}
+
+	public class TimerJob extends GsonPropertyObject {
+
+		public TimerJob(ClockTimerTask clockTimerTask, Integer initialDelay, Integer delay) {
+			this.clockTimerTask = clockTimerTask;
+			this.initialDelay = initialDelay;
+			this.delay = delay;
+			this.timerTaskClassName = clockTimerTask.getClass().getName();
+		}
+
+		private ClockTimerTask clockTimerTask;
+		private Integer initialDelay;
+		private Integer delay;
+		private String timerTaskClassName;
+
+		public Integer getInitialDelay() {
+			return initialDelay;
+		}
+
+		public void setInitialDelay(Integer initialDelay) {
+			this.initialDelay = initialDelay;
+		}
+
+		public Integer getDelay() {
+			return delay;
+		}
+
+		public void setDelay(Integer delay) {
+			this.delay = delay;
+		}
+
+		public String getTimerTaskClassName() {
+			return timerTaskClassName;
+		}
+
+		public void setTimerTaskClassName(String timerTaskClassName) {
+			this.timerTaskClassName = timerTaskClassName;
+		}
+
+		public ClockTimerTask getClockTimerTask() {
+			return clockTimerTask;
+		}
+
+		public void setClockTimerTask(ClockTimerTask clockTimerTask) {
+			this.clockTimerTask = clockTimerTask;
+		}
+
+	}
+
+	public class ScheduleJob extends GsonPropertyObject {
+
+		public <T extends ClockScheduleTask> ScheduleJob(Class<T> clz, String cron) {
+			this.cron = cron;
+			this.timerTaskClassName = clz.getName();
+		}
+
+		private String cron;
+		private String timerTaskClassName;
+
+		public String getTimerTaskClassName() {
+			return timerTaskClassName;
+		}
+
+		public void setTimerTaskClassName(String timerTaskClassName) {
+			this.timerTaskClassName = timerTaskClassName;
+		}
+
+		public String getCron() {
+			return cron;
+		}
+
+		public void setCron(String cron) {
+			this.cron = cron;
+		}
+
+	}
+
+	public void destrory(ServletContextEvent servletContextEvent) {
+		try {
+			queues.stream().forEach(p -> {
+				p.stop();
+			});
+			scheduledExecutorService.shutdownNow();
+			EntityManagerContainerFactory.close();
+			PCRegistry.deRegister(JpaObject.class.getClassLoader());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}

+ 117 - 0
x_base_core_project/src/main/java/com/x/base/core/project/bean/WrapCopier.java

@@ -0,0 +1,117 @@
+package com.x.base.core.project.bean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.beanutils.PropertyUtilsBean;
+
+import com.x.base.core.utils.ListTools;
+
+public class WrapCopier<T, W> {
+
+	private List<String> copyFields = new ArrayList<>();
+
+	private List<String> eraseFields = new ArrayList<>();
+
+	private Class<T> origClass;
+
+	private Class<W> destClass;
+
+	private PropertyUtilsBean propertyUtilsBean;
+
+	private boolean ignoreNull;
+
+	@SuppressWarnings("unused")
+	private WrapCopier() {
+	}
+
+	protected WrapCopier(PropertyUtilsBean propertyUtilsBean, Class<T> origClass, Class<W> destClass,
+			List<String> copyFields, List<String> eraseFields, boolean ignoreNull) {
+		this.propertyUtilsBean = propertyUtilsBean;
+		this.origClass = origClass;
+		this.destClass = destClass;
+		if (ListTools.isNotEmpty(copyFields)) {
+			this.copyFields = copyFields;
+		}
+		if (ListTools.isNotEmpty(eraseFields)) {
+			this.eraseFields = eraseFields;
+		}
+		this.ignoreNull = ignoreNull;
+	}
+
+	public W copy(T orig, W dest) throws Exception {
+		if (null == orig) {
+			return null;
+		}
+		copyFields.stream().forEach(f -> {
+			try {
+				Object o = propertyUtilsBean.getProperty(orig, f);
+				if (null != o || (!ignoreNull)) {
+					propertyUtilsBean.setProperty(dest, f, o);
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		});
+		eraseFields.stream().forEach(f -> {
+			try {
+				propertyUtilsBean.setProperty(dest, f, null);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		});
+		return dest;
+	}
+
+	public W copy(T orig) throws Exception {
+		if (null == orig) {
+			return null;
+		}
+		W w = this.destClass.newInstance();
+		return copy(orig, w);
+	}
+
+	public List<W> copy(List<T> origs, List<W> dests) throws Exception {
+		if (null != origs) {
+			origs.stream().forEach(t -> {
+				try {
+					dests.add(this.copy(t));
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			});
+		}
+		return dests;
+	}
+
+	public List<W> copy(List<T> origs) throws Exception {
+		List<W> dests = new ArrayList<W>();
+		if (null != origs) {
+			origs.stream().forEach(t -> {
+				try {
+					dests.add(this.copy(t));
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			});
+		}
+		return dests;
+	}
+
+	public Class<T> getOrigClass() {
+		return origClass;
+	}
+
+	public Class<W> getDestClass() {
+		return destClass;
+	}
+
+	public List<String> getCopyFields() {
+		return copyFields;
+	}
+
+	public List<String> getEraseFields() {
+		return eraseFields;
+	}
+
+}

+ 195 - 0
x_base_core_project/src/main/java/com/x/base/core/project/bean/WrapCopierFactory.java

@@ -0,0 +1,195 @@
+package com.x.base.core.project.bean;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.beanutils.PropertyUtilsBean;
+import org.apache.commons.collections4.ListUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.commons.lang3.reflect.MethodUtils;
+
+import com.x.base.core.utils.ListTools;
+
+public class WrapCopierFactory {
+
+	private static String GET_PREFIX = "get";
+	private static String SET_PREFIX = "set";
+	private static String IS_PREFIX = "is";
+
+	// public static <T> WrapCopier<T, T> wo(Class<T> origClass, List<String>
+	// includes, List<String> excludes,
+	// boolean ingoreNull) {
+	// try {
+	// List<String> origFieldNames = getAllFieldNames(origClass);
+	// List<String> copyFieldNames = new ArrayList<>();
+	// ListTools.includesExcludes(origFieldNames, includes,
+	// excludes).stream().forEach(s -> {
+	// try {
+	// Field origField = FieldUtils.getField(origClass, s, true);
+	// if (null != origField) {
+	// if (null != MethodUtils.getAccessibleMethod(origClass,
+	// getGetterName(origField),
+	// new Class<?>[] {})) {
+	// if (null != MethodUtils.getAccessibleMethod(origClass,
+	// getSetterName(origField),
+	// new Class<?>[] { origField.getType() })) {
+	// copyFieldNames.add(s);
+	// }
+	// }
+	// }
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// }
+	// });
+	// List<String> eraseFieldNames = new ArrayList<>();
+	// ListUtils.subtract(origFieldNames, copyFieldNames).stream().forEach(s ->
+	// {
+	// try {
+	// Field origField = FieldUtils.getField(origClass, s, true);
+	// if (null != origField) {
+	// if (null != MethodUtils.getAccessibleMethod(origClass,
+	// getGetterName(origField),
+	// new Class<?>[] {})) {
+	// if (null != MethodUtils.getAccessibleMethod(origClass,
+	// getSetterName(origField),
+	// new Class<?>[] { origField.getType() })) {
+	// eraseFieldNames.add(s);
+	// }
+	// }
+	// }
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// }
+	// });
+	// WrapCopier<T, T> copier = new WrapCopier<T, T>(new PropertyUtilsBean(),
+	// origClass, origClass,
+	// copyFieldNames, eraseFieldNames, ingoreNull);
+	// return copier;
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// return null;
+	// }
+	// }
+
+	public static <T, W> WrapCopier<T, W> wo(Class<T> origClass, Class<W> destClass, List<String> includes,
+			List<String> excludes) {
+		return wo(origClass, destClass, includes, excludes, true);
+	}
+
+	public static <T, W> WrapCopier<T, W> wo(Class<T> origClass, Class<W> destClass, List<String> includes,
+			List<String> excludes, boolean ingoreNull) {
+		try {
+			List<String> origFieldNames = getAllFieldNames(origClass);
+			List<String> destFieldNames = getAllFieldNames(destClass);
+			List<String> copyFieldNames = new ArrayList<>();
+			ListTools.includesExcludes(ListUtils.intersection(origFieldNames, destFieldNames), includes, excludes)
+					.stream().forEach(s -> {
+						try {
+							Field origField = FieldUtils.getField(origClass, s, true);
+							Field destField = FieldUtils.getField(destClass, s, true);
+							if ((null != origField) && (null != destField)) {
+								if (origField.getType() == destField.getType()) {
+									if (null != MethodUtils.getAccessibleMethod(origClass, getGetterName(origField),
+											new Class<?>[] {})) {
+										if (null != MethodUtils.getAccessibleMethod(destClass, getSetterName(destField),
+												new Class<?>[] { destField.getType() })) {
+											copyFieldNames.add(s);
+										}
+									}
+								}
+							}
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					});
+			List<String> eraseFieldNames = new ArrayList<>();
+			ListUtils.subtract(destFieldNames, copyFieldNames).stream().forEach(s -> {
+				try {
+					Field origField = FieldUtils.getField(origClass, s, true);
+					Field destField = FieldUtils.getField(destClass, s, true);
+					if ((null != origField) && (null != destField)) {
+						if (origField.getType() == destField.getType()) {
+							if (null != MethodUtils.getAccessibleMethod(origClass, getGetterName(origField),
+									new Class<?>[] {})) {
+								if (null != MethodUtils.getAccessibleMethod(destClass, getSetterName(destField),
+										new Class<?>[] { destField.getType() })) {
+									eraseFieldNames.add(s);
+								}
+							}
+						}
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			});
+			WrapCopier<T, W> copier = new WrapCopier<T, W>(new PropertyUtilsBean(), origClass, destClass,
+					copyFieldNames, eraseFieldNames, ingoreNull);
+			return copier;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	public static <T, W> WrapCopier<T, W> wi(Class<T> origClass, Class<W> destClass, List<String> includes,
+			List<String> excludes) {
+		return wi(origClass, destClass, includes, excludes, true);
+	}
+
+	public static <T, W> WrapCopier<T, W> wi(Class<T> origClass, Class<W> destClass, List<String> includes,
+			List<String> excludes, boolean ingoreNull) {
+		try {
+			List<String> origFieldNames = getAllFieldNames(origClass);
+			List<String> destFieldNames = getAllFieldNames(destClass);
+			List<String> copyFieldNames = new ArrayList<>();
+			ListTools.includesExcludes(ListUtils.intersection(origFieldNames, destFieldNames), includes, excludes)
+					.stream().forEach(s -> {
+						try {
+							Field origField = FieldUtils.getField(origClass, s, true);
+							Field destField = FieldUtils.getField(destClass, s, true);
+							if ((null != origField) && (null != destField)) {
+								if (origField.getType() == destField.getType()) {
+									if (null != MethodUtils.getAccessibleMethod(origClass, getGetterName(origField),
+											new Class<?>[] {})) {
+										if (null != MethodUtils.getAccessibleMethod(destClass, getSetterName(destField),
+												new Class<?>[] { destField.getType() })) {
+											copyFieldNames.add(s);
+										}
+									}
+								}
+							}
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					});
+			WrapCopier<T, W> copier = new WrapCopier<T, W>(new PropertyUtilsBean(), origClass, destClass,
+					copyFieldNames, new ArrayList<String>(), ingoreNull);
+			return copier;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	private static String getGetterName(Field field) throws Exception {
+		if (field.getType() == boolean.class) {
+			return IS_PREFIX + StringUtils.capitalize(field.getName());
+		} else {
+			return GET_PREFIX + StringUtils.capitalize(field.getName());
+		}
+	}
+
+	private static String getSetterName(Field field) throws Exception {
+		return SET_PREFIX + StringUtils.capitalize(field.getName());
+	}
+
+	private static List<String> getAllFieldNames(Class<?> cls) throws Exception {
+		List<String> names = new ArrayList<>();
+		for (Field field : FieldUtils.getAllFields(cls)) {
+			names.add(field.getName());
+		}
+		return names;
+	}
+}

+ 34 - 0
x_base_core_project/src/main/java/com/x/base/core/project/clock/ClockScheduleTask.java

@@ -0,0 +1,34 @@
+package com.x.base.core.project.clock;
+
+import java.util.Date;
+import java.util.TimerTask;
+
+import com.x.base.core.project.Context;
+import com.x.base.core.project.connection.CipherConnectionAction;
+import com.x.base.core.project.server.Config;
+
+public abstract class ClockScheduleTask extends TimerTask {
+
+	protected Context context;
+
+	public ClockScheduleTask(Context context) {
+		this.context = context;
+	}
+
+	public void run() {
+		try {
+			Date start = new Date();
+			this.execute();
+			Date end = new Date();
+			String url = Config.x_program_centerUrlRoot() + "clock/schedule/report";
+			TimerReport report = new TimerReport(Config.node(), context.clazz().getName(), this.getClass().getName(),
+					start, end, start.getTime() - end.getTime());
+			CipherConnectionAction.post(url, report);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public abstract void execute() throws Exception;
+
+}

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