Commit 9c9e5646 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents da784f8d 13b81aeb
...@@ -21,8 +21,10 @@ import com.mortals.xhx.base.system.user.service.UserService; ...@@ -21,8 +21,10 @@ import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.busiz.h5.rsp.ApiResp; import com.mortals.xhx.busiz.h5.rsp.ApiResp;
import com.mortals.xhx.common.code.ApiRespCodeEnum; import com.mortals.xhx.common.code.ApiRespCodeEnum;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity; import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery; import com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery;
import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService;
import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService; import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService;
import com.mortals.xhx.module.dept.model.DeptEntity; import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.dept.model.DeptQuery; import com.mortals.xhx.module.dept.model.DeptQuery;
...@@ -169,8 +171,8 @@ public class TestController { ...@@ -169,8 +171,8 @@ public class TestController {
try { try {
recordHikService.getDao().insert(attRecord); recordHikService.getDao().insert(attRecord);
}catch (Exception e){ } catch (Exception e) {
log.error("异常",e); log.error("异常", e);
} }
...@@ -441,6 +443,32 @@ public class TestController { ...@@ -441,6 +443,32 @@ public class TestController {
return Rest.ok(); return Rest.ok();
} }
@Autowired
private AttendanceLeaveRecordService attendanceLeaveRecordService;
/**
* 生成模拟数据
* mortals_xhx_perform_perpose_staff_stat
*
* @return
*/
@GetMapping("double")
@UnAuth
public Rest<Void> doubleRecords(@RequestParam(name = "processInstanceId", required = true) String processInstanceId) {
log.info("test double");
AttendanceLeaveRecordEntity leaveRecordEntity = new AttendanceLeaveRecordEntity();
leaveRecordEntity.initAttrValue();
leaveRecordEntity.setRemark(processInstanceId);
try {
attendanceLeaveRecordService.doUpdateRecord(processInstanceId, leaveRecordEntity);
} catch (Exception e) {
log.error("异常",e);
}
return Rest.ok();
}
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -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;
}
} }
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,34 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At ...@@ -33,18 +38,34 @@ 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 AttendanceLeaveRecordEntity doUpdateRecord(String processInstanceId, AttendanceLeaveRecordEntity leaveRecordEntity) throws Exception {
return dao.doUpdateRecord(processInstanceId,leaveRecordEntity); synchronized (this) {
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
...@@ -224,9 +224,10 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -224,9 +224,10 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
List<AttendanceRecordHikEntity> attendanceRecordHikEntities = dateEntry.getValue(); List<AttendanceRecordHikEntity> attendanceRecordHikEntities = dateEntry.getValue();
AttendanceRecordEntity attendanceRecordEntity = new AttendanceRecordEntity(); AttendanceRecordEntity attendanceRecordEntity = new AttendanceRecordEntity();
attendanceRecordEntity.initAttrValue(); attendanceRecordEntity.initAttrValue();
List<AttendanceRecordDetailEntity> detailEntityList = new ArrayList<>();
//分日期 遍历考勤记录 考勤记录一天只生成一条 详细多条 //分日期 遍历考勤记录 考勤记录一天只生成一条 详细多条
List<AttendanceRecordDetailEntity> detailEntityList =null;
for (AttendanceRecordHikEntity item : attendanceRecordHikEntities) { for (AttendanceRecordHikEntity item : attendanceRecordHikEntities) {
detailEntityList = new ArrayList<>();
//对主表的对象进行赋值 //对主表的对象进行赋值
attendanceRecordEntity.setStaffId(item.getStaffId()); attendanceRecordEntity.setStaffId(item.getStaffId());
attendanceRecordEntity.setStaffName(item.getStaffName()); attendanceRecordEntity.setStaffName(item.getStaffName());
...@@ -410,16 +411,41 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte ...@@ -410,16 +411,41 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
if (OffWorkResultEnum.迟到.getValue() == recordDetailEntity.getOffWorkResult()) { if (OffWorkResultEnum.迟到.getValue() == recordDetailEntity.getOffWorkResult()) {
errorEntity.setErrorStatus(ErrorStatusEnum.迟到.getValue()); errorEntity.setErrorStatus(ErrorStatusEnum.迟到.getValue());
} }
errorEntityList.add(errorEntity); errorEntityList.add(errorEntity);
} }
} }
if (!ObjectUtils.isEmpty(errorEntityList)) { if (!ObjectUtils.isEmpty(errorEntityList)) {
//添加异常记录,去掉异常列表中 重复的数据;
errorService.save(errorEntityList, context); errorService.save(errorEntityList, context);
} }
} }
private Boolean checkDouble(List<AttendanceRecordErrorEntity> errorEntityList,AttendanceRecordErrorEntity checkError){
//检测 新加 的错误 是否存在与列表中
boolean bool=true;
for (AttendanceRecordErrorEntity error : errorEntityList) {
//
//if(error.getStaffId()==checkError.getStaffId()&&error.getShiftsId()=)
}
return bool;
}
private void checkAttendGroupByOne(AttendanceRecordEntity attendanceRecordEntity, List<AttendanceRecordDetailEntity> detailEntityList, Date attendanceDate, AttendanceGroupStaffEntity attendanceGroupStaffEntity, Context context) { private void checkAttendGroupByOne(AttendanceRecordEntity attendanceRecordEntity, List<AttendanceRecordDetailEntity> detailEntityList, Date attendanceDate, AttendanceGroupStaffEntity attendanceGroupStaffEntity, Context context) {
//查询考勤组 //查询考勤组
AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntity.getGroupId(), context); AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntity.getGroupId(), context);
......
...@@ -33,8 +33,8 @@ Authorization: {{authToken}} ...@@ -33,8 +33,8 @@ Authorization: {{authToken}}
Content-Type: application/json Content-Type: application/json
{ {
"attendanceDateStart":"2023-12-01", "attendanceDateStart":"2023-12-08",
"attendanceDateEnd":"2023-12-01" "attendanceDateEnd":"2023-12-08"
} }
...@@ -48,6 +48,12 @@ GET {{baseUrl}}/test/idGens ...@@ -48,6 +48,12 @@ GET {{baseUrl}}/test/idGens
Accept: application/json Accept: application/json
###double
GET {{baseUrl}}/test/double?processInstanceId=test1
Accept: application/json
###短信设置删除 ###短信设置删除
GET {{baseUrl}}/att/set/delete?id={{SmsSet_id}} GET {{baseUrl}}/att/set/delete?id={{SmsSet_id}}
Accept: application/json Accept: application/json
......
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