public long getByUser(final TimesheetDO timesheetDo, final Integer userId) {
long sum = 0;
boolean isExist = false; //用于分别是否为新添加的还是更新
boolean flag = false;
@SuppressWarnings("unchecked")
final List<TimesheetDO> list = getHibernateTemplate().find(
"from TimesheetDO t");
//如果id已经存在,则减去原来的,加上现在的,
//如果不存在,则直接加上现在的
if (list != null && list.size() > 0) {
for (final TimesheetDO sheet: list) {
isExist = false;
sum += sheet.getDuration();
isExist = sheet.getId().equals(timesheetDo.getId());
if ( isExist == true ){
flag = true;
final long temp = sheet.getDuration();
//System.out.println("\n\n\n" + temp + "\n\n\n");
sum = sum - temp;
//System.out.println("\n\n\n" + sum + "\n\n\n");
sum += timesheetDo.getDuration();
//System.out.println("\n\n\n" + sum + "\n\n\n");
}
}
}
//如果id不存在,则最后一个需要加上去,再进行判断
if ( flag == false ){
sum += timesheetDo.getDuration();
}
//System.out.println("\n\n\n" + sum + "\n\n\n");
return sum;
}
纪念一下自己。。。。。要多多加油。。。。
继续修改,修改成功,并且感觉写的还是蛮优美的:
public long getByUser(final TimesheetDO timesheetDo, final Integer userId) {
long sum = 0;
boolean isExist = false; //用于分别是否为新添加的还是更新
boolean flag = false;
//System.out.println("\n\n\n" + timesheetDo.getStartTime().toString().substring(0, 10) + "\n\n\n");
@SuppressWarnings("unchecked")
//final List<TimesheetDO> list = getHibernateTemplate().find(
//"from TimesheetDO t");
final List<TimesheetDO> list = getHibernateTemplate().find(
"from TimesheetDO t where t.user.id= ? and substr(t.startTime, 1, 10) = ?",
new Object[]{userId, timesheetDo.getStartTime().toString().substring(0, 10)});
//如果id已经存在,则减去原来的,加上现在的,
//如果不存在,则直接加上现在的
if (list != null && list.size() > 0) {
for (final TimesheetDO sheet: list) {
isExist = false;
sum += sheet.getDuration();
isExist = sheet.getId().equals(timesheetDo.getId());
if ( isExist == true ){
flag = true;
final long temp = sheet.getDuration();
//System.out.println("\n\n\n" + temp + "\n\n\n");
sum = sum - temp;
//System.out.println("\n\n\n" + sum + "\n\n\n");
sum += timesheetDo.getDuration();
//System.out.println("\n\n\n" + sum + "\n\n\n");
}
}
}
//如果id不存在,则最后一个需要加上去,再进行判断
if ( flag == false ){
sum += timesheetDo.getDuration();
}
//System.out.println("\n\n\n" + sum + "\n\n\n");
return sum;
}
加油!!
分享到:
相关推荐
本设计利用VHDL语言,实现了包括24小时制计时、整点报时、时间设置、闹钟功能在内的多种功能,其设计精度达到了每秒一次的更新,展现了高级的数字逻辑设计技巧。 首先,该数字钟的计时功能遵循24小时制,每日自动...
在本资源中,"使用Java理解程序逻辑第一章作业答案"主要涵盖了初学者在学习Java编程时,对于程序逻辑基础的理解和应用。这部分内容是编程学习的基石,它涉及到控制流程、变量、运算符、条件语句和循环结构等基础知识...
该项目由UC Berkeley的博士生Woosuk Kwon和Zhuohan Li共同发起,并得到了包括a16z在内的多个赞助商的支持。项目的首次全体会议于2023年10月5日在a16z位于旧金山的办公室举行。 #### 二、关键技术点介绍 ##### 1. *...
13、[优化]移除后台功能开关入口,更换位左侧菜单的更多功能入口; 14、[优化]文档页的点击数标签可以在内页重复调用显示; 15、[优化]整体后台用户体验与布局; 16、[优化]附件设置新增默认浏览数与下载数的设置; ...
首先,我们来看第一个题目——"Tarpe 酋长的小钱钱"。这是一个关于计算预期总收益的问题,涉及到基础的数学运算和格式化输出。题目要求根据给定的资本`a`和回报率`c`来计算总收益`b`,公式是`b = a * (1 + c / 100)`...
例如,第一道选择题讨论的是两个命题之间的逻辑关系。如果一个数列是等差数列,这是否意味着另一个特定的关系也成立?答案是这并不构成充要条件,可能是充分非必要条件或必要非充分条件,或者是既不充分也不必要条件...
【标题】"新款趣味测试小程序源码.rar"指的是一个压缩包文件,其中包含了开发一款新型趣味测试微信小程序的所有源代码。微信小程序是一种轻量级的应用形式,用户无需下载安装即可在微信平台上使用,大大提升了用户...
8. **第三方库**:如果源码使用了第三方组件或库,这些资源也会被包含在内,帮助扩展功能或提高开发效率。 对于开发者来说,分析这个源码不仅可以学习如何制作微信小程序,还可以深入理解滚动弹幕的实现原理,提升...
在计算机网络中,IP地址是一个非常关键的概念,它是一个标识网络中唯一设备的逻辑地址。IP地址通常由32位二进制组成,分为四个八位段,每个八位段用十进制表示并以点分隔,例如192.168.0.1。非法的IP地址如259.197....
【知识点】 1. 集合的基本概念:题目中...这些知识点涵盖了中学数学的多个领域,包括集合论、复数、命题逻辑、函数性质、统计分析、不等式解法、类比推理、周期性序列、程序设计、三角函数、复数运算以及数据分析等。
本资源提供了 CSP 2020 入门组第一轮考试的相关知识点,涵盖计算机科学和编程领域的多个方面。下面是根据给定的文件信息生成的相关知识点: 计算机存储器 1. 在内存储器中,每个存储单元都被赋予一个唯一的序号,...
ZIP是一种常见的文件压缩格式,用于将多个文件或目录打包成一个单一的文件,便于传输和存储。用户可以下载这个ZIP文件,然后解压得到源码,进一步研究游戏的代码结构、逻辑和实现方式。 【标签解析】 1. **微信小...
首先,它利用uni-app的多平台编译能力,使得开发者只需要编写一次代码,就能部署到不同的操作系统和小程序平台,极大地提高了开发效率。这包括H5网页、iOS应用、安卓应用以及微信、钉钉和支付宝的小程序。 力软APP...
本次设计的任务是开发一款多功能出租车计价器,旨在提高出租车运营效率和服务水平。该计价器将集成多种先进功能,满足不同场景下的需求。 **1.2.1 设计任务** - 实现准确、快速的里程计算和计费功能。 - 支持实时...
"完整源码"表示该软件的所有编程代码都包含在内,这对于开发者来说是一个宝贵的资源,他们可以深入研究代码结构、功能实现,甚至进行二次开发以满足特定需求。"学习学习还是不错的"暗示这套系统对于初学者或者希望...
9. **版本信息**:关于软件版本的说明,如V1.0表示这是该软件的第一个正式版本。 由于没有具体的标签信息,我们无法进一步了解软件的特性或目标用户群。不过,根据名称,我们可以猜测这可能是一款面向大众的、易用...
环保工程及服务行业正经历着一次重要的转型,其投资逻辑已经升级到2.0版本,主要体现在稳增长、新工具和新领域的结合上。在这个全新的投资逻辑中,环保资产的价值得到了重新评估,行业增长模式也从单一维度转向多元...
在三段论中,中项必须在前提中至少出现一次,并且周延。如果两个前提都是否定的,则无法得出确定的结论。因此,C项是错误的。 第17题考查的是论证评估。为了削弱“黑人议员数量增加,因此黑人很快可以和白人拥有...