package com.hxzk.gps.service.impl.Attendance; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hxzk.gps.controller.Attendance.dto.TableSearchResult.TableSearchResult; import com.hxzk.gps.entity.Attendance.TbKaoqing; import com.hxzk.gps.entity.Attendance.TbRealkaoqing; import com.hxzk.gps.entity.Fence.TbFence; import com.hxzk.gps.mapper.Attendance.TbKaoqingMapper; import com.hxzk.gps.result.ListDataResult; import com.hxzk.gps.result.ResultTable; import com.hxzk.gps.result.table; import com.hxzk.gps.service.Attendance.TbKaoqingService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hxzk.gps.service.Company.TbCompanyService; import com.hxzk.gps.service.Fence.TbFenceService; import com.hxzk.gps.util.GetUser.UserInfoUtil; import com.hxzk.gps.util.MessageUtils.MessageUtils; import com.hxzk.gps.util.Time.TimeUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** *

* 服务实现类 *

* * @author YuZhiTong * @since 2025-05-27 */ @Service public class TbKaoqingServiceImpl extends ServiceImpl implements TbKaoqingService { @Autowired TbKaoqingMapper KaoqingMapper; @Autowired TbFenceService fenceService; @Autowired TbCompanyService companyService; @Override public ResultTable FindAttendanceInfo(TableSearchResult TableSearchResult) { PageHelper.startPage(TableSearchResult.getTableList().getPageNum(),TableSearchResult.getTableList().getPageSize()); if (TableSearchResult.getKaoqing().getIntime() == null){ TableSearchResult.getKaoqing().setIntime(TimeUtil.GetYearMonthDay()); }else{ TableSearchResult.getKaoqing().setIntime(TimeUtil.ZhuanDate(TableSearchResult.getKaoqing().getIntime())); } PageInfo info = new PageInfo<>(KaoqingMapper.FindAttendanceInfo(UserInfoUtil.getUserCompany(), TableSearchResult.getKaoqing().getIntime(),TableSearchResult.getKaoqing().getName(),TableSearchResult.getKaoqing().getTagid())); table achortable = new table<>(info.getList(),TableSearchResult.getTableList().getPageNum(),TableSearchResult.getTableList().getPageSize(),info.getTotal()); return ListDataResult.resultTableSuccess(achortable, MessageUtils.getMessage("Success")); } @Override public List FindRealAttendanceInfo(TableSearchResult TableSearchResult) { List companyname = companyService.getChildCompanyNames(UserInfoUtil.getUserCompany()); QueryWrapper queryWrapperFence = new QueryWrapper<>(); queryWrapperFence.in("company",companyname); queryWrapperFence.eq("type",MessageUtils.getMessage("Attendance")); List fenceList = fenceService.getBaseMapper().selectList(queryWrapperFence); List kaoqin = KaoqingMapper.findKaoQinQuYu(); List filteredKaoqin = new ArrayList<>(); // 遍历 fences 列表 for (TbFence fence : fenceList) { String fenceName = fence.getName(); // 假设 TbFence 类中有一个 getFenceName 方法 int totalPeople = 0; // 在 kaoqin 列表中查找当前围栏的实时考勤信息 for (TbRealkaoqing kq : kaoqin) { if (kq.getArea().equals(fenceName)) { // 假设 TbRealkaoqing 类中有一个 getFenceName 方法 totalPeople = Integer.parseInt(kq.getTagid()); // 假设 TbRealkaoqing 类中有一个 getTotalPeople 方法 break; } } // 创建一个新的 TbRealkaoqing 对象并添加到 filteredKaoqin 列表中 TbRealkaoqing newKq = new TbRealkaoqing(); newKq.setName(fenceName); newKq.setTagid(String.valueOf(totalPeople)); newKq.setIntime(TimeUtil.GetTime()); filteredKaoqin.add(newKq); } return filteredKaoqin; } }