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;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author YuZhiTong
|
* @since 2025-05-27
|
*/
|
@Service
|
public class TbKaoqingServiceImpl extends ServiceImpl<TbKaoqingMapper, TbKaoqing> 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<TbKaoqing> info = new PageInfo<>(KaoqingMapper.FindAttendanceInfo(UserInfoUtil.getUserCompany(), TableSearchResult.getKaoqing().getIntime(),TableSearchResult.getKaoqing().getName(),TableSearchResult.getKaoqing().getTagid()));
|
table<TbKaoqing> achortable = new table<>(info.getList(),TableSearchResult.getTableList().getPageNum(),TableSearchResult.getTableList().getPageSize(),info.getTotal());
|
return ListDataResult.resultTableSuccess(achortable, MessageUtils.getMessage("Success"));
|
}
|
|
@Override
|
public List<TbRealkaoqing> FindRealAttendanceInfo(TableSearchResult TableSearchResult) {
|
List<Long> companyname = companyService.getChildCompanyNames(UserInfoUtil.getUserCompany());
|
QueryWrapper queryWrapperFence = new QueryWrapper<>();
|
queryWrapperFence.in("company",companyname);
|
queryWrapperFence.eq("type",MessageUtils.getMessage("Attendance"));
|
List<TbFence> fenceList = fenceService.getBaseMapper().selectList(queryWrapperFence);
|
List<TbRealkaoqing> kaoqin = KaoqingMapper.findKaoQinQuYu();
|
List<TbRealkaoqing> 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;
|
|
}
|
}
|