From 3d030557099016d388c3f97901c836fe0cc26631 Mon Sep 17 00:00:00 2001 From: guo Date: Tue, 9 Apr 2024 21:58:24 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worker/mapper/WorkerAttendanceMapper.java | 3 +++ .../mapper/xml/WorkerAttendanceMapper.xml | 15 +++++++++++++ .../worker/mapper/xml/WorkerInfoMapper.xml | 1 + .../impl/WorkerAttendanceServiceImpl.java | 22 +++++++++++++------ .../com/zhgd/xmgl/util/HikvisionUtil.java | 1 + 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendanceMapper.java b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendanceMapper.java index 31cb78486..36a83ca94 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendanceMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendanceMapper.java @@ -5,6 +5,7 @@ import java.util.Map; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.entity.vo.NumberTimeTableVo; import com.zhgd.xmgl.modules.worker.entity.bo.WorkerAttendanceBo; import com.zhgd.xmgl.modules.worker.entity.dto.GetPassRecordDto; @@ -85,4 +86,6 @@ public interface WorkerAttendanceMapper extends BaseMapper { List queryAttendanceTrend(Map map); List queryPresenceList(Map map); + + List queryTodayAttendanceTrend(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml index c3d2b8de0..43f3c0d02 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml @@ -808,4 +808,19 @@ GROUP BY person_sn) AND a.pass_type = 1 + + diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml index 1bcf18563..13181dd94 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml @@ -676,6 +676,7 @@ INNER JOIN team_info b ON a.team_id = b.id WHERE a.project_sn = #{projectSn} and a.inService_type = 1 + GROUP BY b.worker_type_id ) ap on w.id = ap.worker_type_id WHERE w.project_sn = #{projectSn} ORDER BY total_person_num desc diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java index 1b0c1f3fd..429df7f37 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java @@ -1017,26 +1017,34 @@ status 状态码 String 1表示成功;其余表示失败 }).collect(Collectors.groupingBy(WorkerAttendance::getCreateTimeHour)); ArrayList rtList = new ArrayList<>(); List allHourInDay = DateUtils.getDateTimeStrList(100, "HH:mm"); - int lastNum = 0; + Set inSet = new HashSet<>(); + Set outSet = new HashSet<>(); for (String hour : allHourInDay) { List workerAttendances = timeDateListMap.get(hour); NumberTimeTableVo vo = new NumberTimeTableVo(); - int num = 0; if (CollUtil.isNotEmpty(workerAttendances)) { + workerAttendances.sort((o1, o2) -> { + if (o1.getCreateTime() == null || o2.getCreateTime() == null) { + return 0; + } + return o1.getCreateTime().compareTo(o2.getCreateTime()); + }); for (WorkerAttendance workerAttendance : workerAttendances) { if (Objects.equals(workerAttendance.getPassType(), 1)) { - num++; + if (!outSet.remove(workerAttendance.getPersonSn())) { + inSet.add(workerAttendance.getPersonSn()); + } } else if (Objects.equals(workerAttendance.getPassType(), 2)) { - num--; + if (!inSet.remove(workerAttendance.getPersonSn())) { + outSet.add(workerAttendance.getPersonSn()); + } } } } if (DateUtil.parse(nowHour).compareTo(DateUtil.parse(hour)) < 0) { - //if (DateUtils.parse(nowHour).compareTo(DateUtils.parse(hour)) < 0&&false) { //测试语句 vo.setNum(null); } else { - vo.setNum(Math.max(lastNum + num, 0)); - lastNum = vo.getNum(); + vo.setNum(Math.max(inSet.size() - outSet.size(), 0)); } vo.setTime(hour); rtList.add(vo); diff --git a/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java b/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java index 4d52b34de..6278cd89e 100644 --- a/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java @@ -13,6 +13,7 @@ import com.zhgd.xmgl.modules.basicdata.mapper.HikvisionRequestRetryMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.Map;