From 76595c151007f327c7cf062f66bcca8413742d23 Mon Sep 17 00:00:00 2001 From: zzz <1720989295@qq.com> Date: Tue, 16 Dec 2025 14:59:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/bigscreen/domain/bo/DpznglBo.java | 13 +++++ .../bigscreen/domain/vo/DpznglAqyVo.java | 6 ++ .../org/dromara/bigscreen/enums/DpEnum.java | 2 + .../service/impl/DpzaglServiceImpl.java | 57 +++++++++++++++---- 4 files changed, 67 insertions(+), 11 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/DpznglBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/DpznglBo.java index c7aadd36..7ea8cf1d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/DpznglBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/bo/DpznglBo.java @@ -4,6 +4,7 @@ package org.dromara.bigscreen.domain.bo; import lombok.Data; import java.io.Serializable; +import java.time.LocalDate; @Data public class DpznglBo implements Serializable { @@ -25,4 +26,16 @@ public class DpznglBo implements Serializable { private Long projectId; + + /** + * 开始时间 + */ + private LocalDate startDate; + + /** + * 结束时间 + */ + private LocalDate endDate; + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/DpznglAqyVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/DpznglAqyVo.java index 308b1ed4..55dfb928 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/DpznglAqyVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/DpznglAqyVo.java @@ -28,4 +28,10 @@ public class DpznglAqyVo implements Serializable { private BigDecimal locLongitude; + /** + * 是否在岗 + */ + private String sfzg ; + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/enums/DpEnum.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/enums/DpEnum.java index 090c1c82..130bd61b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/enums/DpEnum.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/enums/DpEnum.java @@ -6,6 +6,8 @@ public enum DpEnum { ZLGLLX_DQJC("定期检查", "2"), ZLGLLX_RCXJ("日常巡检", "3"), ZLGDZT_ZG("工单状态-整改", "2"), + RYZT_ZG("人员状态-在岗", "1"), + RYZT_LG("工单状态-离岗", "0"), JSLX_AQY("角色类型-安全员", "SAFETY_OFFICER"); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/DpzaglServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/DpzaglServiceImpl.java index 30edcc08..3f45b224 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/DpzaglServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/service/impl/DpzaglServiceImpl.java @@ -8,13 +8,18 @@ import org.dromara.bigscreen.domain.vo.DpznglAqyVo; import org.dromara.bigscreen.domain.vo.DpznglVo; import org.dromara.bigscreen.enums.DpEnum; import org.dromara.bigscreen.service.DpzaglService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.domain.GeoPoint; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.utils.JSTUtil; import org.dromara.gps.domain.GpsEquipmentSon; import org.dromara.gps.mapper.GpsEquipmentSonMapper; import org.dromara.gps.service.IGpsEquipmentSonService; +import org.dromara.project.domain.BusProjectPunchrange; import org.dromara.project.domain.BusUserProjectRelevancy; import org.dromara.project.mapper.BusUserProjectRelevancyMapper; +import org.dromara.project.service.IBusProjectPunchrangeService; import org.dromara.quality.domain.QltQualityInspection; import org.dromara.quality.domain.dto.qualityinspection.QltQualityInspectionQueryReq; import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionVo; @@ -66,6 +71,8 @@ public class DpzaglServiceImpl implements DpzaglService { private final GpsEquipmentSonMapper gpsEquipmentSonMapper; + private final IBusProjectPunchrangeService busProjectPunchrangeService; + private final BusUserProjectRelevancyMapper busUserProjectRelevancyMapper; @@ -75,9 +82,9 @@ public class DpzaglServiceImpl implements DpzaglService { DpznglVo dpznglVo = new DpznglVo(); PageQuery pageQuery = new PageQuery(bo.getPageSize(),bo.getPageNum()); // 质量 - saveZl(pageQuery,dpznglVo); + saveZl(pageQuery,dpznglVo,bo); // 安全 - saveAq(pageQuery,dpznglVo); + saveAq(pageQuery,dpznglVo,bo); return dpznglVo; @@ -123,11 +130,36 @@ public class DpzaglServiceImpl implements DpzaglService { return dpznglAqyVo; }).collect(Collectors.toList()); // 判断是否离岗 + judgeFw(dpznglAqyVos,bo.getProjectId()); } return dpznglAqyVos; } + private void judgeFw(List dpznglAqyVos, Long projectId) { +// 获取该项目的打卡范围 + List busProjectPunchranges = busProjectPunchrangeService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(BusProjectPunchrange::getProjectId, projectId)); + if (busProjectPunchranges == null || busProjectPunchranges.size() == 0){ + return; + } + + for (DpznglAqyVo dpznglAqyVo : dpznglAqyVos) { + dpznglAqyVo.setSfzg(DpEnum.RYZT_LG.getTypeValue()); + + for (BusProjectPunchrange busProjectPunchrange : busProjectPunchranges) { + List coordinates = List.of(busProjectPunchrange.getPunchRange()); + List matchingRange = JSTUtil.findMatchingRange(dpznglAqyVo.getLocLatitude().toString(), dpznglAqyVo.getLocLongitude().toString(), coordinates); + if (matchingRange != null && matchingRange.size() > 0){ + dpznglAqyVo.setSfzg(DpEnum.RYZT_ZG.getTypeValue()); + } + + } + } + + + + } + @Override public DpznglVo listByzbh(DpznglBo bo) { DpznglVo dpznglVo = new DpznglVo(); @@ -140,7 +172,7 @@ public class DpzaglServiceImpl implements DpzaglService { } - private void saveAq(PageQuery pageQuery, DpznglVo dpznglVo) { + private void saveAq(PageQuery pageQuery, DpznglVo dpznglVo,DpznglBo bo) { // 安全 巡检工单,整改情况 HseSafetyInspectionQueryReq req = new HseSafetyInspectionQueryReq(); @@ -169,23 +201,26 @@ public class DpzaglServiceImpl implements DpzaglService { } - private void saveZl(PageQuery pageQuery,DpznglVo dpznglVo) { + private void saveZl(PageQuery pageQuery,DpznglVo dpznglVo,DpznglBo bo) { // 质量 巡检工单,整改情况 QltQualityInspectionQueryReq req = new QltQualityInspectionQueryReq(); -// 质量展示数据 - TableDataInfo zlLists = qualityInspectionService.queryPageList(req, pageQuery); + +//// 质量展示数据 +// TableDataInfo zlLists = qualityInspectionService.queryPageList(req, pageQuery); // 质量展示数据-整改 req.setInspectionStatus(DpEnum.ZLGDZT_ZG.getTypeValue()); TableDataInfo zlZgLists = qualityInspectionService.queryPageList(req, pageQuery); // 质量总数(用于判断巡检类型) - List zsZl = qualityInspectionService.list(); + List zsZl = qualityInspectionService.getBaseMapper() + .selectList(new LambdaQueryWrapper() + .eq(QltQualityInspection::getInspectionType,DpEnum.ZLGDZT_ZG.getTypeValue())); - List rows = zlLists.getRows(); - if (rows != null && rows.size() > 0){ - dpznglVo.setZlZS(zlLists.getTotal()); - dpznglVo.setZlList(rows); +// List rows = zlLists.getRows(); + if (zsZl != null && zsZl.size() > 0){ + dpznglVo.setZlZS(Long.valueOf(zsZl.size())); + dpznglVo.setZlList(MapstructUtils.convert(zsZl, QltQualityInspectionVo.class)); dpznglVo.setZxjcZl(zsZl.stream().filter(zl -> DpEnum.ZLGLLX_ZXGL.getTypeValue().equals(zl.getInspectionType())).count()); dpznglVo.setDqjcZl(zsZl.stream().filter(zl -> DpEnum.ZLGLLX_DQJC.getTypeValue().equals(zl.getInspectionType())).count()); dpznglVo.setRcxjZl(zsZl.stream().filter(zl -> DpEnum.ZLGLLX_RCXJ.getTypeValue().equals(zl.getInspectionType())).count());