Commit 91b441ba authored by 赵啸非's avatar 赵啸非

修改假期重复提交的问题

parent afa3dcc4
...@@ -5,14 +5,14 @@ import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity; ...@@ -5,14 +5,14 @@ import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordQuery; import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordQuery;
import java.util.List; import java.util.List;
/** /**
* 请假记录信息Dao * 请假记录信息Dao
* 请假记录信息 DAO接口 * 请假记录信息 DAO接口
* *
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-07
*/ */
public interface AttendanceLeaveRecordDao extends ICRUDDao<AttendanceLeaveRecordEntity,Long>{ public interface AttendanceLeaveRecordDao extends ICRUDDao<AttendanceLeaveRecordEntity, Long> {
AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId,AttendanceLeaveRecordEntity leaveRecordEntity);
} }
...@@ -8,36 +8,19 @@ import org.apache.commons.lang3.ObjectUtils; ...@@ -8,36 +8,19 @@ import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.attendance.dao.AttendanceLeaveRecordDao; import com.mortals.xhx.module.attendance.dao.AttendanceLeaveRecordDao;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity; import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
import java.util.Date; import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis; import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List; import java.util.List;
/** /**
* 请假记录信息DaoImpl DAO接口 * 请假记录信息DaoImpl DAO接口
* *
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-07
*/ */
@Repository("attendanceLeaveRecordDao") @Repository("attendanceLeaveRecordDao")
public class AttendanceLeaveRecordDaoImpl extends BaseCRUDDaoMybatis<AttendanceLeaveRecordEntity,Long> implements AttendanceLeaveRecordDao { public class AttendanceLeaveRecordDaoImpl extends BaseCRUDDaoMybatis<AttendanceLeaveRecordEntity, Long> implements AttendanceLeaveRecordDao {
AttendanceLeaveRecordService attendanceLeaveRecordService;
@Override
public AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId,AttendanceLeaveRecordEntity leaveRecordEntity) {
AttendanceLeaveRecordEntity recordEntity = attendanceLeaveRecordService.selectOne(new AttendanceLeaveRecordQuery().remark(processInstanceId));
if(ObjectUtils.isEmpty(recordEntity)){
leaveRecordEntity.setCreateTime(new Date());
leaveRecordEntity.setCreateUserId(1L);
attendanceLeaveRecordService.save(leaveRecordEntity);
}else{
leaveRecordEntity.setId(recordEntity.getId());
leaveRecordEntity.setUpdateUserId(1L);
leaveRecordEntity.setUpdateTime(new Date());
attendanceLeaveRecordService.update(leaveRecordEntity);
}
return leaveRecordEntity;
}
} }
...@@ -14,5 +14,5 @@ import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordQuery; ...@@ -14,5 +14,5 @@ import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordQuery;
public interface AttendanceLeaveRecordService extends ICRUDService<AttendanceLeaveRecordEntity,Long>{ public interface AttendanceLeaveRecordService extends ICRUDService<AttendanceLeaveRecordEntity,Long>{
//根据remark(钉钉返回的id)查询对象 //根据remark(钉钉返回的id)查询对象
AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId,AttendanceLeaveRecordEntity leaveRecordEntity) throws Exception; AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId,AttendanceLeaveRecordEntity leaveRecordEntity) throws Exception;
} }
\ No newline at end of file
package com.mortals.xhx.module.attendance.service.impl; package com.mortals.xhx.module.attendance.service.impl;
import com.mortals.framework.service.ICacheService; import com.mortals.framework.service.ICacheService;
import com.mortals.framework.util.DateUtils; import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.ThreadPool; import com.mortals.framework.util.ThreadPool;
import com.mortals.xhx.common.utils.AttendSummaryThread; import com.mortals.xhx.common.utils.AttendSummaryThread;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordQuery;
import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery; import com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery;
import com.mortals.xhx.module.attendance.service.AttendanceStatService; import com.mortals.xhx.module.attendance.service.AttendanceStatService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
...@@ -14,15 +17,17 @@ import com.mortals.xhx.module.attendance.dao.AttendanceLeaveRecordDao; ...@@ -14,15 +17,17 @@ import com.mortals.xhx.module.attendance.dao.AttendanceLeaveRecordDao;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity; import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService; import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService;
import java.util.Date;
import static com.mortals.xhx.common.key.RedisKey.KEY_ATTENDANCE_STAT_CACHE; import static com.mortals.xhx.common.key.RedisKey.KEY_ATTENDANCE_STAT_CACHE;
/** /**
* AttendanceLeaveRecordService * AttendanceLeaveRecordService
* 请假记录信息 service实现 * 请假记录信息 service实现
* *
* @author zxfei * @author zxfei
* @date 2023-04-07 * @date 2023-04-07
*/ */
@Service("attendanceLeaveRecordService") @Service("attendanceLeaveRecordService")
public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceLeaveRecordDao, AttendanceLeaveRecordEntity, Long> implements AttendanceLeaveRecordService { public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<AttendanceLeaveRecordDao, AttendanceLeaveRecordEntity, Long> implements AttendanceLeaveRecordService {
...@@ -33,18 +38,31 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -33,18 +38,31 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At
@Override @Override
protected void updateAfter(AttendanceLeaveRecordEntity entity, Context context) throws AppException { protected void updateAfter(AttendanceLeaveRecordEntity entity, Context context) throws AppException {
super.updateAfter(entity,context); super.updateAfter(entity, context);
if(entity.getAuditResult()==1){ if (entity.getAuditResult() == 1) {
AttendanceSummaryQuery query = new AttendanceSummaryQuery(); AttendanceSummaryQuery query = new AttendanceSummaryQuery();
query.setStaffId(entity.getLeavePersonId()); query.setStaffId(entity.getLeavePersonId());
query.setSummaryTimeStart(DateUtils.getStrDate(entity.getStartTime())); query.setSummaryTimeStart(DateUtils.getStrDate(entity.getStartTime()));
query.setSummaryTimeEnd(DateUtils.getStrDate(entity.getEndTime())); query.setSummaryTimeEnd(DateUtils.getStrDate(entity.getEndTime()));
cacheService.lpush(KEY_ATTENDANCE_STAT_CACHE,query); cacheService.lpush(KEY_ATTENDANCE_STAT_CACHE, query);
} }
} }
@Override @Override
public AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId, AttendanceLeaveRecordEntity leaveRecordEntity) throws Exception { public synchronized AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId, AttendanceLeaveRecordEntity leaveRecordEntity) throws Exception {
return dao.doUpdateRecord(processInstanceId,leaveRecordEntity); AttendanceLeaveRecordEntity recordEntity = this.selectOne(new AttendanceLeaveRecordQuery().remark(processInstanceId));
if (ObjectUtils.isEmpty(recordEntity)) {
leaveRecordEntity.setCreateTime(new Date());
leaveRecordEntity.setCreateUserId(1L);
this.save(leaveRecordEntity);
} else {
leaveRecordEntity.setId(recordEntity.getId());
leaveRecordEntity.setUpdateUserId(1L);
leaveRecordEntity.setUpdateTime(new Date());
this.update(leaveRecordEntity);
}
return leaveRecordEntity;
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment