| @@ -1,7 +1,7 @@ | |||
| package com.xueyi.system.common.domain.dto; | |||
| package com.xueyi.system.api.holiday.domain.dto; | |||
| import com.xueyi.system.common.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| @@ -1,4 +1,4 @@ | |||
| package com.xueyi.system.common.domain.po; | |||
| package com.xueyi.system.api.holiday.domain.po; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.xueyi.common.core.annotation.Excel; | |||
| @@ -9,7 +9,10 @@ import lombok.EqualsAndHashCode; | |||
| import java.io.Serial; | |||
| import java.time.LocalDate; | |||
| import static com.xueyi.common.core.constant.basic.EntityConstants.*; | |||
| import static com.xueyi.common.core.constant.basic.EntityConstants.DEL_FLAG; | |||
| import static com.xueyi.common.core.constant.basic.EntityConstants.REMARK; | |||
| import static com.xueyi.common.core.constant.basic.EntityConstants.SORT; | |||
| import static com.xueyi.common.core.constant.basic.EntityConstants.STATUS; | |||
| @Data | |||
| @EqualsAndHashCode(callSuper = true) | |||
| @@ -0,0 +1,23 @@ | |||
| package com.xueyi.system.api.holiday.feign; | |||
| import com.xueyi.common.core.constant.basic.SecurityConstants; | |||
| import com.xueyi.common.core.constant.basic.ServiceConstants; | |||
| import com.xueyi.common.core.web.result.AjaxResult; | |||
| import com.xueyi.system.api.holiday.feign.factory.FeignHolidayFallbackFactory; | |||
| import org.springframework.cloud.openfeign.FeignClient; | |||
| import org.springframework.web.bind.annotation.GetMapping; | |||
| import org.springframework.web.bind.annotation.RequestHeader; | |||
| /** | |||
| * 短信发送服务 | |||
| * | |||
| * @author yrx | |||
| */ | |||
| @FeignClient(contextId = "feignHolidayService", value = ServiceConstants.SYSTEM_SERVICE, fallbackFactory = FeignHolidayFallbackFactory.class) | |||
| public interface FeignHolidayService { | |||
| @GetMapping("/holiday/api/todayIsWorkDay") | |||
| AjaxResult todayIsWorkDay(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); | |||
| } | |||
| @@ -0,0 +1,27 @@ | |||
| package com.xueyi.system.api.holiday.feign.factory; | |||
| import com.xueyi.common.core.web.result.AjaxResult; | |||
| import com.xueyi.system.api.holiday.feign.FeignHolidayService; | |||
| import lombok.extern.slf4j.Slf4j; | |||
| import org.springframework.cloud.openfeign.FallbackFactory; | |||
| import org.springframework.stereotype.Component; | |||
| /** | |||
| * 会议室服务 降级处理 | |||
| * | |||
| * @author xueyi | |||
| */ | |||
| @Slf4j | |||
| @Component | |||
| public class FeignHolidayFallbackFactory implements FallbackFactory<FeignHolidayService> { | |||
| @Override | |||
| public FeignHolidayService create(Throwable throwable) { | |||
| return new FeignHolidayService() { | |||
| @Override | |||
| public AjaxResult todayIsWorkDay(String source) { | |||
| return AjaxResult.error("工作日服务调用失败:" + throwable.getMessage()); | |||
| } | |||
| }; | |||
| } | |||
| } | |||
| @@ -40,6 +40,9 @@ public interface RemoteVisitorService { | |||
| public JSONObject visitList(@RequestParam(value = "empId") Long empId, | |||
| @RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); | |||
| @GetMapping(value = "/visit/inner-api/visitors") | |||
| public JSONObject visitors(@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); | |||
| @GetMapping(value = "/visit/inner-api/list-all") | |||
| public JSONObject visitListAll(@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); | |||
| @@ -11,3 +11,5 @@ com.xueyi.system.api.meeting.feign.factory.RemoteMeetingFallbackFactory | |||
| com.xueyi.system.api.resource.feign.factory.RemoteH5ConfigFallbackFactory | |||
| com.xueyi.system.api.interfaces.airport.feign.factory.RemotePlaneFallbackFactory | |||
| com.xueyi.system.api.sms.feign.factory.RemoteSmsFallbackFactory | |||
| com.xueyi.system.api.holiday.feign.factory.RemoteHolidayFallbackFactory | |||
| com.xueyi.system.api.holiday.feign.factory.FeignHolidayFallbackFactory | |||
| @@ -3,15 +3,15 @@ package com.xueyi.job.task; | |||
| import com.alibaba.fastjson2.JSON; | |||
| import com.xueyi.common.cache.utils.SourceUtil; | |||
| import com.xueyi.common.core.constant.basic.SecurityConstants; | |||
| import com.xueyi.common.core.utils.core.StrUtil; | |||
| import com.xueyi.common.core.web.result.AjaxResult; | |||
| import com.xueyi.common.core.web.result.R; | |||
| import com.xueyi.common.security.service.TokenService; | |||
| import com.xueyi.system.api.digitalmans.feign.RemoteManDeviceService; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.api.holiday.feign.FeignHolidayService; | |||
| import com.xueyi.system.api.model.Source; | |||
| import com.xueyi.system.api.staff.feign.RemoteStaffService; | |||
| import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; | |||
| import com.xueyi.tenant.api.tenant.feign.RemoteTenantService; | |||
| import org.antlr.runtime.Token; | |||
| import org.slf4j.Logger; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Component; | |||
| @@ -36,8 +36,11 @@ public class DgmanTask { | |||
| @Autowired | |||
| RemoteStaffService staffService; | |||
| @Autowired | |||
| FeignHolidayService feignHolidayService; | |||
| public void ryParams(String params) { | |||
| log.info(StrUtil.format("执行有参方法:参数{}", params)); | |||
| log.info("执行有参方法:参数{}", params); | |||
| } | |||
| public void dgmanMonitor() { | |||
| @@ -46,10 +49,10 @@ public class DgmanTask { | |||
| log.info("租户列表获取失败"); | |||
| return; | |||
| } | |||
| listR.getData().forEach(item->{ | |||
| listR.getData().forEach(item-> | |||
| // 更新租户内数字人信息 | |||
| remoteManDeviceService.manDeviceListInnerSync(item.getId()); | |||
| }); | |||
| remoteManDeviceService.manDeviceListInnerSync(item.getId()) | |||
| ); | |||
| log.info("监控心跳执行完成"); | |||
| } | |||
| @@ -65,6 +68,15 @@ public class DgmanTask { | |||
| public void initStaffAttendances() { | |||
| log.info("=======考勤数据初始化开始。。。。========"); | |||
| AjaxResult result = feignHolidayService.todayIsWorkDay(SecurityConstants.INNER); | |||
| if (result !=null && result.get("data") != null){ | |||
| DmHolidayPo po = JSON.parseObject(JSON.toJSONString(result.get("data")), DmHolidayPo.class); | |||
| if (po.getHoliday() == 1){ | |||
| log.info("=======今天不是工作日,不进行考勤数据初始化========"); | |||
| return; | |||
| } | |||
| } | |||
| R<List<TeTenantDto>> listR = tenantService.tenantList(); | |||
| if (listR.isFail()) { | |||
| log.info("租户列表获取失败"); | |||
| @@ -2,9 +2,11 @@ package com.xueyi.system.common.controller; | |||
| import com.alibaba.fastjson2.JSONObject; | |||
| import com.xueyi.common.core.web.result.AjaxResult; | |||
| import com.xueyi.common.security.annotation.InnerAuth; | |||
| import com.xueyi.common.web.annotation.TenantIgnore; | |||
| import com.xueyi.common.web.entity.controller.BaseController; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.feign.RemoteHolidayService; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| import com.xueyi.system.common.service.IDmHolidayService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| @@ -30,17 +32,27 @@ public class DmHolidayController extends BaseController<DmHolidayQuery, DmHolida | |||
| * 获取今天是否为工作日 | |||
| */ | |||
| @GetMapping("/api/getTodayIsWorkDay") | |||
| @TenantIgnore(tenantLine = true) | |||
| AjaxResult getTodayIsWorkDay() { | |||
| return success(baseService.getTodayHoliday()); | |||
| } | |||
| @GetMapping("/api/todayIsWorkDay") | |||
| @TenantIgnore(tenantLine = true) | |||
| @InnerAuth | |||
| AjaxResult todayIsWorkDay() { | |||
| return success(baseService.getTodayHoliday()); | |||
| } | |||
| /** | |||
| * 调用外部接口,获取本年度节假日信息 | |||
| */ | |||
| @GetMapping("/getHolidays") | |||
| AjaxResult getHolidays() { | |||
| JSONObject holidays = holidayService.getHolidays(); | |||
| return AjaxResult.success(); | |||
| return AjaxResult.success(holidays); | |||
| } | |||
| } | |||
| @@ -1,8 +1,8 @@ | |||
| package com.xueyi.system.common.domain.model; | |||
| import com.xueyi.common.core.web.entity.model.BaseConverter; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.common.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| import org.mapstruct.Mapper; | |||
| import org.mapstruct.MappingConstants; | |||
| @@ -1,5 +1,5 @@ | |||
| package com.xueyi.system.common.domain.query; | |||
| import com.xueyi.system.common.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| @@ -1,7 +1,7 @@ | |||
| package com.xueyi.system.common.manager; | |||
| import com.xueyi.common.web.entity.manager.IBaseManager; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| /** | |||
| @@ -3,9 +3,9 @@ package com.xueyi.system.common.manager.impl; | |||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||
| import com.xueyi.common.web.entity.manager.impl.BaseManagerImpl; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.common.domain.model.DmHolidayConverter; | |||
| import com.xueyi.system.common.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| import com.xueyi.system.common.manager.IDmHolidayManager; | |||
| import com.xueyi.system.common.mapper.DmHolidayMapper; | |||
| @@ -2,8 +2,8 @@ package com.xueyi.system.common.mapper; | |||
| import com.xueyi.common.datasource.annotation.Master; | |||
| import com.xueyi.common.web.entity.mapper.BaseMapper; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.common.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| /** | |||
| @@ -1,7 +1,7 @@ | |||
| package com.xueyi.system.common.service; | |||
| import com.xueyi.common.web.entity.service.IBaseService; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| import java.util.Date; | |||
| @@ -2,7 +2,7 @@ package com.xueyi.system.common.service.impl; | |||
| import cn.hutool.core.date.LocalDateTimeUtil; | |||
| import com.xueyi.common.web.entity.service.impl.BaseServiceImpl; | |||
| import com.xueyi.system.common.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.api.holiday.domain.dto.DmHolidayDto; | |||
| import com.xueyi.system.common.domain.query.DmHolidayQuery; | |||
| import com.xueyi.system.common.manager.IDmHolidayManager; | |||
| import com.xueyi.system.common.service.IDmHolidayService; | |||
| @@ -6,6 +6,7 @@ import com.xueyi.common.core.web.vo.DeviceTenantSourceMergeVo; | |||
| import com.xueyi.system.api.staff.domain.dto.DmVisitCommonDto; | |||
| import com.xueyi.system.api.staff.feign.RemoteVisitorService; | |||
| import com.xueyi.system.resource.controller.api.MyBaseApiController; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorsQuery; | |||
| import com.xueyi.system.staff.mapper.DmStaffMapper; | |||
| import com.xueyi.system.staff.mapper.DmVisitRecordsMapper; | |||
| import com.xueyi.system.staff.mapper.DmVisitorsMapper; | |||
| @@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.PathVariable; | |||
| import org.springframework.web.bind.annotation.PostMapping; | |||
| import org.springframework.web.bind.annotation.RequestBody; | |||
| import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.RequestParam; | |||
| import org.springframework.web.bind.annotation.ResponseBody; | |||
| import org.springframework.web.bind.annotation.RestController; | |||
| @@ -68,6 +70,13 @@ public class DmVisitorApiController extends MyBaseApiController { | |||
| } | |||
| @GetMapping(value = "visitors") | |||
| @ResponseBody | |||
| public JSONObject visitors(@RequestParam("devId") String devId){ | |||
| DeviceTenantSourceMergeVo vo = super.getDeviceTenantSourceMergeVo(devId); | |||
| return visitorService.visitors(vo.getTenantId(), vo.getSourceSlave(), SecurityConstants.INNER); | |||
| } | |||
| @PostMapping(value = "new-visitor") | |||
| @ResponseBody | |||
| public JSONObject newVisit(@RequestBody DmVisitCommonDto commonDto){ | |||
| @@ -364,6 +364,15 @@ public class DmVisitorInnerApiController extends MyBaseApiController { | |||
| return outputSuccess(json).toJSON(); | |||
| } | |||
| @InnerAuth | |||
| @GetMapping(value = "visitors") | |||
| public com.alibaba.fastjson2.JSONObject visitors(){ | |||
| JSONObject json = new JSONObject(); | |||
| List<DmVisitorsPo> v = dmVisitorsMapper.selectList(null); | |||
| json.put("data", v); | |||
| return outputSuccess(json).toJSON(); | |||
| } | |||
| @Autowired | |||
| private SmsProperties smsProperties; | |||
| @@ -2,15 +2,16 @@ package com.xueyi.system.staff.service.impl; | |||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
| import com.baomidou.mybatisplus.core.toolkit.StringUtils; | |||
| import com.xueyi.common.core.utils.core.ObjectUtil; | |||
| import com.xueyi.common.web.annotation.TenantIgnore; | |||
| import com.xueyi.common.web.entity.service.impl.BaseServiceImpl; | |||
| import com.xueyi.common.web.utils.MyDateUtils; | |||
| import com.xueyi.system.api.holiday.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.api.organize.domain.vo.SysDeptExt; | |||
| import com.xueyi.system.api.pass.domain.po.DmRecognizedRecordsPo; | |||
| import com.xueyi.system.api.staff.domain.dto.DmStaffDto; | |||
| import com.xueyi.system.api.staff.domain.po.DmStaffPo; | |||
| import com.xueyi.system.api.staff.domain.vo.DmStaffFeature; | |||
| import com.xueyi.system.common.domain.po.DmHolidayPo; | |||
| import com.xueyi.system.common.service.IDmHolidayService; | |||
| import com.xueyi.system.organize.mapper.SysDeptExtMapper; | |||
| import com.xueyi.system.staff.domain.po.DmEmpAttendancePo; | |||
| @@ -24,12 +25,9 @@ import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import javax.annotation.PostConstruct; | |||
| import java.util.ArrayList; | |||
| import java.util.Date; | |||
| import java.util.HashMap; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * 人员管理 服务层处理 | |||
| @@ -39,26 +37,19 @@ import java.util.Map; | |||
| @Service | |||
| public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto, IDmStaffManager> implements IDmStaffService { | |||
| // Map<String, Integer> STATUS_TYPE = MapUtil.; | |||
| private Logger logger = LoggerFactory.getLogger(DmStaffServiceImpl.class); | |||
| private Map<String, Integer> statusMap; | |||
| public static final Integer ATTENDANCE_STATUS_NORMAL = 0; | |||
| public static final Integer ATTENDANCE_STATUS_BE_LATER = 1; | |||
| public static final Integer ATTENDANCE_STATUS_LEAVE_EARLY = 2; | |||
| public static final Integer ATTENDANCE_STATUS_ABSENCE = 3; | |||
| public static final Integer ATTENDANCE_STATUS_OVERTIME = 4; | |||
| public static final Integer ATTENDANCE_STATUS_LATER_AND_EARLY = 6; | |||
| @Autowired | |||
| private IDmHolidayService holidayService; | |||
| @PostConstruct | |||
| public void initializeMap() { | |||
| // 初始化Map | |||
| statusMap = new HashMap<>(); | |||
| statusMap.put("NORMAL", 0); | |||
| statusMap.put("BE_LATER", 1); | |||
| statusMap.put("LEAVE_EARLY", 2); | |||
| statusMap.put("ABSENCE", 3); | |||
| statusMap.put("OVERTIME", 4); | |||
| statusMap.put("LATER_AND_EARLY", 6); | |||
| // 继续初始化其他常量... | |||
| } | |||
| @Autowired | |||
| DmStaffMapper staffMapper; | |||
| @@ -88,7 +79,6 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto | |||
| @TenantIgnore(tenantLine = true) | |||
| public List<DmStaffPo> selectStaffList(DmStaffPo staff) { | |||
| List<DmStaffPo> result = staffMapper.selectStaffList(staff); | |||
| List<DmStaffPo> po = staffMapper.selectList(null); | |||
| return result; | |||
| } | |||
| @@ -140,19 +130,21 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto | |||
| attendancePo.setUserId(po.getId()); | |||
| attendancePo.setUserName(po.getUserName()); | |||
| attendancePo.setTenantId(po.getTenantId()); | |||
| attendancePo.setDescStatus(3); | |||
| attendancePo.setDescStatus(ATTENDANCE_STATUS_ABSENCE); | |||
| attendancePo.setUserType(Long.parseLong(po.getUserType())); | |||
| attendancePo.setDeptId(po.getDeptId()); | |||
| attendancePo.setDateStr(MyDateUtils.formatDate(new Date(), MyDateUtils.DEFAULT_DATE_PATTERN)); | |||
| attendancePos.add(attendancePo); | |||
| } | |||
| } | |||
| if (attendancePos.size() > 0) { | |||
| if (!attendancePos.isEmpty()) { | |||
| dmEmpAttendanceMapper.insertBatch(attendancePos); | |||
| } | |||
| } | |||
| public void updateOrInsertAttendance(DmRecognizedRecordsPo checkRecords) { | |||
| if (null == checkRecords.getUserId()) { | |||
| if (ObjectUtil.isNull(checkRecords.getUserId())) { | |||
| return ; | |||
| } | |||
| Long userId = checkRecords.getUserId(); | |||
| @@ -189,35 +181,33 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto | |||
| } | |||
| if (MyDateUtils.formatDate(checkTime, MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOffDutyHourStart()) < 0) { | |||
| if (statusMap.get("NORMAL") == empAttendance.getDescStatus()) { | |||
| empAttendance.setDescStatus(statusMap.get("LEAVE_EARLY")); | |||
| } else if (statusMap.get("BE_LATER") == empAttendance.getDescStatus()){ | |||
| empAttendance.setDescStatus(statusMap.get("LATER_AND_EARLY")); | |||
| if (ATTENDANCE_STATUS_NORMAL == empAttendance.getDescStatus()) { | |||
| empAttendance.setDescStatus(ATTENDANCE_STATUS_LEAVE_EARLY); | |||
| } else if (ATTENDANCE_STATUS_BE_LATER == empAttendance.getDescStatus()){ | |||
| empAttendance.setDescStatus(ATTENDANCE_STATUS_LATER_AND_EARLY); | |||
| } | |||
| } else { //如果修改考勤时间,则对应修改考勤状态 | |||
| if (statusMap.get("LATER_AND_EARLY") == empAttendance.getDescStatus()) { | |||
| empAttendance.setDescStatus(statusMap.get("BE_LATER")); | |||
| } else if (statusMap.get("LEAVE_EARLY") == empAttendance.getDescStatus()){ | |||
| empAttendance.setDescStatus(statusMap.get("NORMAL")); | |||
| if (ATTENDANCE_STATUS_LATER_AND_EARLY == empAttendance.getDescStatus()) { | |||
| empAttendance.setDescStatus(ATTENDANCE_STATUS_BE_LATER); | |||
| } else if (ATTENDANCE_STATUS_LEAVE_EARLY == empAttendance.getDescStatus()){ | |||
| empAttendance.setDescStatus(ATTENDANCE_STATUS_NORMAL); | |||
| } | |||
| } | |||
| QueryWrapper<DmEmpAttendancePo> wrapper = new QueryWrapper<>(); | |||
| wrapper.eq("id",empAttendance.getId()); | |||
| dmEmpAttendanceMapper.update(empAttendance, wrapper); | |||
| dmEmpAttendanceMapper.updateById(empAttendance); | |||
| } else { | |||
| DmEmpAttendancePo ea = new DmEmpAttendancePo(); | |||
| Date checkDate = checkTime; | |||
| ea.setCheckInTime(checkDate); | |||
| DmHolidayPo holidayPo = holidayService.isHoliday(checkDate); | |||
| if (MyDateUtils.formatDate(checkDate, MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) { | |||
| ea.setDescStatus(statusMap.get("BE_LATER")); // 迟到 | |||
| if (MyDateUtils.formatDate(checkDate, MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) {//识别时间比考勤上班打卡最晚时间更晚 | |||
| ea.setDescStatus(ATTENDANCE_STATUS_BE_LATER); // 迟到 | |||
| if (holidayPo.getHoliday() == 1) { | |||
| ea.setDescStatus(statusMap.get("OVERTIME")); | |||
| ea.setDescStatus(ATTENDANCE_STATUS_OVERTIME); | |||
| } | |||
| } else { | |||
| } else {//识别时间比考勤上班打卡最晚时间早 | |||
| if (holidayPo.getHoliday() == 1) { | |||
| ea.setDescStatus(statusMap.get("OVERTIME")); | |||
| ea.setDescStatus(ATTENDANCE_STATUS_OVERTIME); | |||
| } | |||
| } | |||