Commit 9f7cb378 authored by 赵啸非's avatar 赵啸非

整理代码

parent bb22c6c4
......@@ -68,9 +68,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
private AttendanceClassService attendanceClassService;
@Autowired
private AttendanceGroupFixedworkSpecialService specialService;
@Autowired
private AttendanceLeaveRecordService attendanceLeaveRecordService;
@Override
public void addAttendanceRecord(AttendanceRecordHikEntity hikEntity, Context context) throws Exception {
......@@ -102,38 +99,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
addAttendanceOtherRecordList(hikEntityList, attendanceRecordHikQuery, context);
}
private Boolean checkWorkByHoliday(String dateStr) {
Boolean bool = false;
HolidayQuery holidayQuery = new HolidayQuery();
holidayQuery.setStartTimeStart(dateStr);
holidayQuery.setStartTimeEnd(dateStr);
HolidayEntity holidayEntity = holidayService.selectOne(holidayQuery);
if (!ObjectUtils.isEmpty(holidayEntity)) {
Integer workorholiday = holidayEntity.getWorkorholiday();
if (workorholiday == YesNoEnum.YES.getValue()) {
bool = true;
}
}
return bool;
}
private Boolean checkHolidayByWorkDay(String dateStr) {
Boolean bool = false;
HolidayQuery holidayQuery = new HolidayQuery();
holidayQuery.setStartTimeStart(dateStr);
holidayQuery.setStartTimeEnd(dateStr);
HolidayEntity holidayEntity = holidayService.selectOne(holidayQuery);
if (!ObjectUtils.isEmpty(holidayEntity)) {
Integer workorholiday = holidayEntity.getWorkorholiday();
if (workorholiday == YesNoEnum.NO.getValue()) {
bool = true;
}
}
return bool;
}
public void addAttendanceOtherRecordList(List<AttendanceRecordHikEntity> hikEntityList, AttendanceRecordHikEntity attendanceRecordHikQuery, Context context) throws Exception {
List<AttendanceRecordHikEntity> collect = hikEntityList.stream().sorted(Comparator.comparing(AttendanceRecordHikEntity::getAttendanceDate)).collect(Collectors.toList());
......@@ -151,20 +116,9 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
query.setAttendanceDateStart(attendanceDateStart);
query.setAttendanceDateEnd(attendanceDateEnd);
Map<Long, AttendanceRecordEntity> staffRecordMap = attendanceRecordService.find(query).parallelStream().collect(Collectors.toMap(x -> x.getStaffId(), y -> y, (o, n) -> n));
/* AttendanceRecordErrorQuery attendanceRecordErrorQuery = new AttendanceRecordErrorQuery();
attendanceRecordErrorQuery.setProcessStatus(ProcessStatusEnum.已处理.getValue());
AttendanceLeaveRecordQuery leaveRecordQuery = new AttendanceLeaveRecordQuery();
leaveRecordQuery.setAuditResultList(Arrays.asList(1, 4));
Map<Long, List<AttendanceLeaveRecordEntity>> leaveRecordGroupMap = attendanceLeaveRecordService.find(leaveRecordQuery).parallelStream().collect(Collectors.groupingBy(x -> x.getLeavePersonId()));
*/
//获取日期
List<AttendanceRecordEntity> saveList = new ArrayList<>();
List<AttendanceRecordEntity> updateList = new ArrayList<>();
listMap.entrySet().stream().forEach(itemEntry -> {
// });
// for (Map.Entry<Long, List<AttendanceRecordHikEntity>> itemEntry : listMap.entrySet()) {
......@@ -201,17 +155,13 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity.setSalaId(staffEntity.getSalaId());
attendanceRecordEntity.setSalaName(staffEntity.getSalaName());
//通过员工id查询考勤组人员信息
// List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staffId));
List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = groupStaffMap.getOrDefault(staffId, new ArrayList<>(0));
//过滤重复考勤组与人员
attendanceGroupStaffEntities = attendanceGroupStaffEntities.stream().collect(Collectors.toMap(x -> x.getGroupId() + "#" + x.getStaffId(), y -> y, (o, n) -> n)).values().stream().collect(Collectors.toList());
List<AttendanceRecordDetailEntity> detailEntityList = new ArrayList<>();
if (!ObjectUtils.isEmpty(attendanceGroupStaffEntities) && attendanceGroupStaffEntities.size() == 1) {
//查询考勤组
//AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntities.get(0).getGroupId(), context);
AttendanceGroupEntity attendanceGroupEntity = groupMap.get(attendanceGroupStaffEntities.get(0).getGroupId());
attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity == null ? 0L : attendanceGroupEntity.getId());
attendanceRecordEntity.setAttendanceGroupName(attendanceGroupEntity == null ? "" : attendanceGroupEntity.getGroupName());
......@@ -229,20 +179,15 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setRecordHikEntities(recordHikEntities);
commonData.setFixedSpecialGroupMap(fixedSpecialGroupMap);
commonData.setClassDetailEntityMap(classDetailEntityMap);
// commonData.setLeaveRecordGroupMap(leaveRecordGroupMap);
workAbstract.doHandleWork(commonData);
}
//如果考勤人员信息list长度大于1 则该考勤人员有多个考勤组.
if (StringUtils.isNotNull(attendanceGroupStaffEntities) && attendanceGroupStaffEntities.size() > 1) {
for (AttendanceGroupStaffEntity groupStaffEntity : attendanceGroupStaffEntities) {
detailEntityList = new ArrayList<>();
//多考勤组 todo 暂时和单一覆盖
//checkAttendGroupByOne(attendanceRecordEntity, detailEntityList, attendanceDate, groupStaffEntity, context);
//查询考勤组
// AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(groupStaffEntity.getGroupId(), context);
AttendanceGroupEntity attendanceGroupEntity = groupMap.get(groupStaffEntity.getGroupId());
attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity == null ? 0L : attendanceGroupEntity.getId());
attendanceRecordEntity.setAttendanceGroupName(attendanceGroupEntity == null ? "" : attendanceGroupEntity.getGroupName());
//查询考勤组详细信息获取班次 todo 默认固定班次 还有自由 与排班制
......@@ -259,7 +204,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
commonData.setRecordHikEntities(recordHikEntities);
commonData.setFixedSpecialGroupMap(fixedSpecialGroupMap);
commonData.setClassDetailEntityMap(classDetailEntityMap);
// commonData.setLeaveRecordGroupMap(leaveRecordGroupMap);
workAbstract.doHandleWork(commonData);
}
}
......@@ -290,12 +234,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
attendanceRecordEntity.setAttendType("现场打卡");
//判断是否存在记录 如果存在 则更新 维度 staffId attendanceDate shiftsId attendanceGroupId
/* AttendanceRecordQuery query = new AttendanceRecordQuery();
query.setStaffId(attendanceRecordEntity.getStaffId());
query.setAttendanceDateStart(dateStr);
query.setAttendanceDateEnd(dateStr);
AttendanceRecordEntity recordEntity = attendanceRecordService.selectOne(query);*/
AttendanceRecordEntity recordEntity = staffRecordMap.get(attendanceRecordEntity.getStaffId());
if (!ObjectUtils.isEmpty(recordEntity)) {
attendanceRecordEntity.setId(recordEntity.getId());
......@@ -312,22 +250,14 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
if (!ObjectUtils.isEmpty(saveList)) {
log.info("新增考勤记录数:" + saveList.size());
attendanceRecordService.save(saveList);
/* for (AttendanceRecordEntity attendanceRecordEntity : saveList) {
attendanceRecordService.save(attendanceRecordEntity, context);
}*/
}
if (!ObjectUtils.isEmpty(updateList)) {
log.info("更新考勤记录数:" + updateList.size());
attendanceRecordService.update(updateList);
/* for (AttendanceRecordEntity attendanceRecordEntity : updateList) {
attendanceRecordService.update(attendanceRecordEntity, context);
}*/
}
}
public void addAttendanceRecordList(List<AttendanceRecordHikEntity> hikEntityList, Context context) throws Exception {
//对考勤数据根据考勤时间进行排序
List<AttendanceRecordHikEntity> collect = hikEntityList.stream().sorted(Comparator.comparing(AttendanceRecordHikEntity::getAttendanceDate)).collect(Collectors.toList());
......@@ -373,7 +303,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
List<AttendanceGroupStaffEntity> attendanceGroupStaffEntities = attendanceGroupStaffService.find(new AttendanceGroupStaffQuery().staffId(staffEntity.getId()));
//查询该考勤人员,如果查出来的考勤人员信息list长度为1 则该考勤人员只有一个考勤组
if (!ObjectUtils.isEmpty(attendanceGroupStaffEntities) && attendanceGroupStaffEntities.size() == 1) {
//checkAttendGroupByOne(attendanceRecordEntity, detailEntityList, attendanceDate, attendanceGroupStaffEntities.get(0), context);
//查询考勤组
AttendanceGroupEntity attendanceGroupEntity = attendanceGroupService.get(attendanceGroupStaffEntities.get(0).getGroupId(), context);
attendanceRecordEntity.setAttendanceGroupId(attendanceGroupEntity == null ? 0L : attendanceGroupEntity.getId());
......@@ -434,19 +363,6 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
break;
}
}
/* for (AttendanceRecordDetailEntity detailEntity : detailEntityList) {
if (OffWorkResultEnum.缺卡.getValue() == detailEntity.getOffWorkResult()) {
attendanceRecordEntity.setPunchResult(YesNoEnum.NO.getValue());
break;
}
if (OffWorkResultEnum.缺卡.getValue() == detailEntity.getOffWorkResult()) {
attendanceRecordEntity.setPunchResult(YesNoEnum.NO.getValue());
break;
}
}*/
if (YesNoEnum.YES.getValue() == attendanceRecordEntity.getSignInResult() && YesNoEnum.YES.getValue() == attendanceRecordEntity.getSignOutResult()) {
attendanceRecordEntity.setPunchResult(YesNoEnum.YES.getValue());
} else {
......@@ -537,9 +453,7 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
}
errorEntityList.add(errorEntity);
}
}
if (!ObjectUtils.isEmpty(errorEntityList)) {
errorService.save(errorEntityList, context);
}
......@@ -869,4 +783,36 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
log.info("saveRecordList size:{}", saveRecordList.size());
}
private Boolean checkWorkByHoliday(String dateStr) {
Boolean bool = false;
HolidayQuery holidayQuery = new HolidayQuery();
holidayQuery.setStartTimeStart(dateStr);
holidayQuery.setStartTimeEnd(dateStr);
HolidayEntity holidayEntity = holidayService.selectOne(holidayQuery);
if (!ObjectUtils.isEmpty(holidayEntity)) {
Integer workorholiday = holidayEntity.getWorkorholiday();
if (workorholiday == YesNoEnum.YES.getValue()) {
bool = true;
}
}
return bool;
}
private Boolean checkHolidayByWorkDay(String dateStr) {
Boolean bool = false;
HolidayQuery holidayQuery = new HolidayQuery();
holidayQuery.setStartTimeStart(dateStr);
holidayQuery.setStartTimeEnd(dateStr);
HolidayEntity holidayEntity = holidayService.selectOne(holidayQuery);
if (!ObjectUtils.isEmpty(holidayEntity)) {
Integer workorholiday = holidayEntity.getWorkorholiday();
if (workorholiday == YesNoEnum.NO.getValue()) {
bool = true;
}
}
return bool;
}
}
......@@ -186,7 +186,6 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
}
//获取班次信息
// AttendanceClassEntity attendanceClassEntity = attendanceClassService.get(weekClassId);
AttendanceClassEntity attendanceClassEntity = classEntityMap.get(weekClassId);
if (ObjectUtils.isEmpty(attendanceClassEntity)) {
log.info("attendanceClassEntity is null ,weekClassId:{}", weekClassId);
......@@ -201,7 +200,6 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
AttendanceRecordDetailEntity recordDetailEntity = new AttendanceRecordDetailEntity();
recordDetailEntity.setShiftsId(classDetailEntity.getId());
recordDetailEntity.setShiftsName(classDetailEntity.getClassName());
recordDetailEntity.setGoWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOffWorkResult(GoWorkResultEnum.缺卡.getValue());
recordDetailEntity.setOrderNum(orderNum);
......@@ -287,12 +285,10 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
if (next.getOffWorkResult() == OffWorkResultEnum.缺卡.getValue()) {
if (DateUtil.compare(new Date(), next.getOffWorkDate()) < 0) {
next.setOffWorkDate(null);
// next.setOffWorkResult(OffWorkResultEnum.正常.getValue());
next.setOffWorkResult(null);
}
}
}
AttendanceClassDetailEntity attendanceClassDetailEntity = classDetailEntityMap.get(commonData.getDetailEntityList().get(0).getShiftsId());
commonData.getAttendanceRecordEntity().setClassId(attendanceClassDetailEntity == null ? 0L : attendanceClassDetailEntity.getClassId());
commonData.getAttendanceRecordEntity().setClassName(attendanceClassDetailEntity == null ? "" : attendanceClassDetailEntity.getClassName());
......@@ -519,7 +515,6 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
bool = true;
}
}
return bool;
}
......@@ -541,7 +536,6 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
public static void main(String[] args) {
/* String date = "2021-05-01 09:00:00";
String endDate = "2021-05-02 18:00:00";
......@@ -554,10 +548,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
DateTime end = DateUtil.parseDate("2024-01-05 08:45:15");
boolean in = DateUtil.isIn(dateTime, start, end);
System.out.println(in);*/
System.out.println(GoWorkResultEnum.getEnumMap().keySet());
......
......@@ -68,13 +68,10 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
@Autowired
private UploadService uploadService;
@Autowired
private AttendanceGroupService attendanceGroupService;
@Autowired
private DeptService deptService;
@Autowired
private AttendanceClassService attendanceClassService;
@Autowired
......@@ -85,7 +82,6 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
private AttendanceClassService classService;
@Autowired
private AttendanceClassDetailService classDetailService;
@Autowired
private ICacheService cacheService;
......@@ -132,20 +128,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
query.getOrderColList().add(new OrderCol("attendanceDate", OrderCol.DESCENDING));
// query.getOrderColList().add(new OrderCol("staffName", OrderCol.DESCENDING));
}
if (!ObjectUtils.isEmpty(query.getProperties())) {
/* //通过属性转换为注解
List<Field> tempFields = new ArrayList<>();
tempFields.addAll(Arrays.asList(ReflectUtil.getFields(AttendanceRecordEntity.class)));
for (Field field : tempFields) {
if (field.isAnnotationPresent(Excel.class)) {
Excel column = field.getAnnotation(Excel.class);
if (column != null && query.getProperties().contains(field.getName())) {
properties.add(column.name());
}
}
}*/
properties.addAll(query.getProperties());
}
String bool = cacheService.get(RedisCacheKeys.getRecordExportLockKey());
......@@ -157,30 +140,6 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
@Override
public void doExportAfter(Context context, List<AttendanceRecordEntity> list) throws AppException {
/* ArrayList<AttendanceRecordEntity> attendanceRecordEntities = new ArrayList<>();
for (AttendanceRecordEntity recordEntity : list) {
List<AttendanceRecordDetailEntity> attendanceRecordDetailList = recordEntity.getAttendanceRecordDetailList();
if (!ObjectUtils.isEmpty(attendanceRecordDetailList)) {
for (AttendanceRecordDetailEntity detailEntity : attendanceRecordDetailList) {
AttendanceRecordEntity attendanceRecord = new AttendanceRecordEntity();
attendanceRecord.initAttrValue();
BeanUtils.copyProperties(recordEntity, attendanceRecord);
attendanceRecord.setAttendanceRecordDetailEntity(detailEntity);
attendanceRecordEntities.add(attendanceRecord);
}
} else {
AttendanceRecordEntity attendanceRecord = new AttendanceRecordEntity();
attendanceRecord.initAttrValue();
BeanUtils.copyProperties(recordEntity, attendanceRecord);
attendanceRecordEntities.add(attendanceRecord);
}
}
if (!ObjectUtils.isEmpty(attendanceRecordEntities)) {
list.clear();
list.addAll(attendanceRecordEntities);
}*/
}
@Override
......@@ -319,9 +278,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
attendanceExportRecordEntity.setType(2);
attendanceExportRecordEntity.setExportOrImport(1);
attendanceExportRecordService.save(attendanceExportRecordEntity);
cacheService.del(RedisCacheKeys.getRecordExportLockKey());
}
......@@ -343,16 +300,13 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
query.setOrderColList(Arrays.asList(new OrderCol("attendanceDate", OrderCol.DESCENDING), new OrderCol("staffName", OrderCol.DESCENDING)));
} else {
query.getOrderColList().add(new OrderCol("attendanceDate", OrderCol.DESCENDING));
// query.getOrderColList().add(new OrderCol("staffName", OrderCol.DESCENDING));
}
super.doListBefore(query, model, context);
}
static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
//putIfAbsent方法添加键值对,如果map集合中没有该key对应的值,则直接添加,并返回null,如果已经存在对应的值,则依旧为原来的值。
//如果返回null表示添加数据成功(不重复),不重复(null==null :TRUE)
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
......@@ -433,12 +387,6 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
JSONObject jsonObject = new JSONObject();
String busiDesc = this.getModuleDesc() + "统计";
try {
// Rest<AttendStatInfo> rest = this.service.statByDay(getContext());
// if (rest.getCode() == YesNoEnum.NO.getValue()) {
// throw new AppException("统计异常!");
// } else {
// jsonObject.put(KEY_RESULT_DATA, rest.getData());
// }
recordSysLog(request, busiDesc + " 【成功】");
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
......
......@@ -98,16 +98,13 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
super.init(model, context);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void doImportDataBefore(List<AttendanceRecordHikEntity> list, boolean updateSupport, Context context) throws AppException {
list.forEach(item -> {
String orgName = item.getOrgName();
//todo split orgName to deptId and deptName
String[] split = orgName.split("/");
String deptName = split[split.length - 1];
DeptQuery deptQuery = new DeptQuery();
deptQuery.setDeptName(deptName);
......@@ -119,10 +116,8 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
deptId = deptEntities.get(0).getId();
} else {
String parentDeptName = split[split.length - 2];
deptQuery.setDeptName(parentDeptName);
DeptEntity deptEntity = deptService.selectOne(deptQuery);
deptQuery.setDeptName(deptName);
deptQuery.setParentId(deptEntity.getParentId());
DeptEntity dept = deptService.selectOne(deptQuery);
......@@ -164,13 +159,6 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
}
AddAttendThread addAttendThread = new AddAttendThread(hikService, hikEntity, getContext());
ThreadPool.getInstance().execute(addAttendThread);
/* String expire = cacheService.get(KEY_ATTENDANCE_STAT_LOCK_CACHE);
if(ObjectUtils.isEmpty(expire)){
cacheService.set(KEY_ATTENDANCE_STAT_LOCK_CACHE, "1", 60 * 60);
}else{
throw new AppException("有统计任务在运行,请稍后再试");
}*/
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception e) {
......@@ -223,7 +211,6 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
ret.setCode(code);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
......@@ -287,13 +274,11 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
String staffName = "%" + query.getStaffName() + "%";
query.setStaffName(staffName);
}
if (ObjectUtils.isEmpty(query.getOrderColList())) {
query.setOrderColList(Arrays.asList(new OrderCol("attendanceDate", OrderCol.DESCENDING)));
} else {
query.getOrderColList().add(new OrderCol("attendanceDate", OrderCol.DESCENDING));
}
super.doListBefore(query, model, context);
}
......@@ -310,14 +295,11 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
} else {
query.getOrderColList().add(new OrderCol("attendanceDate", OrderCol.DESCENDING));
}
String bool = cacheService.get(RedisCacheKeys.getHikExportLockKey());
if(!ObjectUtils.isEmpty(bool)){
throw new AppException("考勤数据正在导出中,请稍后再试!");
}
cacheService.set(RedisCacheKeys.getHikExportLockKey(), "111", 120L);
}
@Override
......@@ -357,7 +339,6 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro
attendanceExportRecordEntity.setType(1);
attendanceExportRecordEntity.setExportOrImport(1);
attendanceExportRecordService.save(attendanceExportRecordEntity);
cacheService.del(RedisCacheKeys.getHikExportLockKey());
}
......
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