最近做流程项目时候发现,流程日志显示的问题:
流程执行完最后一个任务节点就会紧接着执行结束节点,如果最后节点的执行日志和结束节点的执行日志在同一个时间点被存放到日志表中时候,通过比较两者在日志表中创建的时间先后的话,通过下面的方法就会出现,最后任务节点和结束节点顺序颠倒的问题。
仔细想想,这种情况适合所有按照时间排序的情况,以后只要根据时间排序,就应该考虑到时间相等的情况,值得记录一下。
原先的比较时间的代码:
/**
* 查询历史步骤
* @return
*/
public String queryHistoryStep(){
WorkflowDeptService workFlowDeptService=(WorkflowDeptService)getServiceBean("workflowDeptService");
WorkflowLogService workflowLogService = (WorkflowLogService)getServiceBean("workflowLogService");
TbBSenseWorkFlowLog log = new TbBSenseWorkFlowLog();
log.setSwfolWorkflowInst(pid);
List<TbBSenseWorkFlowLog> logs = workflowLogService.findWorkflowLogByExample(log);
Collections.sort(logs, new Comparator<TbBSenseWorkFlowLog>() {
public int compare(TbBSenseWorkFlowLog arg0, TbBSenseWorkFlowLog arg1) {
if(arg0.getSwfolCreateTime().after(arg1.getSwfolCreateTime()))
return 1;
else
return -1;
};
});
jsonConfig.registerJsonValueProcessor(Timestamp.class, new JsonTimestampValueProcessorImpl());
JSONArray json = JSONArray.fromObject(logs,jsonConfig);
writerText(json.toString());
return null;
}
要修改的地方是if判断语句,将时间相等的情况加上就对了,修改后的判断语句如下:
if(arg0.getSwfolCreateTime().after(arg1.getSwfolCreateTime())||arg0.getSwfolCreateTime().equals(arg1.getSwfolCreateTime()))
分享到:
相关推荐
### Java面试知识点易错难点总结 #### Java的操作原理与特性 - **操作原理**:Java程序的执行过程涉及几个关键步骤。首先,源代码(`.java`文件)通过`javac`编译器被编译成字节码(`.class`文件)。接着,这些...
在Java编程语言中,了解和掌握一些常见的易错知识点至关重要,因为这些知识点往往会在实际编程中造成困扰。以下是一些关键点的详细解释: 1. **访问修饰符的区别**: - `public`:所有地方都可以访问。 - `...
以下是对标题"java易错考点"和描述中提到的Java考试重点的详细解析: 1. **编译与运行过程**:Java的编译过程是由`javac`编译器将源代码转换成字节码,然后由Java虚拟机(JVM)解释执行这些字节码。理解这一过程...
在准备软件设计师软考的过程中,理解...通过深入学习这些章节的易错题目,并参考提供的答案和解析,考生可以更好地理解和巩固知识点,提高解题技巧,从而在考试中更加自信,更有可能顺利通过软件设计师的中级认证考试。
### Java笔试题第二版知识点详解 #### 1. 作用域关键字:`public`, `private`, `protected`, 以及默认修饰符的区别 - **public**:具有最高的可见性级别,可以被任何类所访问。 - **protected**:只能被同一包内的...
《深入剖析Java》一书旨在帮助Java开发者解决在编程过程中遇到的困惑,通过一系列精心设计的谜题,深入探讨Java语言的核心概念、语法特性和易错点。以下是对部分谜题的详细解析,以加深对Java的理解。 谜题1:奇数...
西安交通大学的软件工程专硕915考试是一个严谨且具有挑战性的评估,旨在测试考生对软件工程领域的深入...考生在复习时,应充分利用这些资源,结合实际案例深入理解并掌握这些易错点,以便在考试中避免陷阱,提高得分。
Lambda表达式的引入推动了函数式编程在Java中的应用,而新的日期时间API则提供了更好的日期处理体验。默认接口方法和方法引用则是Java 8对面向对象设计模式的扩展和补充,让代码更加灵活和富有表现力。通过掌握这些...
4. **程序设计与算法**:可能涉及至少一种编程语言的基础语法,如C++或Java,以及基础的数据结构(如数组、链表、树、图)和常见算法(如排序、搜索)。 5. **PC技术应用**:这部分可能会有实际问题的解决,比如...
这份"java-foundation.rar_foundation"文件显然是针对Java面试中常见的基础知识和易错点进行总结的文档,旨在帮助求职者加强基础,避免在面试中犯错。下面,我们将详细探讨Java基础中的关键知识点。 1. **Java语法...
5. **Date和Time API的增强**:Java 8更新了日期和时间API,引入了`java.time`包,提供了更加灵活和强大的日期、时间、时区处理功能。新的API更加符合实际需求,易于使用,避免了旧版API中的易错之处。 6. ** ...
数据结构是计算机科学与技术专业研究生入学考试中的核心科目之一,它主要研究如何在计算机中组织和管理数据,以便高效地进行存储、检索和处理。...同时,解题过程中遇到的难点和易错点也是提升个人技能的重要途径。
这些新API提供了更直观、更强大的日期和时间处理功能,避免了旧API中的复杂性和易错性。 5. **并发性能提升**:JDK1.8对并发库进行了优化,例如`Fork/Join`框架的改进,使得多线程处理更加高效。此外,`...
个人对比真题总结的知识点部分,可能是作者根据自己的学习和解题经验,提炼出的一些高频考点、难点和易错点。这部分内容对于考生来说尤其宝贵,它可以帮助我们了解哪些知识点是考试的重灾区,从而有针对性地进行复习...
4. **陷阱提示**:指出题目中的易错点和陷阱,提醒考生注意避免。 **编程实现** 在CCF CSP的真题中,编程实现部分是考核的核心。考生需要根据题目要求编写程序,解决实际问题。这部分可能涉及到以下知识点: 1. *...
知识点:二分查找,查找给定target在排序数组中出现的左右边界 990. 等式方程的可满足性 知识点:并查集、包含小写字母的字符串的处理 Day32 面试题46. 把数字翻译成字符串 知识点:动态规划,一维动态规划,dp[i]...
此外,集训还可能包含历年真题解析、模拟试题、易错点总结等,帮助考生熟悉考试题型,提高应试能力。 在复习过程中,考生应注重理论与实践的结合,通过编写代码来巩固所学知识,同时不断练习解题速度和准确度。此外...
5. **易错点提示**:指出可能的陷阱和常见错误,帮助避免在实际比赛中犯同样的错误。 6. **扩展讨论**:可能包含对问题的深入探讨,如优化方案、更通用的解题方法等。 通过系统学习这些辅导材料和题解,参赛者可以...
- **注意点与常见错误**:指出易错点,帮助考生避免常见陷阱。 通过学习和分析这些题目与解答,不仅可以提高编程技能,还能了解当前算法竞赛的趋势,为今后的编程竞赛或者实际工作中的问题解决打下坚实基础。同时,...
6. 提示与陷阱:可能包含一些易错点或者需要特别注意的地方,有助于避免在实现过程中出错。 《第九届图灵杯标程.txt》则可能包含了官方或参赛者提交的正确解题代码,这些代码通常是用C++、Java、Python等常见编程...