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

Merge branch 'feature/dumpRestore' into 'develop'

压力测试调整

See merge request o2oa/o2oa!514
o2null 5 лет назад
Родитель
Сommit
ce15c7153b
41 измененных файлов с 177 добавлено и 130 удалено
  1. 1 1
      o2server/start_windows_debug.bat
  2. 0 1
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/common/excel/reader/Excel2003Reader.java
  3. 2 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attachment/ActionExportAbnormalDetail.java
  4. 38 0
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendanceadmin/ActionSave.java
  5. 3 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancestatisticalcycle/ActionSave.java
  6. 3 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/fileimport/ActionImportDateInFile.java
  7. 2 1
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/selfholiday/ActionDelete.java
  8. 3 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/selfholiday/ActionDeleteByWfDocId.java
  9. 1 1
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/selfholiday/ActionSave.java
  10. 2 1
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/workplace/ActionListAll.java
  11. 1 1
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/sender/SenderForAnalyseData.java
  12. 1 1
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/sender/SenderForSaveData.java
  13. 2 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/thread/OperatorDataAnalyse.java
  14. 2 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/thread/OperatorDataValidator.java
  15. 2 2
      o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/service/AttendanceStatisticService.java
  16. 1 1
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/ExternalDataSources.java
  17. 1 0
      o2server/x_calendar_assemble_control/src/main/webapp/describe/sources/com/x/calendar/assemble/control/jaxrs/setting/ActionListAll.java
  18. 3 0
      o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java
  19. 7 0
      o2server/x_console/src/main/java/com/x/server/console/action/EraseContentLog.java
  20. 6 0
      o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java
  21. 2 0
      o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java
  22. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListByProcessIdentityNextWithFilter.java
  23. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListByProcessIdentityPrevWithFilter.java
  24. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListNextWithFilter.java
  25. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListPrevWithFilter.java
  26. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrconfigsercretary/ActionListMySercretary.java
  27. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrconfigsystem/ActionSave.java
  28. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrworkbaseinfo/ActionListSubWork.java
  29. 1 0
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/ExcuteWorkReportCreateService.java
  30. 14 13
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrCenterWorkExcuteDelete.java
  31. 2 1
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrCenterWorkExcuteSave.java
  32. 9 9
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrWorkBaseInfoExcuteArchive.java
  33. 5 4
      o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrWorkReportOperationService.java
  34. 3 3
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java
  35. 2 2
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java
  36. 11 11
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java
  37. 0 18
      o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/WorkAction.java
  38. 6 16
      o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/helper/ExtractTextHelper.java
  39. 12 11
      o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/schedule/CrawlCms.java
  40. 11 10
      o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/schedule/CrawlWork.java
  41. 11 10
      o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/schedule/CrawlWorkCompleted.java

+ 1 - 1
o2server/start_windows_debug.bat

@@ -144,5 +144,5 @@ if exist "%~dp0local\update" (
 	)
 )
 @echo on
-"%~dp0jvm\windows\bin\java" -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=20000 -Xms2g -Xmx8g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar "%~dp0console.jar"
+"%~dp0jvm\windows\bin\java" -server Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=20000 -Xms2g -Xmx8g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar "%~dp0console.jar"
 pause

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

@@ -32,7 +32,6 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 /**
  * 抽象Excel2003读取器,通过实现HSSFListener监听器,采用事件驱动模式解析excel2003
  * 中的内容,遇到特定事件才会触发,大大减少了内存的使用。
- *
  */
 public  class Excel2003Reader implements HSSFListener{
 	private int minColumns = -1;

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

@@ -6,6 +6,7 @@ import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.x.base.core.project.tools.ListTools;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -24,7 +25,6 @@ import com.x.base.core.project.logger.LoggerFactory;
 
 /**
  * 导入的文件没有用到文件存储器,是直接放在数据库中的BLOB列
- *
  */
 public class ActionExportAbnormalDetail extends BaseAction {
 	
@@ -88,7 +88,7 @@ public class ActionExportAbnormalDetail extends BaseAction {
 		
 		Workbook wb = new HSSFWorkbook();
 		Row row = null;
-		if (detailList != null && detailList.size() > 0) {
+		if (ListTools.isNotEmpty(detailList) ) {
 			// 创建新的表格
 			Sheet sheet = wb.createSheet(sheetName);
 			

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

@@ -5,6 +5,7 @@ import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.x.base.core.project.organization.Person;
 import org.apache.commons.lang3.StringUtils;
 
 import com.google.gson.JsonElement;
@@ -65,6 +66,43 @@ public class ActionSave extends BaseAction {
 				logger.error(e, currentPerson, request, null);
 			}
 		}
+		if (check) {
+			//如果adminName为空,根据标识核实admin姓名
+			if( StringUtils.isNotEmpty( attendanceAdmin.getAdmin()) ){
+				Person person = null;
+				try {
+					person = userManagerService.getPersonObjByName(attendanceAdmin.getAdminName());
+				} catch (Exception e) {
+					check = false;
+					Exception exception = new ExceptionAttendanceAdminProcess(e, "系统根据人员标识获取人员信息对象时发生异常.Flag="+attendanceAdmin.getAdmin());
+					result.error(exception);
+					logger.error(e, currentPerson, request, null);
+				}
+				if( person != null ){
+					attendanceAdmin.setAdminName( person.getName() );
+				}
+			}
+		}
+		if (check) {
+			//如果admin为空,根据姓名获取admin标识
+			if( StringUtils.isNotEmpty( attendanceAdmin.getAdminName()) ){
+				if( StringUtils.isEmpty( attendanceAdmin.getAdmin()) ){
+					Person person = null;
+					try {
+						person = userManagerService.getPersonObjByName(attendanceAdmin.getAdminName());
+					} catch (Exception e) {
+						check = false;
+						Exception exception = new ExceptionAttendanceAdminProcess(e, "系统根据人员姓名获取人员标识时发生异常.Name=" + attendanceAdmin.getAdminName() );
+						result.error(exception);
+						logger.error(e, currentPerson, request, null);
+					}
+					if( person != null ){
+						attendanceAdmin.setAdmin( person.getDistinguishedName() );
+					}
+				}
+			}
+		}
+
 		if (check) {
 			try {
 				attendanceAdmin = attendanceAdminServiceAdv.save(attendanceAdmin);

+ 3 - 2
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/attendancestatisticalcycle/ActionSave.java

@@ -20,6 +20,7 @@ import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.jaxrs.WoId;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 
 public class ActionSave extends BaseAction {
 
@@ -58,7 +59,7 @@ public class ActionSave extends BaseAction {
 				ids = business.getAttendanceStatisticalCycleFactory().listByParameter(wrapIn.getTopUnitName(),
 						wrapIn.getUnitName(), wrapIn.getCycleYear(), wrapIn.getCycleMonth());
 				emc.beginTransaction(AttendanceStatisticalCycle.class);
-				if (ids != null && ids.size() > 0) {
+				if ( ListTools.isNotEmpty(ids) ) {
 					// 说明有重复的
 					_attendanceStatisticalCycle = emc.find(wrapIn.getId(), AttendanceStatisticalCycle.class);
 					if (_attendanceStatisticalCycle != null) {
@@ -72,7 +73,7 @@ public class ActionSave extends BaseAction {
 					}
 				} else {
 					// 新增就行了
-					if (wrapIn.getId() != null && wrapIn.getId().length() > 10) {
+					if ( wrapIn.getId() != null && wrapIn.getId().length() > 10 ) {
 						attendanceStatisticalCycle.setId(wrapIn.getId());
 					}
 					Wi.copier.copy(wrapIn, attendanceStatisticalCycle);

+ 3 - 2
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/fileimport/ActionImportDateInFile.java

@@ -20,6 +20,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 
 public class ActionImportDateInFile extends BaseAction {
 	
@@ -50,7 +51,7 @@ public class ActionImportDateInFile extends BaseAction {
 				logger.info("查询结果" + ids.size() + "条!");
 				logger.info("开始事务,删除batchName = " + file_id + "的" + ids.size() + "条数据记录......");
 				emc.beginTransaction(AttendanceDetail.class);
-				if (ids != null && ids.size() > 0) {
+				if (ListTools.isNotEmpty( ids )) {
 					for (String id : ids) {
 						_attendanceDetail = emc.find(id, AttendanceDetail.class);
 						emc.remove(_attendanceDetail);
@@ -67,7 +68,7 @@ public class ActionImportDateInFile extends BaseAction {
 				for ( EntityImportDataDetail cacheImportRowDetail : cacheImportFileStatus.getDetailList() ) {
 					logger.info("查询数据库里是否有重复记录:姓名:" + cacheImportRowDetail.getEmployeeName() + ", 日期:" + cacheImportRowDetail.getRecordDateStringFormated());
 					ids = business.getAttendanceDetailFactory().getByUserAndRecordDate( cacheImportRowDetail.getEmployeeName(), cacheImportRowDetail.getRecordDateStringFormated() );
-					if (ids != null && ids.size() > 0) {
+					if (ListTools.isNotEmpty( ids )) {
 						for (String id : ids) {
 							logger.info("查询数据库里是否有重复记录:id=" + id);
 							attendanceDetail = emc.find(id, AttendanceDetail.class);

+ 2 - 1
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/selfholiday/ActionDelete.java

@@ -17,6 +17,7 @@ import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.jaxrs.WoId;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 
 public class ActionDelete extends BaseAction {
 	
@@ -40,7 +41,7 @@ public class ActionDelete extends BaseAction {
 				result.setData( new Wo(id) );
 				//根据员工休假数据来记录与这条数据相关的统计需求记录
 				List<String> ids = attendanceDetailAnalyseServiceAdv.getAnalyseAttendanceDetailIds( attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(), attendanceSelfHoliday.getEndTime() );
-				if( ids != null && ids.size() > 0 ){
+				if( ListTools.isNotEmpty( ids ) ){
 					try {//查询所有的周期配置,组织成Map
 						topUnitAttendanceStatisticalCycleMap = attendanceStatisticCycleServiceAdv.getCycleMapFormAllCycles( effectivePerson.getDebugger() );
 					} catch (Exception e) {

+ 3 - 2
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/selfholiday/ActionDeleteByWfDocId.java

@@ -17,6 +17,7 @@ import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.jaxrs.WoId;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 
 public class ActionDeleteByWfDocId extends BaseAction {
 	
@@ -37,7 +38,7 @@ public class ActionDeleteByWfDocId extends BaseAction {
 			business = new Business(emc);
 			// 先判断需要操作的应用信息是否存在,根据ID进行一次查询,如果不存在不允许继续操作
 			ids = business.getAttendanceSelfHolidayFactory().getByWorkFlowDocId(wfDocId);
-			if (ids != null && ids.size() > 0) {
+			if ( ListTools.isNotEmpty( ids ) ) {
 				attendanceSelfHolidays = business.getAttendanceSelfHolidayFactory().list(ids);
 				if (attendanceSelfHolidays != null && attendanceSelfHolidays.size() > 0) {
 					for (AttendanceSelfHoliday attendanceSelfHoliday : attendanceSelfHolidays) {
@@ -51,7 +52,7 @@ public class ActionDeleteByWfDocId extends BaseAction {
 						ids = attendanceDetailAnalyseServiceAdv.getAnalyseAttendanceDetailIds(
 								attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(),
 								attendanceSelfHoliday.getEndTime());
-						if (ids != null && ids.size() > 0) {
+						if ( ListTools.isNotEmpty( ids ) ) {
 							try {// 查询所有的周期配置,组织成Map
 								topUnitAttendanceStatisticalCycleMap = attendanceStatisticCycleServiceAdv.getCycleMapFormAllCycles( effectivePerson.getDebugger() );
 							} catch (Exception e) {

+ 1 - 1
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/selfholiday/ActionSave.java

@@ -105,7 +105,7 @@ public class ActionSave extends BaseAction {
 					logger.info("++++++++休假数据有变动,对该员工的该请假时间内的所有打卡记录进行分析......" );
 					//休假数据有更新,对该员工的该请假时间内的所有打卡记录进行分析
 					List<String> ids = attendanceDetailAnalyseServiceAdv.getAnalyseAttendanceDetailIds( attendanceSelfHoliday.getEmployeeName(), attendanceSelfHoliday.getStartTime(), attendanceSelfHoliday.getEndTime() );
-					if( ids != null && ids.size() > 0 ){
+					if( ListTools.isNotEmpty( ids ) ){
 						try {//查询所有的周期配置,组织成Map
 							topUnitAttendanceStatisticalCycleMap = attendanceStatisticCycleServiceAdv.getCycleMapFormAllCycles( effectivePerson.getDebugger() );
 						} catch (Exception e) {

+ 2 - 1
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/jaxrs/workplace/ActionListAll.java

@@ -14,6 +14,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 
 public class ActionListAll extends BaseAction {
 	
@@ -36,7 +37,7 @@ public class ActionListAll extends BaseAction {
 			}
 		}
 		if (check) {
-			if (attendanceWorkPlaceList != null && !attendanceWorkPlaceList.isEmpty()) {
+			if ( ListTools.isNotEmpty(attendanceWorkPlaceList) ) {
 				try {
 					wraps = Wo.copier.copy(attendanceWorkPlaceList);
 				} catch (Exception e) {

+ 1 - 1
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/sender/SenderForAnalyseData.java

@@ -32,7 +32,7 @@ public class SenderForAnalyseData {
 		for ( String personName : personNames ) {
 			try {
 				ids = attendanceDetailServiceAdv.getAllAnalysenessDetails( startDate, endDate, personName );
-				if( ListTools.isNotEmpty(ids) ) {
+				if( ids != null && !ids.isEmpty() ) {
 					statusSystemImportOpt.setProcessing( true );
 					statusSystemImportOpt.setProcessing_analysis( true );
 					statusSystemImportOpt.increaseProcess_analysis_total( ids.size() );

+ 1 - 1
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/sender/SenderForSaveData.java

@@ -34,7 +34,7 @@ public class SenderForSaveData {
 			// 先删除这一个文件ID下的所有记录
 			List<String> ids = business.getAttendanceDetailFactory().listByBatchName( file_id );
 			emc.beginTransaction(AttendanceDetail.class);
-			if ( ListTools.isNotEmpty(ids) ) {
+			if (ids != null && ids.size() > 0) {
 				for (String id : ids) {
 					detail = emc.find(id, AttendanceDetail.class);
 					emc.remove( detail );

+ 2 - 2
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/thread/OperatorDataAnalyse.java

@@ -56,10 +56,10 @@ public class OperatorDataAnalyse implements Runnable{
 		statusSystemImportOpt.setProcessing( true );
 		statusSystemImportOpt.setProcessing_analysis( true );
 		
-		if ( ListTools.isNotEmpty( detail_ids )) {
+		if ( detail_ids != null && !detail_ids.isEmpty() ) {
 			try{
 				ids_temp = attendanceSelfHolidayServiceAdv.getByPersonName( entityAnalyseData.getPersonName() );
-				if( ListTools.isNotEmpty( ids_temp ) ) {
+				if( ids_temp != null && !ids_temp.isEmpty() ) {
 					selfHolidays = attendanceSelfHolidayServiceAdv.list( ids_temp );
 				}
 			}catch( Exception e ){

+ 2 - 2
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/processor/thread/OperatorDataValidator.java

@@ -38,7 +38,7 @@ public class OperatorDataValidator implements Runnable {
 		if( colmlist == null ) {
 			return;
 		}
-		if( ListTools.isNotEmpty( colmlist ) && !colmlist.get(0).isEmpty() && !colmlist.get(2).isEmpty()){
+		if( colmlist != null && !colmlist.get(0).isEmpty() && !colmlist.get(2).isEmpty()){
 			try {
 				check( cacheImportRowDetail.getFile_id(), curRow, colmlist );
 			}catch( Exception e ) {
@@ -57,7 +57,7 @@ public class OperatorDataValidator implements Runnable {
 		
 		cacheImportFileStatus.setProcessing( true );
 		
-		if( ListTools.isNotEmpty( colmlist ) ){
+		if( colmlist!= null && colmlist.size() > 0 ){
 			
 			Boolean checkSuccess = true;
 			Boolean personExists = true;

+ 2 - 2
o2server/x_attendance_assemble_control/src/main/webapp/describe/sources/com/x/attendance/assemble/control/service/AttendanceStatisticService.java

@@ -21,6 +21,7 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 
 public class AttendanceStatisticService {
 	
@@ -204,12 +205,11 @@ public class AttendanceStatisticService {
 			throw e;
 		}
 	}
-	
+
 	/**
 	 * 根据数据统计需求,进行组织每月考勤分析结果统计
 	 * @param emc
 	 * @param attendanceStatisticRequireLog
-	 * @param attendanceStatisticalCycle
 	 * @param workDayConfigList
 	 * @param topUnitAttendanceStatisticalCycleMap
 	 */

+ 1 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/ExternalDataSources.java

@@ -47,7 +47,7 @@ public class ExternalDataSources extends CopyOnWriteArrayList<ExternalDataSource
 			}
 		}
 		if (StringUtils.isEmpty(name)) {
-			throw new Exception("externalDataSource not in externalDataSources.");
+			throw new Exception("externalDataSource not in externalDataSources." + externalDataSource);
 		}
 		return name;
 	}

+ 1 - 0
o2server/x_calendar_assemble_control/src/main/webapp/describe/sources/com/x/calendar/assemble/control/jaxrs/setting/ActionListAll.java

@@ -11,6 +11,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.calendar.core.entity.Calendar_Setting;
 
 public class ActionListAll extends BaseAction {

+ 3 - 0
o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java

@@ -100,6 +100,9 @@ public class ResourceFactory {
 
 	private static void external_druid_c3p0() throws Exception {
 		for (ExternalDataSource ds : Config.externalDataSources()) {
+			if (!ds.getEnable()) {
+				continue;
+			}
 			DruidDataSourceC3P0Adapter dataSource = new DruidDataSourceC3P0Adapter();
 			dataSource.setJdbcUrl(ds.getUrl());
 			dataSource.setDriverClass(ds.getDriverClassName());

+ 7 - 0
o2server/x_console/src/main/java/com/x/server/console/action/EraseContentLog.java

@@ -2,6 +2,9 @@ package com.x.server.console.action;
 
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.processplatform.core.entity.element.FormVersion;
+import com.x.processplatform.core.entity.element.ProcessVersion;
+import com.x.processplatform.core.entity.element.ScriptVersion;
 import com.x.program.center.core.entity.PromptErrorLog;
 import com.x.program.center.core.entity.ScheduleLog;
 import com.x.program.center.core.entity.UnexpectedErrorLog;
@@ -18,6 +21,10 @@ public class EraseContentLog extends EraseContentProcessPlatform {
 		addClass(PromptErrorLog.class);
 		addClass(UnexpectedErrorLog.class);
 		addClass(WarnLog.class);
+		addClass(ProcessVersion.class);
+		addClass(FormVersion.class);
+		addClass(ScriptVersion.class);
+		this.run();
 		this.run();
 		return true;
 	}

+ 6 - 0
o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java

@@ -36,9 +36,13 @@ public abstract class JettySeverTools {
 		config.setResponseHeaderSize(8192 * 2);
 		config.setSendServerVersion(true);
 		config.setSendDateHeader(false);
+
 		ServerConnector sslConnector = new ServerConnector(server,
 				new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
 				new HttpConnectionFactory(config));
+		/* 添加到32,压力测试 */
+		sslConnector.setAcceptQueueSize(32);
+		sslConnector.setIdleTimeout(30000);
 		sslConnector.setPort(port);
 		server.addConnector(sslConnector);
 	}
@@ -51,6 +55,8 @@ public abstract class JettySeverTools {
 		config.setSendServerVersion(true);
 		config.setSendDateHeader(false);
 		ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(config));
+		/* 添加到32,压力测试 */
+		http.setAcceptQueueSize(32);
 		http.setIdleTimeout(30000);
 		http.setPort(port);
 		server.addConnector(http);

+ 2 - 0
o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java

@@ -50,6 +50,7 @@ class ActionCreate extends BaseAction {
 				}
 			}
 			Instant instant = this.instant(effectivePerson, business, wi, new ArrayList<>(consumersV2.keySet()));
+			logger.info("生成消息。,,,consumersV2 "+ consumersV2.size());
 			if (!consumersV2.isEmpty()) {
 				for (String consumer : consumersV2.keySet()) {
 					Wi cpwi = wi;
@@ -87,6 +88,7 @@ class ActionCreate extends BaseAction {
 						logger.warn("执行消息发送脚本[{}]方法异常:{}", func, e.getMessage());
 					}
 					Message message = null;
+					logger.info("这里是生成消息对象,consumer:"+consumer);
 					switch (Objects.toString(consumer, "")) {
 					case MessageConnector.CONSUME_WS:
 						message = this.wsMessage(effectivePerson, business, cpwi, instant);

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListByProcessIdentityNextWithFilter.java

@@ -13,6 +13,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.OkrUserCache;
 import com.x.okr.assemble.control.jaxrs.WorkCommonSearchFilter;
 import com.x.okr.assemble.control.jaxrs.okrcenterworkinfo.exception.ExceptionCenterWorkWrapOut;

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListByProcessIdentityPrevWithFilter.java

@@ -13,6 +13,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.OkrUserCache;
 import com.x.okr.assemble.control.jaxrs.WorkCommonSearchFilter;
 import com.x.okr.assemble.control.jaxrs.okrcenterworkinfo.exception.ExceptionCenterWorkWrapOut;

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListNextWithFilter.java

@@ -13,6 +13,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.OkrUserCache;
 import com.x.okr.assemble.control.jaxrs.WorkCommonQueryFilter;
 import com.x.okr.assemble.control.jaxrs.WorkCommonSearchFilter;

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrcenterworkinfo/ActionListPrevWithFilter.java

@@ -13,6 +13,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.OkrUserCache;
 import com.x.okr.assemble.control.jaxrs.WorkCommonQueryFilter;
 import com.x.okr.assemble.control.jaxrs.WorkCommonSearchFilter;

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrconfigsercretary/ActionListMySercretary.java

@@ -11,6 +11,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.jaxrs.okrconfigsercretary.exception.ExceptionSercretaryConfigListByIds;
 import com.x.okr.entity.OkrConfigSecretary;
 

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrconfigsystem/ActionSave.java

@@ -14,6 +14,7 @@ import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.jaxrs.WoId;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.common.date.DateOperation;
 import com.x.okr.assemble.control.OkrUserCache;
 import com.x.okr.assemble.control.jaxrs.okrconfigsystem.exception.ExceptionGetOkrUserCache;

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/jaxrs/okrworkbaseinfo/ActionListSubWork.java

@@ -8,6 +8,7 @@ import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.jaxrs.okrworkbaseinfo.exception.ExceptionWorkBaseInfoProcess;
 import com.x.okr.assemble.control.jaxrs.okrworkbaseinfo.exception.ExceptionWorkIdEmpty;
 import com.x.okr.entity.OkrWorkBaseInfo;

+ 1 - 0
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/ExcuteWorkReportCreateService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.dataadapter.webservice.sms.SmsMessageOperator;
 import com.x.okr.assemble.control.jaxrs.queue.WrapInWorkDynamic;
 import com.x.okr.entity.OkrWorkBaseInfo;

+ 14 - 13
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrCenterWorkExcuteDelete.java

@@ -6,6 +6,7 @@ import java.util.List;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.project.config.StorageMapping;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.Business;
 import com.x.okr.assemble.control.ThisApplication;
 import com.x.okr.entity.OkrAttachmentFileInfo;
@@ -89,7 +90,7 @@ public class OkrCenterWorkExcuteDelete {
 		
 		//删除所有与中心工作有关的待办信息,已办信息
 		ids = business.okrTaskFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrTaskList = business.okrTaskFactory().list(ids);
 			for( OkrTask okrTask : okrTaskList ){
 				if( okrTask != null ){
@@ -98,7 +99,7 @@ public class OkrCenterWorkExcuteDelete {
 			}
 		}
 		ids = business.okrTaskHandledFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrTaskHandledList = business.okrTaskHandledFactory().list(ids);
 			for( OkrTaskHandled okrTaskHandled : okrTaskHandledList ){
 				if( okrTaskHandled != null ){
@@ -108,7 +109,7 @@ public class OkrCenterWorkExcuteDelete {
 		}
 		//删除所有与中心工作有关的工作汇报信息
 		ids = business.okrWorkReportProcessLogFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportProcessLogList = business.okrWorkReportProcessLogFactory().list(ids);
 			for( OkrWorkReportProcessLog okrWorkReportProcessLog : okrWorkReportProcessLogList ){
 				if( okrWorkReportProcessLog != null ){
@@ -117,7 +118,7 @@ public class OkrCenterWorkExcuteDelete {
 			}
 		}
 		ids = business.okrWorkReportPersonLinkFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportPersonLinkList = business.okrWorkReportPersonLinkFactory().list(ids);
 			for( OkrWorkReportPersonLink okrWorkReportPersonLink : okrWorkReportPersonLinkList ){
 				if( okrWorkReportPersonLink != null ){
@@ -126,7 +127,7 @@ public class OkrCenterWorkExcuteDelete {
 			}
 		}
 		ids = business.okrWorkReportDetailInfoFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportDetailInfoList = business.okrWorkReportDetailInfoFactory().list(ids);
 			for( OkrWorkReportDetailInfo okrWorkReportDetailInfo : okrWorkReportDetailInfoList ){
 				if( okrWorkReportDetailInfo != null ){
@@ -135,7 +136,7 @@ public class OkrCenterWorkExcuteDelete {
 			}
 		}
 		ids = business.okrWorkReportBaseInfoFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportBaseInfoList = business.okrWorkReportBaseInfoFactory().list(ids);
 			for( OkrWorkReportBaseInfo okrWorkReportBaseInfo : okrWorkReportBaseInfoList ){
 				if( okrWorkReportBaseInfo != null ){
@@ -150,7 +151,7 @@ public class OkrCenterWorkExcuteDelete {
 		}
 		//删除所有与中心工作有关的工作信息
 		ids = business.okrWorkPersonFactory().listByCenterWorkId( centerId, null );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkPersonList = business.okrWorkPersonFactory().list(ids);
 			for( OkrWorkPerson okrWorkPerson : okrWorkPersonList ){
 				if( okrWorkPerson != null ){
@@ -159,7 +160,7 @@ public class OkrCenterWorkExcuteDelete {
 			}
 		}
 		ids = business.okrWorkDetailInfoFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkDetailInfoList = business.okrWorkDetailInfoFactory().list(ids);
 			for( OkrWorkDetailInfo okrWorkDetailInfo : okrWorkDetailInfoList ){
 				if( okrWorkDetailInfo != null ){
@@ -168,7 +169,7 @@ public class OkrCenterWorkExcuteDelete {
 			}
 		}
 		ids = business.okrWorkBaseInfoFactory().listByCenterWorkId( centerId, null );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkBaseInfoList = business.okrWorkBaseInfoFactory().list(ids);
 			for( OkrWorkBaseInfo okrWorkBaseInfo : okrWorkBaseInfoList ){
 				if( okrWorkBaseInfo != null ){
@@ -181,7 +182,7 @@ public class OkrCenterWorkExcuteDelete {
 				}
 			}
 		}		
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			for( String id : ids ){
 				
 				statisticIds = business.okrStatisticReportContentFactory().list( id, null, null, null, null );
@@ -205,7 +206,7 @@ public class OkrCenterWorkExcuteDelete {
 		
 		//删除所有与中心工作有关的工作授权记录
 		ids = business.okrWorkAuthorizeRecordFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkAuthorizeRecordList = business.okrWorkAuthorizeRecordFactory().list(ids);
 			for( OkrWorkAuthorizeRecord okrWorkAuthorizeRecord : okrWorkAuthorizeRecordList ){
 				if( okrWorkAuthorizeRecord != null ){
@@ -215,7 +216,7 @@ public class OkrCenterWorkExcuteDelete {
 		}
 		//删除所有与中心工作有关的工作动态信息
 		ids = business.okrWorkDynamicsFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkDynamicsList = business.okrWorkDynamicsFactory().list(ids);
 			for( OkrWorkDynamics okrWorkDynamics : okrWorkDynamicsList ){
 				if( okrWorkDynamics != null ){
@@ -225,7 +226,7 @@ public class OkrCenterWorkExcuteDelete {
 		}
 		//删除所有与中心工作有关的工作交流信息
 		ids = business.okrWorkChatFactory().listByCenterWorkId( centerId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkChatList = business.okrWorkChatFactory().list(ids);
 			for( OkrWorkChat okrWorkChat : okrWorkChatList ){
 				if( okrWorkChat != null ){

+ 2 - 1
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrCenterWorkExcuteSave.java

@@ -7,6 +7,7 @@ import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.entity.JpaObject;
 import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.entity.annotation.CheckRemoveType;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.control.Business;
 import com.x.okr.entity.OkrCenterWorkInfo;
 import com.x.okr.entity.OkrWorkBaseInfo;
@@ -43,7 +44,7 @@ public class OkrCenterWorkExcuteSave {
 			//如果当前的标题和原来的标题不一致,那么需要修改所有具体工作项目的中心工作标题
 			if( !okrCenterWorkInfo_old.getTitle().equals( okrCenterWorkInfo.getTitle()) ){
 				ids = business.okrWorkBaseInfoFactory().listByCenterWorkId( okrCenterWorkInfo.getId(), null );
-				if( ids != null && ids.size() > 0 ){
+				if( ListTools.isNotEmpty( ids ) ){
 					for( String id : ids ){
 						okrWorkBaseInfo = emc.find( id, OkrWorkBaseInfo.class );
 						if( okrWorkBaseInfo != null ){

+ 9 - 9
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrWorkBaseInfoExcuteArchive.java

@@ -114,7 +114,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 		}
 
 		ids = business.okrWorkReportPersonLinkFactory().listByWorkId(workId);
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportPersonLinkList = business.okrWorkReportPersonLinkFactory().list(ids);
 			for( OkrWorkReportPersonLink okrWorkReportPersonLink : okrWorkReportPersonLinkList ){
 				if( okrWorkReportPersonLink != null ){
@@ -128,7 +128,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 			}
 		}
 		ids = business.okrWorkReportBaseInfoFactory().listByWorkId(workId);
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportBaseInfoList = business.okrWorkReportBaseInfoFactory().list(ids);
 			for( OkrWorkReportBaseInfo okrWorkReportBaseInfo : okrWorkReportBaseInfoList ){
 				if( okrWorkReportBaseInfo != null ){
@@ -148,7 +148,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 		}
 		
 		ids = business.okrWorkReportProcessLogFactory().listByWorkId( workId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportProcessLogList = business.okrWorkReportProcessLogFactory().list(ids);
 			for( OkrWorkReportProcessLog okrWorkReportProcessLog : okrWorkReportProcessLogList ){
 				if( okrWorkReportProcessLog != null ){
@@ -158,7 +158,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 			}
 		}
 		ids = business.okrWorkReportDetailInfoFactory().listByWorkId( workId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkReportDetailInfoList = business.okrWorkReportDetailInfoFactory().list(ids);
 			for( OkrWorkReportDetailInfo okrWorkReportDetailInfo : okrWorkReportDetailInfoList ){
 				if( okrWorkReportDetailInfo != null ){
@@ -168,7 +168,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 			}
 		}
 		ids = business.okrWorkPersonFactory().listByWorkId( workId, null );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkPersonList = business.okrWorkPersonFactory().list(ids);
 			for( OkrWorkPerson okrWorkPerson : okrWorkPersonList ){
 				if( okrWorkPerson != null ){
@@ -178,7 +178,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 			}
 		}
 		ids = business.okrWorkDetailInfoFactory().listByWorkId( workId );
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkDetailInfoList = business.okrWorkDetailInfoFactory().list(ids);
 			for( OkrWorkDetailInfo okrWorkDetailInfo : okrWorkDetailInfoList ){
 				if( okrWorkDetailInfo != null ){
@@ -188,7 +188,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 			}
 		}
 		ids = business.okrWorkAuthorizeRecordFactory().listByWorkId(workId);
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkAuthorizeRecordList = business.okrWorkAuthorizeRecordFactory().list(ids);
 			for( OkrWorkAuthorizeRecord okrWorkAuthorizeRecord : okrWorkAuthorizeRecordList ){
 				if( okrWorkAuthorizeRecord != null ){
@@ -198,7 +198,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 			}
 		}
 		ids = business.okrWorkDynamicsFactory().listByWorkId(workId);
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrWorkDynamicsList = business.okrWorkDynamicsFactory().list(ids);
 			for( OkrWorkDynamics okrWorkDynamics : okrWorkDynamicsList ){
 				if( okrWorkDynamics != null ){
@@ -210,7 +210,7 @@ public class OkrWorkBaseInfoExcuteArchive {
 		
 		ids = business.okrTaskFactory().listByWorkId(workId);
 		List<TaskIdentityInfo> taskIdentityInfoList = new ArrayList<>();
-		if( ids != null && ids.size() > 0 ){
+		if( ListTools.isNotEmpty( ids ) ){
 			okrTaskList = business.okrTaskFactory().list(ids);
 			for( OkrTask okrTask : okrTaskList ){
 				if( okrTask != null ){

+ 5 - 4
o2server/x_okr_assemble_control/src/main/webapp/describe/sources/com/x/okr/assemble/control/service/OkrWorkReportOperationService.java

@@ -11,6 +11,7 @@ import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.entity.annotation.CheckRemoveType;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.okr.assemble.common.date.DateOperation;
 import com.x.okr.assemble.control.Business;
 import com.x.okr.entity.OkrAttachmentFileInfo;
@@ -325,7 +326,7 @@ public class OkrWorkReportOperationService{
 			emc.beginTransaction( OkrWorkReportProcessLog.class );
 			
 			ids = business.okrWorkReportBaseInfoFactory().listByWorkId( workId );
-			if( ids != null && ids.size() > 0 ){
+			if( ListTools.isNotEmpty( ids ) ){
 				for( String id : ids ){
 					okrWorkReportBaseInfo = business.okrWorkReportBaseInfoFactory().get(id);
 					okrWorkReportBaseInfo.setStatus( "已删除" );
@@ -334,7 +335,7 @@ public class OkrWorkReportOperationService{
 			}
 			
 			ids = business.okrWorkReportDetailInfoFactory().listByWorkId( workId );
-			if( ids != null && ids.size() > 0 ){
+			if( ListTools.isNotEmpty( ids ) ){
 				for( String id : ids ){
 					okrWorkReportDetailInfo = business.okrWorkReportDetailInfoFactory().get(id);
 					okrWorkReportDetailInfo.setStatus( "已删除" );
@@ -343,7 +344,7 @@ public class OkrWorkReportOperationService{
 			}
 			
 			ids = business.okrWorkReportPersonLinkFactory().listByWorkId( workId );
-			if( ids != null && ids.size() > 0 ){
+			if( ListTools.isNotEmpty( ids ) ){
 				for( String id : ids ){
 					okrWorkReportPersonLink = business.okrWorkReportPersonLinkFactory().get(id);
 					okrWorkReportPersonLink.setStatus( "已删除" );
@@ -352,7 +353,7 @@ public class OkrWorkReportOperationService{
 			}
 			
 			ids = business.okrWorkReportProcessLogFactory().listByWorkId( workId );
-			if( ids != null && ids.size() > 0 ){
+			if( ListTools.isNotEmpty( ids ) ){
 				for( String id : ids ){
 					okrWorkReportProcessLog = business.okrWorkReportProcessLogFactory().get(id);
 					okrWorkReportProcessLog.setStatus( "已删除" );

+ 3 - 3
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java

@@ -66,7 +66,7 @@ class ActionCreate extends BaseAction {
 			if (null == process) {
 				throw new ExceptionProcessNotExist(processFlag);
 			}
-			if(StringUtils.isNotEmpty(process.getEdition()) && BooleanUtils.isFalse(process.getEditionEnable())){
+			if (StringUtils.isNotEmpty(process.getEdition()) && BooleanUtils.isFalse(process.getEditionEnable())) {
 				process = business.process().pickEnabled(process.getApplication(), process.getEdition());
 			}
 			Application application = business.application().pick(process.getApplication());
@@ -109,9 +109,9 @@ class ActionCreate extends BaseAction {
 				}
 				emc.commit();
 			}
-			/* 驱动工作 */
+			/* 驱动工作,使用非队列方式 */
 			ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class,
-					"work/" + URLEncoder.encode(workId, DefaultCharset.name) + "/processing", null, processFlag);
+					Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null, processFlag);
 		} else {
 			/* 如果是草稿,准备后面的直接打开 */
 			workId = lastestWorkId;

+ 2 - 2
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java

@@ -101,9 +101,9 @@ class ActionCreateForce extends BaseAction {
 				}
 				emc.commit();
 			}
-			/* 驱动工作 */
+			/* 驱动工作,使用非队列方式 */
 			ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class,
-					"work/" + URLEncoder.encode(workId, DefaultCharset.name) + "/processing", null, processFlag);
+					Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null, processFlag);
 		} else {
 			/* 如果是草稿,准备后面的直接打开 */
 			workId = lastestWorkId;

+ 11 - 11
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java

@@ -6,27 +6,23 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import com.x.base.core.project.logger.Audit;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
-
 import com.google.gson.JsonElement;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.JpaObject;
+import com.x.base.core.project.Applications;
 import com.x.base.core.project.x_processplatform_service_processing;
 import com.x.base.core.project.annotation.FieldDescribe;
 import com.x.base.core.project.bean.WrapCopier;
 import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.exception.ExceptionAccessDenied;
 import com.x.base.core.project.gson.GsonPropertyObject;
 import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.http.TokenType;
 import com.x.base.core.project.jaxrs.WoId;
+import com.x.base.core.project.logger.Audit;
+import com.x.base.core.project.logger.Logger;
+import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.organization.Unit;
 import com.x.base.core.project.tools.DefaultCharset;
 import com.x.base.core.project.tools.ListTools;
@@ -43,6 +39,10 @@ import com.x.processplatform.core.entity.content.WorkLog;
 import com.x.processplatform.core.entity.element.Application;
 import com.x.processplatform.core.entity.element.Process;
 
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+
 /*
  * 根据应用名称和流程名称进行创建,和直接用process创建基本相同
  * */
@@ -72,7 +72,7 @@ class ActionCreateWithApplicationProcess extends BaseAction {
 			if (null == process) {
 				throw new ExceptionProcessNotExist(processFlag);
 			}
-			if(StringUtils.isNotEmpty(process.getEdition()) && BooleanUtils.isFalse(process.getEditionEnable())){
+			if (StringUtils.isNotEmpty(process.getEdition()) && BooleanUtils.isFalse(process.getEditionEnable())) {
 				process = business.process().pickEnabled(process.getApplication(), process.getEdition());
 			}
 			List<String> roles = business.organization().role().listWithPerson(effectivePerson);
@@ -115,9 +115,9 @@ class ActionCreateWithApplicationProcess extends BaseAction {
 				}
 				emc.commit();
 			}
-			/* 驱动工作 */
+			/* 驱动工作,使用非队列方式 */
 			ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class,
-					"work/" + URLEncoder.encode(workId, DefaultCharset.name) + "/processing", null);
+					Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null,processFlag);
 		} else {
 			/* 如果是草稿,准备后面的直接打开 */
 			workId = lastestWorkId;

+ 0 - 18
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/WorkAction.java

@@ -296,24 +296,6 @@ public class WorkAction extends StandardJaxrsAction {
 		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
 	}
 
-//	@JaxrsMethodDescribe(value = "检查是否要删除处于草稿状态的工作,没有保存过任何数据将被认为是草稿,需要应用管理权限或者是工作的创建者。", action = ActionCheckDraft.class)
-//	@DELETE
-//	@Path("{id}/check/draft")
-//	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-//	@Consumes(MediaType.APPLICATION_JSON)
-//	public void checkDraft(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-//			@JaxrsParameterDescribe("工作标识") @PathParam("id") String id) {
-//		ActionResult<ActionCheckDraft.Wo> result = new ActionResult<>();
-//		EffectivePerson effectivePerson = this.effectivePerson(request);
-//		try {
-//			result = new ActionCheckDraft().execute(effectivePerson, id);
-//		} catch (Exception e) {
-//			logger.error(e, effectivePerson, request, null);
-//			result.error(e);
-//		}
-//		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-//	}
-
 	@JaxrsMethodDescribe(value = "完成工作关闭时候的检查,1.检查是否要删除处于草稿状态的工作,没有保存过任何数据将被认为是草稿.2.检查是否需要释放抢办.", action = ActionCloseCheck.class)
 	@GET
 	@Path("{id}/close/check")

+ 6 - 16
o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/helper/ExtractTextHelper.java

@@ -2,13 +2,17 @@ package com.x.query.service.processing.helper;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
-import java.io.File;
 import java.util.List;
 
 import javax.imageio.ImageIO;
 
+import com.x.base.core.project.config.Config;
+import com.x.base.core.project.logger.Logger;
+import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.DefaultCharset;
+import com.x.base.core.project.tools.ListTools;
+
 import org.apache.commons.collections4.list.UnmodifiableList;
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.pdfbox.cos.COSDocument;
 import org.apache.pdfbox.io.RandomAccessBuffer;
@@ -17,12 +21,6 @@ import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.text.PDFTextStripper;
 import org.apache.tika.Tika;
 
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.DefaultCharset;
-import com.x.base.core.project.tools.ListTools;
-
 import net.sourceforge.tess4j.Tesseract;
 
 public class ExtractTextHelper {
@@ -150,12 +148,4 @@ public class ExtractTextHelper {
 		return tika;
 	}
 
-//	@Test
-//	public void test1() throws Exception {
-//		System.out.println(ExtractTextHelper.extract(FileUtils.readFileToByteArray(new File("d:/2.doc")), "文件内容&文件内容.doc", true,
-//				true, true, false));
-//		System.out.println(ExtractTextHelper.extract(FileUtils.readFileToByteArray(new File("d:/2.doc")), "文件内容&文件内容.doc", true,
-//				true, true, false));
-//	}
-
 }

+ 12 - 11
o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/schedule/CrawlCms.java

@@ -8,13 +8,10 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.entity.JpaObject_;
 import com.x.base.core.project.Applications;
 import com.x.base.core.project.x_query_service_processing;
 import com.x.base.core.project.config.Config;
@@ -30,6 +27,11 @@ import com.x.query.core.express.program.Arguments;
 import com.x.query.service.processing.Business;
 import com.x.query.service.processing.ThisApplication;
 
+import org.apache.commons.collections4.ListUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
 public class CrawlCms extends AbstractJob {
 
 	private static Logger logger = LoggerFactory.getLogger(CrawlCms.class);
@@ -82,7 +84,7 @@ public class CrawlCms extends AbstractJob {
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Document> root = cq.from(Document.class);
-		cq.select(root.get(Document_.id)).orderBy(cb.desc(root.get(Document_.sequence)));
+		cq.select(root.get(Document_.id)).orderBy(cb.desc(root.get(JpaObject_.sequence)));
 		List<String> os = em.createQuery(cq).setMaxResults(Config.query().getCrawlCms().getCount()).getResultList();
 		return os;
 	}
@@ -98,9 +100,9 @@ public class CrawlCms extends AbstractJob {
 		Predicate p = cb.conjunction();
 		String sequence = Arguments.getCrawlUpdateCms();
 		if (StringUtils.isNotEmpty(sequence)) {
-			p = cb.and(cb.lessThan(root.get(Document.sequence_FIELDNAME), sequence));
+			p = cb.and(cb.lessThan(root.get(JpaObject.sequence_FIELDNAME), sequence));
 		}
-		cq.select(root.get(Document_.id)).where(p).orderBy(cb.desc(root.get(Document_.sequence)));
+		cq.select(root.get(Document_.id)).where(p).orderBy(cb.desc(root.get(JpaObject_.sequence)));
 		Integer count = Config.query().getCrawlCms().getCount() / 2;
 		List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
 		if (os.size() == count) {
@@ -120,10 +122,9 @@ public class CrawlCms extends AbstractJob {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Entry> root = cq.from(Entry.class);
 		Predicate p = cb.equal(root.get(Entry_.type), Entry.TYPE_CMS);
-		cq.select(root.get(Entry_.reference)).where(p).orderBy(cb.asc(root.get(Entry_.sequence)));
+		cq.select(root.get(Entry_.reference)).where(p).orderBy(cb.asc(root.get(JpaObject_.sequence)));
 		Integer count = Config.query().getCrawlCms().getCount() / 2;
-		List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
-		return os;
+		return em.createQuery(cq).setMaxResults(count).getResultList();
 	}
 
 }

+ 11 - 10
o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/schedule/CrawlWork.java

@@ -8,13 +8,10 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.entity.JpaObject_;
 import com.x.base.core.project.Applications;
 import com.x.base.core.project.x_query_service_processing;
 import com.x.base.core.project.config.Config;
@@ -30,6 +27,11 @@ import com.x.query.core.express.program.Arguments;
 import com.x.query.service.processing.Business;
 import com.x.query.service.processing.ThisApplication;
 
+import org.apache.commons.collections4.ListUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
 public class CrawlWork extends AbstractJob {
 
 	private static Logger logger = LoggerFactory.getLogger(CrawlWork.class);
@@ -96,9 +98,9 @@ public class CrawlWork extends AbstractJob {
 		Predicate p = cb.conjunction();
 		String sequence = Arguments.getCrawlUpdateWork();
 		if (StringUtils.isNotEmpty(sequence)) {
-			p = cb.and(cb.lessThan(root.get(Work.sequence_FIELDNAME), sequence));
+			p = cb.and(cb.lessThan(root.get(JpaObject.sequence_FIELDNAME), sequence));
 		}
-		cq.select(root.get(Work_.id)).where(p).orderBy(cb.desc(root.get(Work_.sequence)));
+		cq.select(root.get(Work_.id)).where(p).orderBy(cb.desc(root.get(JpaObject_.sequence)));
 		Integer count = Config.query().getCrawlWork().getCount() / 2;
 		List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
 		if (os.size() == count) {
@@ -118,10 +120,9 @@ public class CrawlWork extends AbstractJob {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Entry> root = cq.from(Entry.class);
 		Predicate p = cb.equal(root.get(Entry_.type), Entry.TYPE_WORK);
-		cq.select(root.get(Entry_.reference)).where(p).orderBy(cb.asc(root.get(Entry_.sequence)));
+		cq.select(root.get(Entry_.reference)).where(p).orderBy(cb.asc(root.get(JpaObject_.sequence)));
 		Integer count = Config.query().getCrawlWork().getCount() / 2;
-		List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
-		return os;
+		return em.createQuery(cq).setMaxResults(count).getResultList();
 	}
 
 }

+ 11 - 10
o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/schedule/CrawlWorkCompleted.java

@@ -8,13 +8,10 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
-import org.apache.commons.collections4.ListUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.entity.JpaObject_;
 import com.x.base.core.project.Applications;
 import com.x.base.core.project.x_query_service_processing;
 import com.x.base.core.project.config.Config;
@@ -30,6 +27,11 @@ import com.x.query.core.express.program.Arguments;
 import com.x.query.service.processing.Business;
 import com.x.query.service.processing.ThisApplication;
 
+import org.apache.commons.collections4.ListUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
 public class CrawlWorkCompleted extends AbstractJob {
 
 	private static Logger logger = LoggerFactory.getLogger(CrawlWorkCompleted.class);
@@ -99,9 +101,9 @@ public class CrawlWorkCompleted extends AbstractJob {
 		Predicate p = cb.conjunction();
 		String sequence = Arguments.getCrawlUpdateWorkCompleted();
 		if (StringUtils.isNotEmpty(sequence)) {
-			p = cb.and(cb.lessThan(root.get(WorkCompleted.sequence_FIELDNAME), sequence));
+			p = cb.and(cb.lessThan(root.get(JpaObject.sequence_FIELDNAME), sequence));
 		}
-		cq.select(root.get(WorkCompleted_.id)).where(p).orderBy(cb.desc(root.get(WorkCompleted_.sequence)));
+		cq.select(root.get(WorkCompleted_.id)).where(p).orderBy(cb.desc(root.get(JpaObject_.sequence)));
 		Integer count = Config.query().getCrawlWorkCompleted().getCount() /4;
 		List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
 		if (os.size() == count) {
@@ -121,9 +123,8 @@ public class CrawlWorkCompleted extends AbstractJob {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Entry> root = cq.from(Entry.class);
 		Predicate p = cb.equal(root.get(Entry_.type), Entry.TYPE_WORKCOMPLETED);
-		cq.select(root.get(Entry_.reference)).where(p).orderBy(cb.asc(root.get(Entry_.sequence)));
+		cq.select(root.get(Entry_.reference)).where(p).orderBy(cb.asc(root.get(JpaObject_.sequence)));
 		Integer count = Config.query().getCrawlWorkCompleted().getCount() / 4;
-		List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
-		return os;
+		return em.createQuery(cq).setMaxResults(count).getResultList();
 	}
 }