大屏、产值
This commit is contained in:
		| @ -326,7 +326,7 @@ ys7: | |||||||
|   app-key: 3acf9f1a43dc4209841e0893003db0a2 |   app-key: 3acf9f1a43dc4209841e0893003db0a2 | ||||||
|   app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e |   app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e | ||||||
|   job: |   job: | ||||||
|     capture-enabled: true   # 控制是否启用萤石抓拍任务 |     capture-enabled: false   # 控制是否启用萤石抓拍任务 | ||||||
|     device-sync-enabled: true # 控制是否同步萤石设备 |     device-sync-enabled: true # 控制是否同步萤石设备 | ||||||
| # 斯巴达算法 | # 斯巴达算法 | ||||||
| sparta: | sparta: | ||||||
|  | |||||||
| @ -186,14 +186,6 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|     @GetMapping("/news/{projectId}") |     @GetMapping("/news/{projectId}") | ||||||
|     public R<List<BusProjectNewsVo>> getProjectNews(@NotNull(message = "主键不能为空") |     public R<List<BusProjectNewsVo>> getProjectNews(@NotNull(message = "主键不能为空") | ||||||
|                                                     @PathVariable Long projectId) { |                                                     @PathVariable Long projectId) { | ||||||
| //        List<BusCorporateEvents> busCorporateEvents = projectBigScreenMapper.getBusCorporateEvents(); |  | ||||||
| //        return R.ok(busCorporateEvents.stream().map(event -> { |  | ||||||
| //            BusProjectNewsVo vo = new BusProjectNewsVo(); |  | ||||||
| //            vo.setId(event.getId()); |  | ||||||
| //            vo.setTitle(event.getHeadline()); |  | ||||||
| //            vo.setContent(event.getContent()); |  | ||||||
| //            return vo; |  | ||||||
| //        }).toList()); |  | ||||||
|         return R.ok(projectBigScreenService.getProjectNews(projectId)); |         return R.ok(projectBigScreenService.getProjectNews(projectId)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -204,23 +196,6 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|     @GetMapping("/safetyInspection/{projectId}") |     @GetMapping("/safetyInspection/{projectId}") | ||||||
|     public R<List<ProjectSafetyInspectionVo>> getProjectSafetyInspection(@NotNull(message = "主键不能为空") |     public R<List<ProjectSafetyInspectionVo>> getProjectSafetyInspection(@NotNull(message = "主键不能为空") | ||||||
|                                                                          @PathVariable Long projectId) { |                                                                          @PathVariable Long projectId) { | ||||||
| /*        BusProject project = projectService.getById(projectId); |  | ||||||
|         projectId = project.getGoId(); |  | ||||||
|         String pic; |  | ||||||
|         if (projectId == 60) { |  | ||||||
|             pic = "http://xny.yj-3d.com:7464"; |  | ||||||
|         } else { |  | ||||||
|             pic = "http://xny.yj-3d.com:7363"; |  | ||||||
|         } |  | ||||||
|         List<BusTour> busTours = projectBigScreenMapper.selectTourByProjectId(projectId); |  | ||||||
|         return R.ok(busTours.stream().map(tour -> { |  | ||||||
|             ProjectSafetyInspectionVo vo = new ProjectSafetyInspectionVo(); |  | ||||||
|             vo.setId(tour.getId()); |  | ||||||
|             vo.setViolationType(tour.getTourType()); |  | ||||||
|             vo.setPicture(pic + tour.getPicture()); |  | ||||||
|             vo.setCreateTime(tour.getCreatedAt()); |  | ||||||
|             return vo; |  | ||||||
|         }).toList());*/ |  | ||||||
|         return R.ok(projectBigScreenService.getProjectSafetyInspection(projectId)); |         return R.ok(projectBigScreenService.getProjectSafetyInspection(projectId)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -231,51 +206,6 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|     @GetMapping("/people/{projectId}") |     @GetMapping("/people/{projectId}") | ||||||
|     public R<ProjectPeopleVo> getProjectPeople(@NotNull(message = "主键不能为空") |     public R<ProjectPeopleVo> getProjectPeople(@NotNull(message = "主键不能为空") | ||||||
|                                                @PathVariable Long projectId) { |                                                @PathVariable Long projectId) { | ||||||
| //        BusProject project = projectService.getById(projectId); |  | ||||||
| //        projectId = project.getGoId(); |  | ||||||
| //        Integer projectUserCount = projectBigScreenMapper.getProjectUserCount(projectId); |  | ||||||
| //        ProjectPeopleVo vo = new ProjectPeopleVo(); |  | ||||||
| //        vo.setPeopleCount(BigDecimal.valueOf(projectUserCount)); |  | ||||||
| //        Integer attendanceCount = projectBigScreenMapper.getAttendanceCount(projectId, DateUtils.getDate()); |  | ||||||
| //        vo.setAttendanceCount(BigDecimal.valueOf(attendanceCount)); |  | ||||||
| //        vo.setAttendanceRate(BigDecimalUtil.toPercentage(BigDecimal.valueOf(attendanceCount), BigDecimal.valueOf(projectUserCount))); |  | ||||||
| //        List<BusConstructionUser> projectUserList = projectBigScreenMapper.getProjectUserList(projectId); |  | ||||||
| //        List<BusProjectTeamByGo> teamList = projectBigScreenMapper.getTeamList(projectId); |  | ||||||
| // |  | ||||||
| //        List<ProjectTeamAttendanceVo> teamAttendanceList = new ArrayList<>(); |  | ||||||
| //        String punchRange = project.getPunchRange(); |  | ||||||
| //        String punchTime = ""; |  | ||||||
| //        if (punchRange != null) { |  | ||||||
| //            String start = punchRange.split(",")[0]; |  | ||||||
| //            punchTime = LocalDate.now() + " " + start; |  | ||||||
| //        } |  | ||||||
| //        if (projectUserList != null && teamList != null) { |  | ||||||
| //            projectUserList = projectUserList.stream().filter(user -> user.getTeamId() != null).toList(); |  | ||||||
| //            Map<Long, List<BusConstructionUser>> userMap = projectUserList.stream() |  | ||||||
| //                .collect(Collectors.groupingBy(BusConstructionUser::getTeamId)); |  | ||||||
| //            for (BusProjectTeamByGo team : teamList) { |  | ||||||
| //                ProjectTeamAttendanceVo vo1 = new ProjectTeamAttendanceVo(); |  | ||||||
| //                vo1.setId(team.getId()); |  | ||||||
| //                vo1.setTeamName(team.getName()); |  | ||||||
| //                vo1.setAttendanceTime(punchTime); |  | ||||||
| //                vo1.setAttendanceNumber(BigDecimal.ZERO); |  | ||||||
| //                List<BusConstructionUser> userList = userMap.get(team.getId()); |  | ||||||
| //                if (CollUtil.isNotEmpty(userList)) { |  | ||||||
| //                    List<String> list = userList.stream().map(BusConstructionUser::getOpenid).distinct().toList(); |  | ||||||
| //                    Integer aCount = projectBigScreenMapper.getAttendanceCountByOpenIds(list, LocalDate.now()); |  | ||||||
| //                    vo1.setAttendanceNumber(BigDecimal.valueOf(aCount)); |  | ||||||
| //                } |  | ||||||
| //                vo1.setAllNumber(BigDecimal.valueOf(userMap.getOrDefault(team.getId(), List.of()).size())); |  | ||||||
| //                if (vo1.getAttendanceNumber() != null && vo1.getAllNumber() != null && vo1.getAllNumber().compareTo(BigDecimal.ZERO) != 0) { |  | ||||||
| //                    vo1.setAttendanceRate(BigDecimalUtil.toPercentage(vo1.getAttendanceNumber(), vo1.getAllNumber())); |  | ||||||
| //                } else { |  | ||||||
| //                    vo1.setAttendanceRate(BigDecimal.ZERO); |  | ||||||
| //                } |  | ||||||
| //                teamAttendanceList.add(vo1); |  | ||||||
| //            } |  | ||||||
| //        } |  | ||||||
| //        vo.setTeamAttendanceList(teamAttendanceList); |  | ||||||
| //        return R.ok(vo); |  | ||||||
|         return R.ok(projectBigScreenService.getProjectPeople(projectId)); |         return R.ok(projectBigScreenService.getProjectPeople(projectId)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -296,18 +226,7 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|     @GetMapping("/generalize/{projectId}") |     @GetMapping("/generalize/{projectId}") | ||||||
|     public R<String> getProjectGeneralize(@NotNull(message = "主键不能为空") |     public R<String> getProjectGeneralize(@NotNull(message = "主键不能为空") | ||||||
|                                           @PathVariable Long projectId) { |                                           @PathVariable Long projectId) { | ||||||
| //        BusProject project = projectService.getById(projectId); |  | ||||||
| //        if (project != null) { |  | ||||||
| //            Long goId = project.getGoId(); |  | ||||||
| //            if (goId != null) { |  | ||||||
| //                List<SysProjectIntroduce> sysProjectIntroduces = projectBigScreenMapper.selectByProjectId(goId); |  | ||||||
| //                if (CollUtil.isNotEmpty(sysProjectIntroduces)) { |  | ||||||
| //                    return R.ok(sysProjectIntroduces.getFirst().getRichText()); |  | ||||||
| //                } |  | ||||||
| //            } |  | ||||||
| //        } |  | ||||||
|         return R.ok(projectBigScreenService.getProjectGeneralize(projectId)); |         return R.ok(projectBigScreenService.getProjectGeneralize(projectId)); | ||||||
| //        return R.ok(); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @ -347,11 +266,11 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|             if (count > 0) { |             if (count > 0) { | ||||||
|                 throw new ServiceException("已存在同名萤石摄像头", HttpStatus.CONFLICT); |                 throw new ServiceException("已存在同名萤石摄像头", HttpStatus.CONFLICT); | ||||||
|             } |             } | ||||||
|             // todo 更新云端名称 |             // 更新云端名称 | ||||||
| /*            Boolean result = ys7Manager.updateDeviceName(one.getDeviceSerial(), deviceName); |             Boolean result = ys7Manager.updateDeviceName(one.getDeviceSerial(), deviceName); | ||||||
|             if (!result) { |             if (!result) { | ||||||
|                 throw new ServiceException("更新云端萤石摄像头名称异常", HttpStatus.ERROR); |                 throw new ServiceException("更新云端萤石摄像头名称异常", HttpStatus.ERROR); | ||||||
|             }*/ |             } | ||||||
|         } |         } | ||||||
|         return toAjax(othYs7DeviceService.updateById(ys7Device)); |         return toAjax(othYs7DeviceService.updateById(ys7Device)); | ||||||
|     } |     } | ||||||
| @ -409,7 +328,7 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|     @SaCheckPermission("project:big:screen") |     @SaCheckPermission("project:big:screen") | ||||||
|     @PostMapping("/updatePosition") |     @PostMapping("/updatePosition") | ||||||
|     public R<Void> updatePosition(@RequestBody ProjectUpdateDto dto) { |     public R<Void> updatePosition(@RequestBody ProjectUpdateDto dto) { | ||||||
|        return toAjax(projectService.updatePosition(dto)); |         return toAjax(projectService.updatePosition(dto)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -437,7 +356,7 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|      */ |      */ | ||||||
| //    @SaCheckPermission("project:big:screen") | //    @SaCheckPermission("project:big:screen") | ||||||
|     @GetMapping("/setWrjHc") |     @GetMapping("/setWrjHc") | ||||||
|     public void setWrjHc(){ |     public void setWrjHc() { | ||||||
|         projectBigScreenService.setWrjHc(); |         projectBigScreenService.setWrjHc(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -446,7 +365,7 @@ public class ProjectBigScreenController extends BaseController { | |||||||
|      */ |      */ | ||||||
| //    @SaCheckPermission("project:big:screen") | //    @SaCheckPermission("project:big:screen") | ||||||
|     @GetMapping("/getInfoData") |     @GetMapping("/getInfoData") | ||||||
|     public R<Map<String, Map<String, Object>>> getInfoData(TanchuangInfoReq req){ |     public R<Map<String, Map<String, Object>>> getInfoData(TanchuangInfoReq req) { | ||||||
|         return R.ok(projectBigScreenService.getInfoData(req)); |         return R.ok(projectBigScreenService.getInfoData(req)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | |||||||
| @ -25,4 +25,19 @@ public class OutConstructionAllValueVo implements Serializable { | |||||||
|      * 对甲产值 |      * 对甲产值 | ||||||
|      */ |      */ | ||||||
|     private BigDecimal ownerValue; |     private BigDecimal ownerValue; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 人工填报数量 | ||||||
|  |      */ | ||||||
|  |     private BigDecimal artificialNum; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 无人机识别数量 | ||||||
|  |      */ | ||||||
|  |     private BigDecimal uavNum; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 确认数量 | ||||||
|  |      */ | ||||||
|  |     private BigDecimal confirmNum; | ||||||
| } | } | ||||||
|  | |||||||
| @ -171,4 +171,9 @@ public class OutConstructionValueVo implements Serializable { | |||||||
|      * 工作类型 |      * 工作类型 | ||||||
|      */ |      */ | ||||||
|     private String workType; |     private String workType; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 计量方式(0无 1数量 2百分比) | ||||||
|  |      */ | ||||||
|  |     private String unitType; | ||||||
| } | } | ||||||
|  | |||||||
| @ -275,6 +275,27 @@ public class OutConstructionValueServiceImpl extends ServiceImpl<OutConstruction | |||||||
|             .reduce(BigDecimal.ZERO, BigDecimal::add) |             .reduce(BigDecimal.ZERO, BigDecimal::add) | ||||||
|             .setScale(4, RoundingMode.HALF_UP); |             .setScale(4, RoundingMode.HALF_UP); | ||||||
|         vo.setOwnerValue(ownerValue); |         vo.setOwnerValue(ownerValue); | ||||||
|  |         // 统计确认数量 | ||||||
|  |         BigDecimal confirmNum = list.stream() | ||||||
|  |             .map(OutConstructionValueVo::getConfirmNum) | ||||||
|  |             .filter(Objects::nonNull) | ||||||
|  |             .map(BigDecimal::valueOf) // 转换成 BigDecimal | ||||||
|  |             .reduce(BigDecimal.ZERO, BigDecimal::add); | ||||||
|  |         vo.setConfirmNum(confirmNum); | ||||||
|  |         // 统计人工填报数量 | ||||||
|  |         BigDecimal artificialNum = list.stream() | ||||||
|  |             .map(OutConstructionValueVo::getArtificialNum) | ||||||
|  |             .filter(Objects::nonNull) | ||||||
|  |             .map(BigDecimal::valueOf) // 转换成 BigDecimal | ||||||
|  |             .reduce(BigDecimal.ZERO, BigDecimal::add); | ||||||
|  |         vo.setArtificialNum(artificialNum); | ||||||
|  |         // 统计无人机识别数量 | ||||||
|  |         BigDecimal uavNum = list.stream() | ||||||
|  |             .map(OutConstructionValueVo::getUavNum) | ||||||
|  |             .filter(Objects::nonNull) | ||||||
|  |             .map(BigDecimal::valueOf) // 转换成 BigDecimal | ||||||
|  |             .reduce(BigDecimal.ZERO, BigDecimal::add); | ||||||
|  |         vo.setUavNum(uavNum); | ||||||
|         return vo; |         return vo; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -335,6 +356,7 @@ public class OutConstructionValueServiceImpl extends ServiceImpl<OutConstruction | |||||||
|         PgsProgressCategoryVo pgsProgressCategoryVo = pgsProgressCategoryService.queryById(vo.getProgressCategoryId()); |         PgsProgressCategoryVo pgsProgressCategoryVo = pgsProgressCategoryService.queryById(vo.getProgressCategoryId()); | ||||||
|         vo.setProgressCategoryName(pgsProgressCategoryVo.getName()); |         vo.setProgressCategoryName(pgsProgressCategoryVo.getName()); | ||||||
|         vo.setWorkType(pgsProgressCategoryVo.getWorkType()); |         vo.setWorkType(pgsProgressCategoryVo.getWorkType()); | ||||||
|  |         vo.setUnitType(pgsProgressCategoryVo.getUnitType()); | ||||||
|         PgsProgressCategoryVo pgsProgressCategoryVo1 = pgsProgressCategoryService.queryById(pgsProgressCategoryVo.getParentId()); |         PgsProgressCategoryVo pgsProgressCategoryVo1 = pgsProgressCategoryService.queryById(pgsProgressCategoryVo.getParentId()); | ||||||
|         vo.setCategoryId(pgsProgressCategoryVo1.getId()); |         vo.setCategoryId(pgsProgressCategoryVo1.getId()); | ||||||
|         vo.setCategoryName(pgsProgressCategoryVo1.getName()); |         vo.setCategoryName(pgsProgressCategoryVo1.getName()); | ||||||
|  | |||||||
| @ -3,6 +3,8 @@ package org.dromara.quality.domain.vo.qualityinspection; | |||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
| import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||||
|  | import org.dromara.common.translation.annotation.Translation; | ||||||
|  | import org.dromara.common.translation.constant.TransConstant; | ||||||
|  |  | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
|  |  | ||||||
| @ -23,6 +25,12 @@ public class QltQualityInspectionGis { | |||||||
|     /** |     /** | ||||||
|      * 巡检类型 |      * 巡检类型 | ||||||
|      */ |      */ | ||||||
|  |     private String inspectionType; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 巡检类型名称 | ||||||
|  |      */ | ||||||
|  |     @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "inspectionType", other = "quality_inspection_check_type") | ||||||
|     private String inspectionTypeLabel; |     private String inspectionTypeLabel; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|  | |||||||
| @ -27,7 +27,12 @@ public class QltQualityInspectionListGisVo implements Serializable { | |||||||
|     private Long count; |     private Long count; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 巡检情况 |      * 整改列表 | ||||||
|  |      */ | ||||||
|  |     private List<QltQualityInspectionGis> correctList; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 整改总数 | ||||||
|      */ |      */ | ||||||
|     private Long correctSituation; |     private Long correctSituation; | ||||||
|  |  | ||||||
|  | |||||||
| @ -36,10 +36,8 @@ import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionListG | |||||||
| import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionVo; | import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionVo; | ||||||
| import org.dromara.quality.mapper.QltQualityInspectionMapper; | import org.dromara.quality.mapper.QltQualityInspectionMapper; | ||||||
| import org.dromara.quality.service.IQltQualityInspectionService; | import org.dromara.quality.service.IQltQualityInspectionService; | ||||||
| import org.dromara.system.domain.vo.SysDictDataVo; |  | ||||||
| import org.dromara.system.domain.vo.SysOssVo; | import org.dromara.system.domain.vo.SysOssVo; | ||||||
| import org.dromara.system.service.ISysDictDataService; | import org.dromara.system.service.ISysDictDataService; | ||||||
| import org.dromara.system.service.ISysDictTypeService; |  | ||||||
| import org.dromara.system.service.ISysOssService; | import org.dromara.system.service.ISysOssService; | ||||||
| import org.dromara.system.service.ISysUserService; | import org.dromara.system.service.ISysUserService; | ||||||
| import org.dromara.websocket.ChatServerHandler; | import org.dromara.websocket.ChatServerHandler; | ||||||
| @ -83,9 +81,6 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe | |||||||
|     @Resource |     @Resource | ||||||
|     private ISysDictDataService dictDataService; |     private ISysDictDataService dictDataService; | ||||||
|  |  | ||||||
|     @Resource |  | ||||||
|     private ISysDictTypeService dictTypeService; |  | ||||||
|  |  | ||||||
|     @Resource |     @Resource | ||||||
|     private ChatServerHandler chatServerHandler; |     private ChatServerHandler chatServerHandler; | ||||||
|  |  | ||||||
| @ -148,39 +143,33 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe | |||||||
|         if (CollUtil.isEmpty(qualityInspectionList)) { |         if (CollUtil.isEmpty(qualityInspectionList)) { | ||||||
|             return gisVo; |             return gisVo; | ||||||
|         } |         } | ||||||
|         // 获取字典值 |         // 获取巡检情况 | ||||||
|         List<SysDictDataVo> dictDataVoList = dictTypeService.selectDictDataByType(QltQualityConstant.QUALITY_INSPECTION_CHECK_TYPE); |         List<QltQualityInspectionGis> list = qualityInspectionList.stream() | ||||||
|         Map<String, String> dictDataMap = dictDataVoList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel)); |  | ||||||
|         // 获取最新的检查工单 |  | ||||||
|         List<QltQualityInspection> topList = qualityInspectionList.stream() |  | ||||||
|             .sorted(Comparator.comparing(QltQualityInspection::getCreateTime).reversed()) |  | ||||||
|             .limit(Optional.ofNullable(req.getPageSize()).orElse(20)) |  | ||||||
|             .toList(); |  | ||||||
|         // 转换为 GIS 对象,并设置标签 |  | ||||||
|         List<QltQualityInspectionGis> gisList = topList.stream().map(qualityInspection -> { |  | ||||||
|             QltQualityInspectionGis gis = new QltQualityInspectionGis(); |  | ||||||
|             BeanUtils.copyProperties(qualityInspection, gis); |  | ||||||
|             String label = dictDataMap.get(qualityInspection.getInspectionType()); |  | ||||||
|             if (label != null) { |  | ||||||
|                 gis.setInspectionTypeLabel(label); |  | ||||||
|             } |  | ||||||
|             return gis; |  | ||||||
|         }).toList(); |  | ||||||
|         // 获取整改情况 |  | ||||||
|         long passCount = 0L; |  | ||||||
|         for (QltQualityInspection qualityInspection : qualityInspectionList) { |  | ||||||
|             if ("1".equals(qualityInspection.getIsReply())) { |  | ||||||
|                 if (!qualityInspection.getInspectionStatus().equals(QltQualityInspectionStatusEnum.INFORM.getValue())) { |  | ||||||
|                     passCount++; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         gisVo.setList(gisList); |  | ||||||
|         gisVo.setCount((long) qualityInspectionList.stream() |  | ||||||
|             .filter(q -> "2".equals(q.getIsReply())) |             .filter(q -> "2".equals(q.getIsReply())) | ||||||
|             .toList() |             .toList().stream().map(q -> { | ||||||
|             .size()); |                 QltQualityInspectionGis gis = new QltQualityInspectionGis(); | ||||||
|         gisVo.setCorrectSituation(passCount); |                 BeanUtils.copyProperties(q, gis); | ||||||
|  |                 return gis; | ||||||
|  |             }).toList(); | ||||||
|  |         gisVo.setList(list.stream() | ||||||
|  |             .sorted(Comparator.comparing(QltQualityInspectionGis::getCreateTime).reversed()) | ||||||
|  |             .limit(Optional.ofNullable(req.getPageSize()).orElse(20)) | ||||||
|  |             .toList()); | ||||||
|  |         gisVo.setCount((long) list.size()); | ||||||
|  |         // 获取整改情况 | ||||||
|  |         List<QltQualityInspectionGis> correctList = qualityInspectionList.stream() | ||||||
|  |             .filter(q -> "1".equals(q.getIsReply())) | ||||||
|  |             .filter(q -> !q.getInspectionStatus().equals(QltQualityInspectionStatusEnum.INFORM.getValue())) | ||||||
|  |             .toList().stream().map(q -> { | ||||||
|  |                 QltQualityInspectionGis gis = new QltQualityInspectionGis(); | ||||||
|  |                 BeanUtils.copyProperties(q, gis); | ||||||
|  |                 return gis; | ||||||
|  |             }).toList(); | ||||||
|  |         gisVo.setCorrectSituation((long) correctList.size()); | ||||||
|  |         gisVo.setCorrectList(correctList.stream() | ||||||
|  |             .sorted(Comparator.comparing(QltQualityInspectionGis::getCreateTime).reversed()) | ||||||
|  |             .limit(Optional.ofNullable(req.getPageSize()).orElse(20)) | ||||||
|  |             .toList()); | ||||||
| //        gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / qualityInspectionList.size())); | //        gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / qualityInspectionList.size())); | ||||||
|         return gisVo; |         return gisVo; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -3,7 +3,6 @@ package org.dromara.safety.controller; | |||||||
| import cn.dev33.satoken.annotation.SaCheckPermission; | import cn.dev33.satoken.annotation.SaCheckPermission; | ||||||
| import jakarta.annotation.Resource; | import jakarta.annotation.Resource; | ||||||
| import jakarta.servlet.http.HttpServletResponse; | import jakarta.servlet.http.HttpServletResponse; | ||||||
| import jakarta.validation.constraints.NotEmpty; |  | ||||||
| import jakarta.validation.constraints.NotNull; | import jakarta.validation.constraints.NotNull; | ||||||
| import org.dromara.common.core.domain.R; | import org.dromara.common.core.domain.R; | ||||||
| import org.dromara.common.excel.utils.ExcelUtil; | import org.dromara.common.excel.utils.ExcelUtil; | ||||||
| @ -74,7 +73,7 @@ public class HseRecognizeRecordController extends BaseController { | |||||||
|     @SaCheckPermission("safety:recognizeRecord:remove") |     @SaCheckPermission("safety:recognizeRecord:remove") | ||||||
|     @Log(title = "识别记录", businessType = BusinessType.DELETE) |     @Log(title = "识别记录", businessType = BusinessType.DELETE) | ||||||
|     @DeleteMapping("/{id}") |     @DeleteMapping("/{id}") | ||||||
|     public R<Void> remove(@NotEmpty(message = "主键不能为空") |     public R<Void> remove(@NotNull(message = "主键不能为空") | ||||||
|                           @PathVariable Long id) { |                           @PathVariable Long id) { | ||||||
|         return toAjax(recognizeRecordService.deleteById(id)); |         return toAjax(recognizeRecordService.deleteById(id)); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -0,0 +1,53 @@ | |||||||
|  | package org.dromara.safety.domain.vo.safetyinspection; | ||||||
|  |  | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | import java.io.Serial; | ||||||
|  | import java.io.Serializable; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * @author lilemy | ||||||
|  |  * @date 2025-10-17 09:26 | ||||||
|  |  */ | ||||||
|  | @Data | ||||||
|  | public class HseSafetyInspectionGis implements Serializable { | ||||||
|  |  | ||||||
|  |     @Serial | ||||||
|  |     private static final long serialVersionUID = 3098473090533804934L; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 主键ID | ||||||
|  |      */ | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 项目ID | ||||||
|  |      */ | ||||||
|  |     private Long projectId; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 检查类型 | ||||||
|  |      */ | ||||||
|  |     private String checkType; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 检查项目 | ||||||
|  |      */ | ||||||
|  |     private String checkProject; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 违章类型 | ||||||
|  |      */ | ||||||
|  |     private String violationType; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 巡检结果 | ||||||
|  |      */ | ||||||
|  |     private String inspectionResult; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 工单状态(1通知 2整改 3复查) | ||||||
|  |      */ | ||||||
|  |     private String status; | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -27,11 +27,21 @@ public class HseSafetyInspectionListGisVo implements Serializable { | |||||||
|      */ |      */ | ||||||
|     private Long teamMeetingCount; |     private Long teamMeetingCount; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 安全巡检列表 | ||||||
|  |      */ | ||||||
|  |     private List<HseSafetyInspectionGis> safetyInspectionList; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 安全巡检总数 |      * 安全巡检总数 | ||||||
|      */ |      */ | ||||||
|     private Long safetyInspectionCount; |     private Long safetyInspectionCount; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 整改情况列表 | ||||||
|  |      */ | ||||||
|  |     private List<HseSafetyInspectionGis> correctSituationList; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 整改情况总数 |      * 整改情况总数 | ||||||
|      */ |      */ | ||||||
|  | |||||||
| @ -35,6 +35,7 @@ import org.dromara.safety.domain.HseSafetyInspection; | |||||||
| import org.dromara.safety.domain.HseTeamMeeting; | import org.dromara.safety.domain.HseTeamMeeting; | ||||||
| import org.dromara.safety.domain.dto.safetyinspection.*; | import org.dromara.safety.domain.dto.safetyinspection.*; | ||||||
| import org.dromara.safety.domain.enums.HseSafetyInspectionStatusEnum; | import org.dromara.safety.domain.enums.HseSafetyInspectionStatusEnum; | ||||||
|  | import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionGis; | ||||||
| import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionListGisVo; | import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionListGisVo; | ||||||
| import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionVo; | import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionVo; | ||||||
| import org.dromara.safety.domain.vo.teammeeting.HseTeamMeetingGis; | import org.dromara.safety.domain.vo.teammeeting.HseTeamMeetingGis; | ||||||
| @ -229,11 +230,28 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl<HseSafetyInspect | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         List<HseSafetyInspection> passList = safetyInspectionList.stream() | ||||||
|  |             .filter(q -> "1".equals(q.getIsReply())) | ||||||
|  |             .filter(q -> !q.getStatus().equals(HseSafetyInspectionStatusEnum.INFORM.getValue())) | ||||||
|  |             .toList(); | ||||||
|  |         List<HseSafetyInspectionGis> pass = passList.stream().map(s -> { | ||||||
|  |             HseSafetyInspectionGis gis = new HseSafetyInspectionGis(); | ||||||
|  |             BeanUtils.copyProperties(s, gis); | ||||||
|  |             return gis; | ||||||
|  |         }).toList(); | ||||||
|         gisVo.setTeamMeetingCount((long) teamMeetings.size()); |         gisVo.setTeamMeetingCount((long) teamMeetings.size()); | ||||||
|         gisVo.setSafetyInspectionCount((long) safetyInspectionList.stream() |         List<HseSafetyInspectionGis> inspections = safetyInspectionList.stream() | ||||||
|             .filter(q -> "2".equals(q.getIsReply())) |             .filter(q -> "2".equals(q.getIsReply())) | ||||||
|             .toList().size()); |             .toList() | ||||||
|  |             .stream().map(p -> { | ||||||
|  |                 HseSafetyInspectionGis gis = new HseSafetyInspectionGis(); | ||||||
|  |                 BeanUtils.copyProperties(p, gis); | ||||||
|  |                 return gis; | ||||||
|  |             }).toList(); | ||||||
|  |         gisVo.setSafetyInspectionCount((long) inspections.size()); | ||||||
|  |         gisVo.setSafetyInspectionList(inspections); | ||||||
|         gisVo.setCorrectSituationCount(passCount); |         gisVo.setCorrectSituationCount(passCount); | ||||||
|  |         gisVo.setCorrectSituationList(pass); | ||||||
|         gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / safetyInspectionList.size())); |         gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / safetyInspectionList.size())); | ||||||
|         return gisVo; |         return gisVo; | ||||||
|     } |     } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user