Selaa lähdekoodia

Merge branch 'fix/#324' into 'develop'

Fix/#324

See merge request o2oa/o2oa!1418
o2null 5 vuotta sitten
vanhempi
commit
9742e1785f

+ 1 - 1
o2server/x_program_center/src/main/java/com/x/program/center/LogQueue.java

@@ -68,7 +68,7 @@ public class LogQueue extends AbstractQueue<NameValuePair> {
 		do {
 			try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 				Calendar threshold = Calendar.getInstance();
-				threshold.add(Calendar.DATE, -5);
+				threshold.add(Calendar.DATE, -7);
 				ids = emc.idsLessThanMax(cls, JpaObject.createTime_FIELDNAME, threshold.getTime(), 500);
 				if (!ids.isEmpty()) {
 					emc.beginTransaction(cls);

+ 88 - 69
o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectLog.java

@@ -16,6 +16,7 @@ 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.project.config.Config;
 import com.x.base.core.project.connection.ActionResponse;
 import com.x.base.core.project.connection.ConnectionAction;
@@ -38,58 +39,16 @@ public class CollectLog extends BaseAction {
 	@Override
 	public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
 		try {
-			if (pirmaryCenter()) {
+			if (pirmaryCenter() && BooleanUtils.isTrue(Config.collect().getEnable())) {
 				try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-					if (BooleanUtils.isTrue(Config.collect().getEnable())) {
-						Business business = new Business(emc);
-						if (business.validateCollect()) {
-							List<PromptErrorLog> os_promptErrorLog = this.list_promptErrorLog(emc);
-							List<UnexpectedErrorLog> os_unexpectedErrorLog = this.list_unexpectedErrorLog(emc);
-							List<WarnLog> os_warnLog = this.list_warnLog(emc);
-							if (!os_promptErrorLog.isEmpty()) {
-								Req req = new Req();
-								req.setName(Config.collect().getName());
-								req.setPassword(Config.collect().getPassword());
-								req.setPromptErrorLogList(os_promptErrorLog);
-								try {
-									ActionResponse response = ConnectionAction
-											.put(Config.collect().url(ADDRESS_COLLECT_PROMPTERRORLOG), null, req);
-									response.getData(WrapOutBoolean.class);
-								} catch (Exception e) {
-									e.printStackTrace();
-								}
-							}
-							if (!os_unexpectedErrorLog.isEmpty()) {
-								Req req = new Req();
-								req.setName(Config.collect().getName());
-								req.setPassword(Config.collect().getPassword());
-								req.setUnexceptedErrorLog(os_unexpectedErrorLog);
-								try {
-									ActionResponse response = ConnectionAction
-											.put(Config.collect().url(ADDRESS_COLLECT_UNEXPECTEDERRORLOG), null, req);
-									response.getData(WrapOutBoolean.class);
-								} catch (Exception e) {
-									e.printStackTrace();
-								}
-							}
-							if (!os_warnLog.isEmpty()) {
-								Req req = new Req();
-								req.setName(Config.collect().getName());
-								req.setPassword(Config.collect().getPassword());
-								req.setWarnLogList(os_warnLog);
-								try {
-									ActionResponse response = ConnectionAction
-											.put(Config.collect().url(ADDRESS_COLLECT_WARNLOG), null, req);
-									response.getData(WrapOutBoolean.class);
-								} catch (Exception e) {
-									e.printStackTrace();
-								}
-							}
-						} else {
-							logger.info("无法登录到云服务器.");
-						}
+					Business business = new Business(emc);
+					if (BooleanUtils.isNotTrue(business.validateCollect())) {
+						logger.warn("login cloud server failure.");
 					}
 				}
+				this.collectPromptErrorLog();
+				this.collectUnexpectedErrorLog();
+				this.collectWarnLog();
 			}
 		} catch (Exception e) {
 			logger.error(e);
@@ -97,12 +56,70 @@ public class CollectLog extends BaseAction {
 		}
 	}
 
+	private void collectPromptErrorLog() throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			List<PromptErrorLog> list = this.listPromptErrorLog(emc);
+			if (!list.isEmpty()) {
+				Req req = new Req();
+				req.setName(Config.collect().getName());
+				req.setPassword(Config.collect().getPassword());
+				req.setPromptErrorLogList(list);
+				try {
+					ActionResponse response = ConnectionAction.put(Config.collect().url(ADDRESS_COLLECT_PROMPTERRORLOG),
+							null, req);
+					response.getData(WrapOutBoolean.class);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	private void collectUnexpectedErrorLog() throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			List<UnexpectedErrorLog> list = this.listUnexpectedErrorLog(emc);
+			if (!list.isEmpty()) {
+				Req req = new Req();
+				req.setName(Config.collect().getName());
+				req.setPassword(Config.collect().getPassword());
+				req.setUnexpectedErrorLogList(list);
+				try {
+					ActionResponse response = ConnectionAction
+							.put(Config.collect().url(ADDRESS_COLLECT_UNEXPECTEDERRORLOG), null, req);
+					response.getData(WrapOutBoolean.class);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	private void collectWarnLog() throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			List<WarnLog> list = this.listWarnLog(emc);
+			if (!list.isEmpty()) {
+				Req req = new Req();
+				req.setName(Config.collect().getName());
+				req.setPassword(Config.collect().getPassword());
+				req.setWarnLogList(list);
+				try {
+					ActionResponse response = ConnectionAction.put(Config.collect().url(ADDRESS_COLLECT_WARNLOG), null,
+							req);
+					response.getData(WrapOutBoolean.class);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
 	public static class Req extends GsonPropertyObject {
 
+		private static final long serialVersionUID = 2018703062822498687L;
 		private String name;
 		private String password;
 		private List<PromptErrorLog> promptErrorLogList = new ArrayList<>();
-		private List<UnexpectedErrorLog> unexceptedErrorLog = new ArrayList<>();
+		private List<UnexpectedErrorLog> unexpectedErrorLogList = new ArrayList<>();
 		private List<WarnLog> warnLogList = new ArrayList<>();
 
 		public String getName() {
@@ -137,27 +154,28 @@ public class CollectLog extends BaseAction {
 			this.warnLogList = warnLogList;
 		}
 
-		public List<UnexpectedErrorLog> getUnexceptedErrorLog() {
-			return unexceptedErrorLog;
+		public List<UnexpectedErrorLog> getUnexpectedErrorLogList() {
+			return unexpectedErrorLogList;
 		}
 
-		public void setUnexceptedErrorLog(List<UnexpectedErrorLog> unexceptedErrorLog) {
-			this.unexceptedErrorLog = unexceptedErrorLog;
+		public void setUnexpectedErrorLogList(List<UnexpectedErrorLog> unexpectedErrorLogList) {
+			this.unexpectedErrorLogList = unexpectedErrorLogList;
 		}
 
 	}
 
-	private List<PromptErrorLog> list_promptErrorLog(EntityManagerContainer emc) throws Exception {
+	private List<PromptErrorLog> listPromptErrorLog(EntityManagerContainer emc) throws Exception {
 		EntityManager em = emc.get(PromptErrorLog.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<PromptErrorLog> cq = cb.createQuery(PromptErrorLog.class);
 		Root<PromptErrorLog> root = cq.from(PromptErrorLog.class);
 		Calendar cal = Calendar.getInstance();
 		cal.add(Calendar.DAY_OF_MONTH, -1);
-		Predicate p = cb.greaterThan(root.get(PromptErrorLog_.createTime), cal.getTime());
-		p = cb.and(p, cb.notEqual(root.get(PromptErrorLog_.collected), true));
-		cq.select(root).where(p).orderBy(cb.desc(root.get(PromptErrorLog_.createTime)));
-		List<PromptErrorLog> list = em.createQuery(cq).setMaxResults(10).getResultList();
+		Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime());
+		p = cb.and(p, cb.or(cb.notEqual(root.get(PromptErrorLog_.collected), true),
+				cb.isNull(root.get(PromptErrorLog_.collected))));
+		cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime)));
+		List<PromptErrorLog> list = em.createQuery(cq).setMaxResults(20).getResultList();
 		if (!list.isEmpty()) {
 			emc.beginTransaction(PromptErrorLog.class);
 			for (PromptErrorLog o : list) {
@@ -168,17 +186,18 @@ public class CollectLog extends BaseAction {
 		return list;
 	}
 
-	private List<UnexpectedErrorLog> list_unexpectedErrorLog(EntityManagerContainer emc) throws Exception {
+	private List<UnexpectedErrorLog> listUnexpectedErrorLog(EntityManagerContainer emc) throws Exception {
 		EntityManager em = emc.get(UnexpectedErrorLog.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<UnexpectedErrorLog> cq = cb.createQuery(UnexpectedErrorLog.class);
 		Root<UnexpectedErrorLog> root = cq.from(UnexpectedErrorLog.class);
 		Calendar cal = Calendar.getInstance();
 		cal.add(Calendar.DAY_OF_MONTH, -1);
-		Predicate p = cb.greaterThan(root.get(UnexpectedErrorLog_.createTime), cal.getTime());
-		p = cb.and(p, cb.notEqual(root.get(UnexpectedErrorLog_.collected), true));
-		cq.select(root).where(p).orderBy(cb.desc(root.get(UnexpectedErrorLog_.createTime)));
-		List<UnexpectedErrorLog> list = em.createQuery(cq).setMaxResults(10).getResultList();
+		Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime());
+		p = cb.and(p, cb.or(cb.notEqual(root.get(UnexpectedErrorLog_.collected), true),
+				cb.isNull(root.get(UnexpectedErrorLog_.collected))));
+		cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime)));
+		List<UnexpectedErrorLog> list = em.createQuery(cq).setMaxResults(20).getResultList();
 		if (!list.isEmpty()) {
 			emc.beginTransaction(UnexpectedErrorLog.class);
 			for (UnexpectedErrorLog o : list) {
@@ -189,17 +208,17 @@ public class CollectLog extends BaseAction {
 		return list;
 	}
 
-	private List<WarnLog> list_warnLog(EntityManagerContainer emc) throws Exception {
+	private List<WarnLog> listWarnLog(EntityManagerContainer emc) throws Exception {
 		EntityManager em = emc.get(WarnLog.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<WarnLog> cq = cb.createQuery(WarnLog.class);
 		Root<WarnLog> root = cq.from(WarnLog.class);
 		Calendar cal = Calendar.getInstance();
 		cal.add(Calendar.DAY_OF_MONTH, -1);
-		Predicate p = cb.greaterThan(root.get(WarnLog_.createTime), cal.getTime());
-		p = cb.and(p, cb.notEqual(root.get(WarnLog_.collected), true));
-		cq.select(root).where(p).orderBy(cb.desc(root.get(WarnLog_.createTime)));
-		List<WarnLog> list = em.createQuery(cq).setMaxResults(10).getResultList();
+		Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime());
+		p = cb.and(p, cb.or(cb.notEqual(root.get(WarnLog_.collected), true), cb.isNull(root.get(WarnLog_.collected))));
+		cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime)));
+		List<WarnLog> list = em.createQuery(cq).setMaxResults(20).getResultList();
 		if (!list.isEmpty()) {
 			emc.beginTransaction(WarnLog.class);
 			for (WarnLog o : list) {

+ 7 - 0
o2server/x_query_service_processing/src/main/java/com/x/query/service/processing/jaxrs/neural/ActionListCalculateWithWork.java

@@ -21,6 +21,7 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.dataitem.DataItemConverter;
 import com.x.base.core.entity.dataitem.ItemCategory;
 import com.x.base.core.project.cache.ApplicationCache;
+import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.StorageMapping;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
 import com.x.base.core.project.gson.GsonPropertyObject;
@@ -121,6 +122,12 @@ class ActionListCalculateWithWork extends BaseAction {
 				Attachment.job_FIELDNAME, work.getJob());
 		StorageMapping mapping = null;
 		for (Attachment o : attachments) {
+			if (Config.query().getCrawlWorkCompleted().getExcludeAttachment().contains(o.getName())
+					|| Config.query().getCrawlWorkCompleted().getExcludeSite().contains(o.getSite())
+					|| StringUtils.equalsIgnoreCase(o.getName(), Config.processPlatform().getDocToWordDefaultFileName())
+					|| StringUtils.equalsIgnoreCase(o.getSite(), Config.processPlatform().getDocToWordDefaultSite())) {
+				continue;
+			}
 			if (o.getLength() < MAX_ATTACHMENT_BYTE_LENGTH) {
 				mapping = ThisApplication.context().storageMappings().get(Attachment.class, o.getStorage());
 				if (null != mapping) {

+ 10 - 1
o2server/x_query_service_processing/src/main/java/com/x/query/service/processing/jaxrs/neural/Generate.java

@@ -52,6 +52,7 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.entity.dataitem.DataItemConverter;
 import com.x.base.core.entity.dataitem.ItemCategory;
+import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.StorageMapping;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
 import com.x.base.core.project.gson.XGsonBuilder;
@@ -441,7 +442,15 @@ public class Generate {
 					attachments);
 		}
 		for (Attachment att : attachmentObjects) {
-			/* 文件小于10M */
+			if (Config.query().getCrawlWorkCompleted().getExcludeAttachment().contains(att.getName())
+					|| Config.query().getCrawlWorkCompleted().getExcludeSite().contains(att.getSite())
+					|| StringUtils.equalsIgnoreCase(att.getName(),
+							Config.processPlatform().getDocToWordDefaultFileName())
+					|| StringUtils.equalsIgnoreCase(att.getSite(),
+							Config.processPlatform().getDocToWordDefaultSite())) {
+				continue;
+			}
+			// 文件小于10M
 			if (att.getLength() < BaseAction.MAX_ATTACHMENT_BYTE_LENGTH) {
 				StorageMapping mapping = ThisApplication.context().storageMappings().get(Attachment.class,
 						att.getStorage());

+ 7 - 0
o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/jaxrs/neural/ActionListCalculateWithWork.java

@@ -21,6 +21,7 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.dataitem.DataItemConverter;
 import com.x.base.core.entity.dataitem.ItemCategory;
 import com.x.base.core.project.cache.ApplicationCache;
+import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.StorageMapping;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
 import com.x.base.core.project.gson.GsonPropertyObject;
@@ -121,6 +122,12 @@ class ActionListCalculateWithWork extends BaseAction {
 				Attachment.job_FIELDNAME, work.getJob());
 		StorageMapping mapping = null;
 		for (Attachment o : attachments) {
+			if (Config.query().getCrawlWorkCompleted().getExcludeAttachment().contains(o.getName())
+					|| Config.query().getCrawlWorkCompleted().getExcludeSite().contains(o.getSite())
+					|| StringUtils.equalsIgnoreCase(o.getName(), Config.processPlatform().getDocToWordDefaultFileName())
+					|| StringUtils.equalsIgnoreCase(o.getSite(), Config.processPlatform().getDocToWordDefaultSite())) {
+				continue;
+			}
 			if (o.getLength() < MAX_ATTACHMENT_BYTE_LENGTH) {
 				mapping = ThisApplication.context().storageMappings().get(Attachment.class, o.getStorage());
 				if (null != mapping) {

+ 10 - 1
o2server/x_query_service_processing/src/main/webapp/describe/sources/com/x/query/service/processing/jaxrs/neural/Generate.java

@@ -52,6 +52,7 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.entity.dataitem.DataItemConverter;
 import com.x.base.core.entity.dataitem.ItemCategory;
+import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.StorageMapping;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
 import com.x.base.core.project.gson.XGsonBuilder;
@@ -441,7 +442,15 @@ public class Generate {
 					attachments);
 		}
 		for (Attachment att : attachmentObjects) {
-			/* 文件小于10M */
+			if (Config.query().getCrawlWorkCompleted().getExcludeAttachment().contains(att.getName())
+					|| Config.query().getCrawlWorkCompleted().getExcludeSite().contains(att.getSite())
+					|| StringUtils.equalsIgnoreCase(att.getName(),
+							Config.processPlatform().getDocToWordDefaultFileName())
+					|| StringUtils.equalsIgnoreCase(att.getSite(),
+							Config.processPlatform().getDocToWordDefaultSite())) {
+				continue;
+			}
+			// 文件小于10M
 			if (att.getLength() < BaseAction.MAX_ATTACHMENT_BYTE_LENGTH) {
 				StorageMapping mapping = ThisApplication.context().storageMappings().get(Attachment.class,
 						att.getStorage());