刚遇到一个问题:公司的考勤是通过把卡机上的数据导出成Excel表,在上传的内部的Mis系统中,在上传Excel表时,可能由于种种原因而不能完整上传,那就需要重新上传,这时会出现与上次上传成功的部分数据重复。于是就需要保存到数据库时进行去重。
Excel表数据格式:
思路:先根据时间去数据库查出同一天有进入和出去时间的员工号放入list1中,将从Excel表中读到的工号放入list2中,然后通过集合
可以去除数据库中已经存在完整考勤信息的的人。然后将剩下的员工考勤信息插入即可。
大致思路是这样,接下来就需要从数据库中查询既有进入记录又有出去记录的人。
数据库表结构如下:
经过请教Oracle大神——宝宝,写出了如下的SQL语句
成功的找到了有完整进出记录的员工工号,满怀欢喜的去转换Hibernate的HQL语句,执行后悲催了。才知道Hibernate是不支持from后面写子句的……
通过百度,知道了subselect的存在,原理就是先把from中的子查询建立成一个视图,然后在基于此视图查询,但是,没找到能够动态传入查询条件的写法,也就是这个视图是固定的,所以,此路也不通了。
那就只好重新回到service层处理了。
排版丑、技术渣......感谢浏览
领取专属 10元无门槛券
私享最新 技术干货