diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java index d394837d8..c027a33b0 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java @@ -23,9 +23,14 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import com.bsd.pjcloud.integrated.vo.feedback.FeedbackScreenVo; +import java.util.stream.Collectors; +import java.util.HashMap; import java.util.List; import java.util.Objects; +import java.util.Map; +import com.bsd.pjcloud.admin.api.entity.SysDictItem; /** * 意见反馈 @@ -183,4 +188,35 @@ public class FeedbackController { public R getFeedbackType() { return R.ok(remoteDictService.getDictByType("feedback_type")); } + + /** + * 大屏反馈简要列表 + * 只返回标题、反馈类型(字典转中文)、反馈时间,最多10条 + */ + @GetMapping("/screen/list") + @Operation(summary = "大屏反馈简要列表", description = "大屏只展示标题、反馈类型、反馈时间") + public R> getScreenFeedbackList() { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.orderByDesc(FeedbackEntity::getCreateTime); + wrapper.last("limit 10"); + List list = feedbackService.list(wrapper); + + // 获取字典(直接强转SysDictItem) + List dictList = remoteDictService.getDictByType("feedback_type").getData(); + Map typeMap = new HashMap<>(); + if (dictList != null) { + for (SysDictItem item : dictList) { + typeMap.put(item.getItemValue(), item.getLabel()); + } + } + + List voList = list.stream().map(e -> { + FeedbackScreenVo vo = new FeedbackScreenVo(); + vo.setTitle(e.getTitle()); + vo.setTypeLabel(typeMap.getOrDefault(e.getType(), e.getType())); + vo.setCreateTime(e.getCreateTime()); + return vo; + }).collect(Collectors.toList()); + return R.ok(voList); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/LostAndFoundController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/LostAndFoundController.java index 353939d51..0fc6c68bf 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/LostAndFoundController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/LostAndFoundController.java @@ -22,6 +22,8 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import com.bsd.pjcloud.integrated.vo.lostandfound.LostAndFoundScreenVo; +import java.util.stream.Collectors; import java.util.List; import java.util.Objects; @@ -149,4 +151,27 @@ public class LostAndFoundController { return R.ok(lostAndFoundPageVoPage); } + /** + * 大屏失物招领简要列表 + * 只返回未认领的标题、发现地点、发现日期,最多10条 + */ + @GetMapping("/screen/list") + @Operation(summary = "大屏失物招领简要列表", description = "大屏只展示标题、发现地点、发现日期") + public R> getScreenLostAndFoundList() { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + // 只查未认领(假设未认领状态为0,如有不同请调整) + wrapper.eq(LostAndFoundEntity::getStatus, "0"); + wrapper.orderByDesc(LostAndFoundEntity::getCreateTime); + wrapper.last("limit 10"); + List list = lostAndFoundService.list(wrapper); + List voList = list.stream().map(e -> { + LostAndFoundScreenVo vo = new LostAndFoundScreenVo(); + vo.setTitle(e.getTitle()); + vo.setFoundLocation(e.getLocation()); + vo.setFoundDate(e.getDateFound() ); + return vo; + }).collect(Collectors.toList()); + return R.ok(voList); + } + } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java index a15882e65..812f488ac 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java @@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.admin.api.feign.RemoteDictService; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; @@ -23,6 +24,12 @@ import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import com.bsd.pjcloud.integrated.dto.MaintenanceOrderAppCreateDTO; +import com.bsd.pjcloud.integrated.vo.maintenance.MaintenanceOrderScreenVo; +import com.bsd.pjcloud.admin.api.entity.SysDictItem; + +import java.util.Map; +import java.util.stream.Collectors; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -42,6 +49,8 @@ public class MaintenanceOrderController { private final MaintenanceOrderService maintenanceOrderService; + private final RemoteDictService remoteDictService; + /** * 分页查询 * @param page 分页对象 @@ -173,4 +182,36 @@ public class MaintenanceOrderController { } return R.ok(entity); } + + /** + * 大屏维修工单简要列表 + * 只返回标题、发现日期、发现地点、紧急程度(字典转中文),最多10条 + */ + @GetMapping("/screen/list") + @Operation(summary = "大屏维修工单简要列表", description = "大屏只展示标题、发现日期、发现地点、紧急程度") + public R> getScreenMaintenanceOrderList() { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.orderByDesc(MaintenanceOrderEntity::getDateFound); + wrapper.last("limit 10"); + List list = maintenanceOrderService.list(wrapper); + + // 获取紧急程度字典 + List dictList = remoteDictService.getDictByType("maintenance_urgency").getData(); + Map urgencyMap = new HashMap<>(); + if (dictList != null) { + for (SysDictItem item : dictList) { + urgencyMap.put(item.getItemValue(), item.getLabel()); + } + } + + List voList = list.stream().map(e -> { + MaintenanceOrderScreenVo vo = new MaintenanceOrderScreenVo(); + vo.setTitle(e.getTitle()); + vo.setDateFound(e.getDateFound()); + vo.setLocation(e.getLocation()); + vo.setUrgencyLabel(urgencyMap.getOrDefault(e.getUrgency(), e.getUrgency())); + return vo; + }).collect(Collectors.toList()); + return R.ok(voList); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/NoticeController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/NoticeController.java index 5d695e2cd..8b5b3d758 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/NoticeController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/NoticeController.java @@ -20,6 +20,8 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import com.bsd.pjcloud.integrated.vo.notice.NoticeScreenVo; +import java.util.stream.Collectors; import java.util.List; import java.util.Objects; @@ -51,7 +53,7 @@ public class NoticeController { public R getNoticePage(@ParameterObject Page page, @ParameterObject NoticeEntity notice) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.like(StrUtil.isNotBlank(notice.getTitle()),NoticeEntity::getTitle,notice.getTitle()); - return R.ok(noticeService.page(page, wrapper)); + return R.ok(noticeService.pageScope(page, wrapper)); } @@ -168,4 +170,25 @@ public class NoticeController { noticeService.updateById(notice); return R.ok(); } + + /** + * 大屏通知简要列表 + * 只返回标题和创建时间,最多10条 + */ + @GetMapping("/screen/list") + @Operation(summary = "大屏通知简要列表", description = "大屏只展示标题和创建时间") + public R> getScreenNoticeList() { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(NoticeEntity::getStatus, "0"); + wrapper.orderByDesc(NoticeEntity::getCreateTime); + wrapper.last("limit 10"); + List list = noticeService.list(wrapper); + List voList = list.stream().map(e -> { + NoticeScreenVo vo = new NoticeScreenVo(); + vo.setTitle(e.getTitle()); + vo.setCreateTime(e.getCreateTime()); + return vo; + }).collect(Collectors.toList()); + return R.ok(voList); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/NoticeService.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/NoticeService.java index 1ca066a74..229765c6c 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/NoticeService.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/NoticeService.java @@ -1,8 +1,18 @@ package com.bsd.pjcloud.integrated.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.integrated.entity.NoticeEntity; public interface NoticeService extends IService { + /** + * 分页查询 + * + * @param page + * @param wrapper + * @return + */ + Object pageScope(Page page, LambdaQueryWrapper wrapper); } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/NoticeServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/NoticeServiceImpl.java index d7048b1ff..b7ce36102 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/NoticeServiceImpl.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/NoticeServiceImpl.java @@ -1,6 +1,9 @@ package com.bsd.pjcloud.integrated.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.integrated.entity.NoticeEntity; import com.bsd.pjcloud.integrated.mapper.NoticeMapper; import com.bsd.pjcloud.integrated.service.NoticeService; @@ -13,4 +16,8 @@ import org.springframework.stereotype.Service; */ @Service public class NoticeServiceImpl extends ServiceImpl implements NoticeService { + @Override + public Object pageScope(Page page, LambdaQueryWrapper wrapper) { + return baseMapper.selectPage(page, wrapper); + } } \ No newline at end of file