diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProClockingInDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProClockingInDao.java index 4870c3b2..7a31a27c 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProClockingInDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProClockingInDao.java @@ -1,5 +1,6 @@ package com.ccsens.common.persist.dao; +import com.ccsens.common.bean.po.ProClockingIn; import com.ccsens.common.bean.vo.CClockingInVo; import com.ccsens.common.persist.mapper.ProClockingInMapper; import org.apache.ibatis.annotations.Param; @@ -19,4 +20,12 @@ public interface ProClockingInDao extends ProClockingInMapper { * @return 打卡记录列表 */ List queryByMemberId(@Param("memberIdList") List memberIdList); + + /** + * 查询该成员今天是否有打卡记录 + * @param memberId 成员id + * @param currentTimeMillis 当前时间时间戳 + * @return 打卡记录 + */ + ProClockingIn queryHaveData(@Param("memberId") Long memberId,@Param("time") long currentTimeMillis); } diff --git a/common/src/main/java/com/ccsens/common/service/ClockingInService.java b/common/src/main/java/com/ccsens/common/service/ClockingInService.java index 176a0390..b9b99cd1 100644 --- a/common/src/main/java/com/ccsens/common/service/ClockingInService.java +++ b/common/src/main/java/com/ccsens/common/service/ClockingInService.java @@ -101,6 +101,7 @@ public class ClockingInService implements IClockingInService { CClockingInVo.ClockRecord filterRecord = new CClockingInVo.ClockRecord(); filterRecord.setMemberId(clockRecord.getMemberId()); filterRecord.setMemberName(clockRecord.getMemberName()); + filterRecord.setMemberUserId(clockRecord.getMemberUserId()); if (filterRecord.getMemberUserId().equals(userId)) { filterRecord.setIsMine((byte)1); } @@ -113,7 +114,7 @@ public class ClockingInService implements IClockingInService { List clockRecords = clockingInDao.queryByMemberId(memberIdList); for (CClockingInVo.ClockingInInfo clockingInInfo2 : list) { for (CClockingInVo.ClockRecord record : clockRecords) { - if (format.format(new Date(record.getMorning())).equals(clockingInInfo2.getDateTime())) { + if (format.format(new Date(record.getMorning())).equals(clockingInInfo2.getDateTime()) || format.format(new Date(record.getNight())).equals(clockingInInfo2.getDateTime())) { for (CClockingInVo.ClockRecord clockRecord : clockingInInfo2.getRecordList()) { if (clockRecord.getMemberId().equals(record.getMemberId())) { @@ -152,9 +153,10 @@ public class ClockingInService implements IClockingInService { throw new BaseException(CommonCodeError.DATE_ERROR); } //判断是否有打卡记录 - if(ObjectUtil.isNotNull(params.getId())){ + ProClockingIn proClockingIn = clockingInDao.queryHaveData(params.getMemberId(),System.currentTimeMillis()); + if(ObjectUtil.isNotNull(proClockingIn)){ //如果有记录则查找记录并修改 - ProClockingIn proClockingIn = clockingInDao.selectByPrimaryKey(params.getId()); +// ProClockingIn proClockingIn = clockingInDao.selectByPrimaryKey(params.getId()); if(params.getClockType() == 0 && proClockingIn.getMorningStatus() == 0){ proClockingIn.setMorning(System.currentTimeMillis()); proClockingIn.setMorningStatus((byte) 1); @@ -166,18 +168,18 @@ public class ClockingInService implements IClockingInService { clockingInDao.updateByPrimaryKeySelective(proClockingIn); }else { //如果没有记录,则添加一条新的记录 - ProClockingIn proClockingIn = new ProClockingIn(); - proClockingIn.setId(snowflake.nextId()); - proClockingIn.setMemberId(params.getMemberId()); - proClockingIn.setCheckerId(params.getCheckerId()); + ProClockingIn newClockingIn = new ProClockingIn(); + newClockingIn.setId(snowflake.nextId()); + newClockingIn.setMemberId(params.getMemberId()); + newClockingIn.setCheckerId(params.getCheckerId()); if(params.getClockType() == 0){ - proClockingIn.setMorning(System.currentTimeMillis()); - proClockingIn.setMorningStatus((byte) 1); + newClockingIn.setMorning(System.currentTimeMillis()); + newClockingIn.setMorningStatus((byte) 1); }else if(params.getClockType() == 1){ - proClockingIn.setNight(System.currentTimeMillis()); - proClockingIn.setNightStatus((byte) 1); + newClockingIn.setNight(System.currentTimeMillis()); + newClockingIn.setNightStatus((byte) 1); } - clockingInDao.insertSelective(proClockingIn); + clockingInDao.insertSelective(newClockingIn); } } diff --git a/common/src/main/resources/mapper_dao/ProClockingInDao.xml b/common/src/main/resources/mapper_dao/ProClockingInDao.xml index 88bcfd23..b250896f 100644 --- a/common/src/main/resources/mapper_dao/ProClockingInDao.xml +++ b/common/src/main/resources/mapper_dao/ProClockingInDao.xml @@ -25,4 +25,26 @@ + + \ No newline at end of file