From ab1d6e5cc7ea54fb0696e0cf285e34d935e5f64f Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 6 Apr 2017 10:04:10 +0800 Subject: [PATCH 1/6] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E8=BF=9C=E7=A8=8B=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=94=B6=E9=9B=86=E6=A8=A1=E6=9D=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/templateinfo/TemplateInfoCollector.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 3cbc557f8..f302d9f5e 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -5,6 +5,7 @@ import com.fr.base.io.IOFile; import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; +import com.fr.env.RemoteEnv; import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.GeneralUtils; @@ -78,7 +79,9 @@ public class TemplateInfoCollector implements Serializable { } private boolean shouldCollectInfo(T t) { - if (t.getTemplateID() == null || instance.removedTemplates.contains(t.getTemplateID())) { // 旧模板 + if (FRContext.getCurrentEnv() instanceof RemoteEnv // 远程设计不收集数据 + || t.getTemplateID() == null + || instance.removedTemplates.contains(t.getTemplateID())) { // 旧模板 return false; } return DesignerEnvManager.getEnvManager().isJoinProductImprove() && FRContext.isChineseEnv(); From 4cd9b17bfca1021f81e616f035daef7fc7941851 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 6 Apr 2017 10:36:56 +0800 Subject: [PATCH 2/6] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E5=A6=82=E6=9E=9C=20TemplateInfoCollecor?= =?UTF-8?q?=20=E7=B1=BB=E7=BB=93=E6=9E=84=E6=9C=89=E6=94=B9=E5=8A=A8?= =?UTF-8?q?=EF=BC=8C=E5=88=99=E6=94=BE=E5=BC=83=E4=B9=8B=E5=89=8D=E6=94=B6?= =?UTF-8?q?=E9=9B=86=E7=9A=84=E6=95=B0=E6=8D=AE=EF=BC=8C=E4=BF=9D=E8=AF=81?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E5=90=AF=E5=8A=A8=E8=AE=BE=E8=AE=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/templateinfo/TemplateInfoCollector.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index f302d9f5e..76d942e9a 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -71,7 +71,14 @@ public class TemplateInfoCollector implements Serializable { } catch (FileNotFoundException ex) { // 如果之前没有存储过,则创建新对象 instance = new TemplateInfoCollector(); - } catch (Exception ex) { + } catch (InvalidClassException ex) { + // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) + // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 + FRLogger.getLogger().error(ex.getMessage()); + FRLogger.getLogger().info("use a new instance"); + instance = new TemplateInfoCollector(); + } + catch (Exception ex) { FRLogger.getLogger().error(ex.getMessage(), ex); } } From cebfc9ef10d1c3411e4bc6a33e3b05d38b158e53 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 6 Apr 2017 12:47:09 +0800 Subject: [PATCH 3/6] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E4=BF=AE=E6=94=B9=E7=AE=97=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E5=B0=86=E4=B8=8A=E4=BC=A0=E5=90=8E=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E8=A7=86=E4=B8=BA=E6=97=A7=E6=A8=A1=E6=9D=BF=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=94=B6=E9=9B=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/JTemplate.java | 3 +++ .../templateinfo/TemplateInfoCollector.java | 16 +++++----------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 37769cdbe..7c98fecd1 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -117,6 +117,9 @@ public abstract class JTemplate> ex } } private void collectInfo() { // 执行收集操作 + if (openTime == 0) { // 旧模板,不收集数据 + return; + } long saveTime = System.currentTimeMillis(); // 保存模板的时间点 tic.collectInfo(template, this, openTime, saveTime); openTime = saveTime; // 更新 openTime,准备下一次计算 diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 76d942e9a..db1fe312a 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -26,7 +26,6 @@ public class TemplateInfoCollector implements Serializable { private static final String FILE_NAME = "tplInfo.ser"; private static TemplateInfoCollector instance; private HashMap> templateInfoList; - private Set removedTemplates; // 已经从 templateInfoList 中删除过的 id 列表,防止重复收集数据 private String designerOpenDate; //设计器最近一次打开日期 private static final int VALID_CELL_COUNT = 5; // 有效报表模板的格子数 private static final int VALID_WIDGET_COUNT = 5; // 有效报表模板的控件数 @@ -36,7 +35,6 @@ public class TemplateInfoCollector implements Serializable { @SuppressWarnings("unchecked") private TemplateInfoCollector() { templateInfoList = new HashMap<>(); - removedTemplates = new ListSet<>(); setDesignerOpenDate(); } @@ -85,17 +83,15 @@ public class TemplateInfoCollector implements Serializable { return instance; } - private boolean shouldCollectInfo(T t) { - if (FRContext.getCurrentEnv() instanceof RemoteEnv // 远程设计不收集数据 - || t.getTemplateID() == null - || instance.removedTemplates.contains(t.getTemplateID())) { // 旧模板 + private boolean shouldCollectInfo() { + if (FRContext.getCurrentEnv() instanceof RemoteEnv) { // 远程设计不收集数据 return false; } return DesignerEnvManager.getEnvManager().isJoinProductImprove() && FRContext.isChineseEnv(); } - public void appendProcess(T t, String log) { - if (!shouldCollectInfo(t)) { + public void appendProcess(String log) { + if (!shouldCollectInfo()) { return; } // 获取当前编辑的模板 @@ -161,7 +157,7 @@ public class TemplateInfoCollector implements Serializable { */ @SuppressWarnings("unchecked") public void collectInfo(T t, JTemplate jt, long openTime, long saveTime) { - if (!shouldCollectInfo(t)) { + if (!shouldCollectInfo()) { return; } @@ -304,9 +300,7 @@ public class TemplateInfoCollector implements Serializable { private void removeFromTemplateInfoList(String key) { templateInfoList.remove(key); - removedTemplates.add(key); FRLogger.getLogger().info(key + " is removed..."); - FRLogger.getLogger().info("removedTemplates: " + removedTemplates); } @SuppressWarnings("unchecked") From 88201d9d5c175775f43cb017f3d8b5159ee3bf4f Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 6 Apr 2017 14:42:21 +0800 Subject: [PATCH 4/6] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=9B=E5=8F=91=E9=80=81=E6=95=B0=E6=8D=AE=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E8=BE=93=E5=87=BA=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/mainframe/JTemplate.java | 4 ++-- .../design/mainframe/templateinfo/TemplateInfoCollector.java | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 7c98fecd1..92dd63e11 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -85,7 +85,7 @@ public abstract class JTemplate> ex public JTemplate(T t, String defaultFileName) { this(t, new MemFILE(newTemplateNameByIndex(defaultFileName)), true); - initForCollect(); + openTime = System.currentTimeMillis(); } public JTemplate(T t, FILE file) { @@ -534,7 +534,7 @@ public abstract class JTemplate> ex boolean result = this.saveFile(); if (result) { DesignerFrameFileDealerPane.getInstance().refresh(); - initForCollect(); // 如果另存为新模板,则添加 templateID + initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID collectInfo(); } //更换最近打开 diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index db1fe312a..1b57c21fa 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -242,6 +242,8 @@ public class TemplateInfoCollector implements Serializable { // 清空记录 FRLogger.getLogger().info("successfully send " + templateInfo.get("templateID")); removeFromTemplateInfoList(templateInfo.get("templateID")); + } else { + FRLogger.getLogger().info("模板数据发送服务器失败,下次启动设计器时再尝试:" + templateInfo.get("templateID")); } } saveInfo(); From 139b3b89e24e57e2bcdf663e1b1940bfbafbe6d8 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 6 Apr 2017 14:45:08 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/templateinfo/TemplateInfoCollector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 1b57c21fa..37446b3d3 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -243,7 +243,7 @@ public class TemplateInfoCollector implements Serializable { FRLogger.getLogger().info("successfully send " + templateInfo.get("templateID")); removeFromTemplateInfoList(templateInfo.get("templateID")); } else { - FRLogger.getLogger().info("模板数据发送服务器失败,下次启动设计器时再尝试:" + templateInfo.get("templateID")); + FRLogger.getLogger().info("send template info failed, will try next time, " + templateInfo.get("templateID")); } } saveInfo(); From eb465d65f5fefd70787773ced1a97eecada6476d Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 7 Apr 2017 11:43:29 +0800 Subject: [PATCH 6/6] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E7=BB=99TemplateInfoCollector=E5=8A=A0?= =?UTF-8?q?=E4=B8=8AserialVersionUID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/templateinfo/TemplateInfoCollector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 37446b3d3..b9b7aa194 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -31,6 +31,7 @@ public class TemplateInfoCollector implements Serializable { private static final int VALID_WIDGET_COUNT = 5; // 有效报表模板的控件数 private static final int COMPLETE_DAY_COUNT = 15; // 判断模板是否完成的天数 private static final int ONE_THOUSAND = 1000; + static final long serialVersionUID = 2007L; @SuppressWarnings("unchecked") private TemplateInfoCollector() { @@ -72,7 +73,7 @@ public class TemplateInfoCollector implements Serializable { } catch (InvalidClassException ex) { // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 - FRLogger.getLogger().error(ex.getMessage()); + FRLogger.getLogger().info(ex.getMessage()); FRLogger.getLogger().info("use a new instance"); instance = new TemplateInfoCollector(); }