`

第一次写这么多逻辑在内的小功能

 
阅读更多
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 多功能数字钟

    本设计利用VHDL语言,实现了包括24小时制计时、整点报时、时间设置、闹钟功能在内的多种功能,其设计精度达到了每秒一次的更新,展现了高级的数字逻辑设计技巧。 首先,该数字钟的计时功能遵循24小时制,每日自动...

    使用Java理解程序逻辑第一章作业答案

    在本资源中,"使用Java理解程序逻辑第一章作业答案"主要涵盖了初学者在学习Java编程时,对于程序逻辑基础的理解和应用。这部分内容是编程学习的基石,它涉及到控制流程、变量、运算符、条件语句和循环结构等基础知识...

    vllm第一次全体会议PPT

    该项目由UC Berkeley的博士生Woosuk Kwon和Zhuohan Li共同发起,并得到了包括a16z在内的多个赞助商的支持。项目的首次全体会议于2023年10月5日在a16z位于旧金山的办公室举行。 #### 二、关键技术点介绍 ##### 1. *...

    THinkphp5.0开源个人博客系统+熊掌号提交功能+多语言.zip

    13、[优化]移除后台功能开关入口,更换位左侧菜单的更多功能入口; 14、[优化]文档页的点击数标签可以在内页重复调用显示; 15、[优化]整体后台用户体验与布局; 16、[优化]附件设置新增默认浏览数与下载数的设置; ...

    第一次上机解题报告1

    首先,我们来看第一个题目——"Tarpe 酋长的小钱钱"。这是一个关于计算预期总收益的问题,涉及到基础的数学运算和格式化输出。题目要求根据给定的资本`a`和回报率`c`来计算总收益`b`,公式是`b = a * (1 + c / 100)`...

    天津市各地市高考数学 最新联考试题分类汇编(2) 常用逻辑用语 试题.doc

    例如,第一道选择题讨论的是两个命题之间的逻辑关系。如果一个数列是等差数列,这是否意味着另一个特定的关系也成立?答案是这并不构成充要条件,可能是充分非必要条件或必要非充分条件,或者是既不充分也不必要条件...

    新款趣味测试小程序源码.rar

    【标题】"新款趣味测试小程序源码.rar"指的是一个压缩包文件,其中包含了开发一款新型趣味测试微信小程序的所有源代码。微信小程序是一种轻量级的应用形式,用户无需下载安装即可在微信平台上使用,大大提升了用户...

    炫酷手持滚动弹幕生成小工具微信小程序源码.rar

    8. **第三方库**:如果源码使用了第三方组件或库,这些资源也会被包含在内,帮助扩展功能或提高开发效率。 对于开发者来说,分析这个源码不仅可以学习如何制作微信小程序,还可以深入理解滚动弹幕的实现原理,提升...

    计算机基础(本)第一次作业.pdf

    在计算机网络中,IP地址是一个非常关键的概念,它是一个标识网络中唯一设备的逻辑地址。IP地址通常由32位二进制组成,分为四个八位段,每个八位段用十进制表示并以点分隔,例如192.168.0.1。非法的IP地址如259.197....

    高二数学下学期第一次(4月)月考试题 文 试题.doc

    【知识点】 1. 集合的基本概念:题目中...这些知识点涵盖了中学数学的多个领域,包括集合论、复数、命题逻辑、函数性质、统计分析、不等式解法、类比推理、周期性序列、程序设计、三角函数、复数运算以及数据分析等。

    CSP 2020 入门组第一轮.pdf

    本资源提供了 CSP 2020 入门组第一轮考试的相关知识点,涵盖计算机科学和编程领域的多个方面。下面是根据给定的文件信息生成的相关知识点: 计算机存储器 1. 在内存储器中,每个存储单元都被赋予一个唯一的序号,...

    H5微信小游戏源码-最强眼力.zip

    ZIP是一种常见的文件压缩格式,用于将多个文件或目录打包成一个单一的文件,便于传输和存储。用户可以下载这个ZIP文件,然后解压得到源码,进一步研究游戏的代码结构、逻辑和实现方式。 【标签解析】 1. **微信小...

    力软新版APP上线,采用js语言,基于Vue.js和uni-app框架.docx

    首先,它利用uni-app的多平台编译能力,使得开发者只需要编写一次代码,就能部署到不同的操作系统和小程序平台,极大地提高了开发效率。这包括H5网页、iOS应用、安卓应用以及微信、钉钉和支付宝的小程序。 力软APP...

    多功能出租车计价器设计资料

    本次设计的任务是开发一款多功能出租车计价器,旨在提高出租车运营效率和服务水平。该计价器将集成多种先进功能,满足不同场景下的需求。 **1.2.1 设计任务** - 实现准确、快速的里程计算和计费功能。 - 支持实时...

    66277奇店社群社区团购V1.2.3+小程序前端.rar

    "完整源码"表示该软件的所有编程代码都包含在内,这对于开发者来说是一个宝贵的资源,他们可以深入研究代码结构、功能实现,甚至进行二次开发以满足特定需求。"学习学习还是不错的"暗示这套系统对于初学者或者希望...

    [工具查询]小蜜蜂每日一占 V1.0_mryz.zip

    9. **版本信息**:关于软件版本的说明,如V1.0表示这是该软件的第一个正式版本。 由于没有具体的标签信息,我们无法进一步了解软件的特性或目标用户群。不过,根据名称,我们可以猜测这可能是一款面向大众的、易用...

    环保工程及服务行业:稳增长+新工具+新领域,环保资产投资逻辑2.0.pdf

    环保工程及服务行业正经历着一次重要的转型,其投资逻辑已经升级到2.0版本,主要体现在稳增长、新工具和新领域的结合上。在这个全新的投资逻辑中,环保资产的价值得到了重新评估,行业增长模式也从单一维度转向多元...

    2014年小学教师资格证考试试题《综合素质》十三.pdf

    在三段论中,中项必须在前提中至少出现一次,并且周延。如果两个前提都是否定的,则无法得出确定的结论。因此,C项是错误的。 第17题考查的是论证评估。为了削弱“黑人议员数量增加,因此黑人很快可以和白人拥有...

Global site tag (gtag.js) - Google Analytics