diff --git a/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendanceDetail.java b/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendanceDetail.java index 5b0e1f2..a151a63 100644 --- a/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendanceDetail.java +++ b/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendanceDetail.java @@ -51,7 +51,7 @@ public class RzAttendanceDetail extends BaseEntity /** 周六标识 */ private String remark; - private String photo; +// private String photo; /** 删除标记 */ private String delFlag; diff --git a/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendancePhoto.java b/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendancePhoto.java new file mode 100644 index 0000000..25bffda --- /dev/null +++ b/evo-admin/src/main/java/com/evo/attendance/domain/RzAttendancePhoto.java @@ -0,0 +1,23 @@ +package com.evo.attendance.domain; + +import lombok.Data; + +/** + * RzAttendancePhoto + * + * @author andy.shi + * @ClassName:RzAttendancePhoto + * @date: 2026年03月17日 8:52 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Data +public class RzAttendancePhoto { + + /** 主键 */ + private Long id; + + private Long attendanceDetailId; + + private String photo; + +} diff --git a/evo-admin/src/main/java/com/evo/attendance/domain/vo/RzAttendanceDetailTimeLineVO.java b/evo-admin/src/main/java/com/evo/attendance/domain/vo/RzAttendanceDetailTimeLineVO.java index d86f672..8644cd9 100644 --- a/evo-admin/src/main/java/com/evo/attendance/domain/vo/RzAttendanceDetailTimeLineVO.java +++ b/evo-admin/src/main/java/com/evo/attendance/domain/vo/RzAttendanceDetailTimeLineVO.java @@ -27,6 +27,8 @@ public class RzAttendanceDetailTimeLineVO { String size = "large"; + String delFlag; + public RzAttendanceDetailTimeLineVO(String content, String photo, String timestamp, String delFlag) { this.content = content; this.photo = photo; @@ -36,7 +38,7 @@ public class RzAttendanceDetailTimeLineVO { this.icon = timeLine.icon; } - enum TimeLineEnum{ + public enum TimeLineEnum{ UP("上班", "primary","el-icon-caret-top"), OVERTIME("加班", "success","el-icon-plus"), DOWN("下班", "warning","el-icon-caret-bottom"), @@ -46,8 +48,8 @@ public class RzAttendanceDetailTimeLineVO { ; String typeWork; - String type; - String icon; + public String type; + public String icon; TimeLineEnum(String typeWork, String type, String icon) { this.typeWork = typeWork; diff --git a/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendanceDetailMapper.java b/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendanceDetailMapper.java index 79b9512..dc59ada 100644 --- a/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendanceDetailMapper.java +++ b/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendanceDetailMapper.java @@ -2,6 +2,7 @@ package com.evo.attendance.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.evo.attendance.domain.RzAttendanceDetail; +import com.evo.attendance.domain.vo.RzAttendanceDetailTimeLineVO; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -76,4 +77,6 @@ public interface RzAttendanceDetailMapper extends BaseMapper public RzAttendanceDetail selectLastRzAttendanceDetailByBk(@Param("staffId") Long staffId, @Param("buttonType") String buttonType, @Param("startDateTime") Date startDateTime, @Param("endDateTime") Date endDateTime); List> getThreeDayNotCheck(); + + List selectListByAttendanceId(@Param("attId")Long attId); } diff --git a/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendancePhotoMapper.java b/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendancePhotoMapper.java new file mode 100644 index 0000000..5c00e5a --- /dev/null +++ b/evo-admin/src/main/java/com/evo/attendance/mapper/RzAttendancePhotoMapper.java @@ -0,0 +1,15 @@ +package com.evo.attendance.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evo.attendance.domain.RzAttendancePhoto; + +/** + * RzAttendancePhotoMapper + * + * @author andy.shi + * @ClassName:RzAttendancePhotoMapper + * @date: 2026年03月17日 8:58 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +public interface RzAttendancePhotoMapper extends BaseMapper { +} diff --git a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java index 3ea8187..dc2d716 100644 --- a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java @@ -1,5 +1,6 @@ package com.evo.attendance.processor.impl; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.evo.attendance.domain.RzAttendance; import com.evo.attendance.domain.RzAttendanceDetail; @@ -174,6 +175,7 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP //获取员工的工作时长 RzAttendanceDetail attendanceDetail = rzAttendanceDetailService.addDetail(attendance, rules, sn, date, "", photo); if(attendanceDetail.getId() == null){ + log.info("[打卡失败]============> 因为没有打卡详情id{}", JSON.toJSONString(attendanceDetail)); return initMessage(1, "打卡失败"); } @@ -201,10 +203,10 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP } //上班的下班卡 if(rzAttendanceDetail.getButtonType().contains("上班")){ - return KqUtils.workOffDutyCard( date, rzAttendanceDetail.getButtonType(), attendance) ? initMessage(0, "打卡成功") : initMessage(1,"打卡失败"); } + log.info("[打卡失败]============> 走到最后了, 打卡人姓名{}", sysStaff.getName()); return initMessage(1, "打卡失败"); } @@ -233,6 +235,8 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP attendance.setYcsFlag("1"); } }catch (Exception e){ + log.info("[打卡失败]============> 出现异常了, 异常原因{}", e.getMessage()); + e.printStackTrace(); return initMessage(1, "打卡失败,"+e.getMessage()); } //查询昨天是否未打卡 @@ -248,6 +252,7 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP e.printStackTrace(); log.error("查询前一天的打卡情况报错了"); } + log.info("[打卡失败]============> 上班卡模块, 走到最后了, 不知道成功还是失败, 打卡人姓名{}", attendance.getName()); return (rzAttendanceMapper.updateRzAttendance(attendance) > 0) ? initMessage(0, "打卡成功"+notBeforeEndTimeMessage) : initMessage(1, "打卡失败"+notBeforeEndTimeMessage); } // diff --git a/evo-admin/src/main/java/com/evo/attendance/service/RzAttendancePhotoService.java b/evo-admin/src/main/java/com/evo/attendance/service/RzAttendancePhotoService.java new file mode 100644 index 0000000..ee5e009 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/attendance/service/RzAttendancePhotoService.java @@ -0,0 +1,17 @@ +package com.evo.attendance.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.evo.attendance.domain.RzAttendancePhoto; + +/** + * 接口 + * + * @ClassName:RzAttendanceDetailService + * @date: 2025年07月07日 13:32 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +public interface RzAttendancePhotoService extends IService { + +} diff --git a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java index d427129..1beca89 100644 --- a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java @@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.evo.attendance.domain.RzAttendance; import com.evo.attendance.domain.RzAttendanceDetail; +import com.evo.attendance.domain.RzAttendancePhoto; import com.evo.attendance.domain.vo.RzAttendanceDetailTimeLineVO; import com.evo.attendance.mapper.RzAttendanceDetailMapper; +import com.evo.attendance.mapper.RzAttendancePhotoMapper; import com.evo.attendance.service.RzAttendanceDetailService; +import com.evo.attendance.service.RzAttendancePhotoService; import com.evo.common.constant.Constants; import com.evo.common.core.domain.entity.SysDept; import com.evo.common.utils.Collections; @@ -55,6 +58,8 @@ public class RzAttendanceDetailServiceImpl extends ServiceImpl selectListByAttendanceId(Long attId) { - return list(new LambdaQueryWrapper().eq(RzAttendanceDetail::getAttendanceId, attId).select(RzAttendanceDetail::getButtonType, RzAttendanceDetail::getPhoto, RzAttendanceDetail::getDateTime,RzAttendanceDetail::getDelFlag)).stream().map(data ->{ - return new RzAttendanceDetailTimeLineVO(data.getButtonType(), data.getPhoto(), DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",data.getDateTime()), data.getDelFlag()); - }).collect(Collectors.toList()); + List result = getBaseMapper().selectListByAttendanceId(attId); + result.stream().forEach(data->{ + RzAttendanceDetailTimeLineVO.TimeLineEnum timeLine = RzAttendanceDetailTimeLineVO.TimeLineEnum.get(data.getContent(), data.getDelFlag()); + data.setType(timeLine.type); + data.setIcon(timeLine.icon); + }); + return result; +// +// return getBaseMapper().selectListByAttendanceId(new LambdaQueryWrapper().eq(RzAttendanceDetail::getAttendanceId, attId) +// .select(RzAttendanceDetail::getButtonType, RzAttendanceDetail::getPhoto, RzAttendanceDetail::getDateTime,RzAttendanceDetail::getDelFlag)).stream().map(data ->{ +// return new RzAttendanceDetailTimeLineVO(data.getButtonType(), data.getPhoto(), DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",data.getDateTime()), data.getDelFlag()); +// }).collect(Collectors.toList()); } SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendancePhotoServiceImpl.java b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendancePhotoServiceImpl.java new file mode 100644 index 0000000..4b4c6b8 --- /dev/null +++ b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendancePhotoServiceImpl.java @@ -0,0 +1,22 @@ +package com.evo.attendance.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.evo.attendance.domain.RzAttendancePhoto; +import com.evo.attendance.mapper.RzAttendancePhotoMapper; +import com.evo.attendance.service.RzAttendancePhotoService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 类 + * + * @ClassName:RzAttendanceDetailServiceimpl + * @date: 2025年07月07日 13:33 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Slf4j +@Service +public class RzAttendancePhotoServiceImpl extends ServiceImpl implements RzAttendancePhotoService { +} diff --git a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java index 4eb088e..33418d3 100644 --- a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantStatisticsServiceImpl.java @@ -110,7 +110,7 @@ public class RzRestaurantStatisticsServiceImpl extends ServiceImpl dicMap = sysDictDataMapper.selectDictDataByType(Constants.SYS_RESTAUTANT).stream().collect(Collectors.toMap(SysDictData::getDictCode, SysDictData::getDictValue)); //优先检查是否为住宿 - Map zsMap = sysStaffMapper.selectSysStaffListAll().stream().collect(Collectors.toMap(SysStaff::getUserId, d->"是".equals(d.getZsFlag()))); + Map zsMap = sysStaffMapper.selectSysStaffListByRzRestaurantStatistics(rzRestaurantStatistics.getMonth()).stream().collect(Collectors.toMap(SysStaff::getUserId, d->"是".equals(d.getZsFlag()))); List notAccommodationNames = ParamUtils.getInternNotAccommodation(); //然后在检查是否为日薪 Map rxMap = sysStaffDetailMapper.selectList(new LambdaQueryWrapper().in(SysStaffDetail::getStaffId, zsMap.keySet().toArray())).stream().collect(Collectors.toMap(SysStaffDetail::getStaffId, d->d.getDailyWage() != null && d.getDailyWage().intValue() > 0)); diff --git a/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java b/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java index e9b16c3..1244ded 100644 --- a/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java +++ b/evo-admin/src/main/java/com/evo/system/mapper/SysStaffMapper.java @@ -51,6 +51,12 @@ public interface SysStaffMapper extends BaseMapper * @return */ public List selectSysStaffListAll(); + + /** + * 查询所有的在职员工信息 + * @return + */ + public List selectSysStaffListByRzRestaurantStatistics(Date date); /** * 根据身份证号查询员工信息 * @param idCard diff --git a/evo-admin/src/main/resources/mapper/attendance/RzAttendanceDetailMapper.xml b/evo-admin/src/main/resources/mapper/attendance/RzAttendanceDetailMapper.xml index 8c933bb..1f7485c 100644 --- a/evo-admin/src/main/resources/mapper/attendance/RzAttendanceDetailMapper.xml +++ b/evo-admin/src/main/resources/mapper/attendance/RzAttendanceDetailMapper.xml @@ -117,4 +117,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + diff --git a/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml b/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml index 049ad30..ea24ea7 100644 --- a/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml +++ b/evo-admin/src/main/resources/mapper/system/SysStaffMapper.xml @@ -260,6 +260,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where del_flag = '0' and status != '-1' + + + + + + +