zhitong.yu
7 天以前 7fc9c42987a13c1d8d2159591a5803e70518827f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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;
 
    }
}