liujie
2026-04-09 f4f653b1f69eae7eee5249b9f41e43bdf3239aa1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
@@ -3,8 +3,6 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.StoryListQuery;
@@ -15,13 +13,10 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
/**
@@ -32,12 +27,10 @@
 */
@RestController
@RequestMapping("/dashboard-statistics")
@Api(tags = "数据统计面板")
@Api(tags = "首页")
@RequiredArgsConstructor(onConstructor_ = @Lazy)
public class DashboardStatisticsController {
    @Autowired
    private ScreenAccountService screenAccountService;
    @Autowired
    private TokenService tokenService;
@@ -54,6 +47,8 @@
    @Autowired
    private AccidentBriefService accidentBriefService;
    @Autowired
    private AccidentClassificationService accidentClassificationService;
    @ApiOperation("获取当前登录信息")
@@ -61,6 +56,7 @@
    public R<ScreenUserVo> getLoginInfo(Integer type, Integer id) {
        ScreenUserVo screenUserVo = new ScreenUserVo();
        screenUserVo.setType(type);
        if(type!=null && id !=null){
            if(type==1){
@@ -68,20 +64,46 @@
                if(client==null){
                    return R.fail("委托方不存在");
                }
                screenUserVo.setClientId(id);
                ClientParam param = clientParamService.getOne(new LambdaQueryWrapper<ClientParam>().eq(ClientParam::getClientId, client.getId()));
                if(param!=null){
                    screenUserVo.setLogo(param.getLogo());
                    screenUserVo.setName(param.getName());
                    screenUserVo.setPermissionClient(param.getPermissionClient());
                    screenUserVo.setPermissionProject(param.getPermissionProject());
                    screenUserVo.setCommentType(param.getCommentType());
                    screenUserVo.setSafetyId(param.getSafetyId());
                    String name = clientParamService.getTemplateName(param.getSafetyId());
                    screenUserVo.setSafetyName(name);
                    screenUserVo.setDeviceTemplateId(param.getDeviceTemplateId());
                    screenUserVo.setDeviceTemplateName(clientParamService.getTemplateName(param.getDeviceTemplateId()));
                    screenUserVo.setBigHiddenDanger(param.getBigHiddenDanger());
                    screenUserVo.setGeneralHiddenDanger(param.getGeneralHiddenDanger());
                }
            }else if(type==2){
                Project project = projectService.getById(id);
                if(project==null){
                    return R.fail("项目不存在");
                }
                screenUserVo.setName(project.getName());
                Client client = clientService.getById(project.getClientId());
                screenUserVo.setClientId(client.getId());
                ClientParam param = clientParamService.getOne(new LambdaQueryWrapper<ClientParam>().eq(ClientParam::getClientId, client.getId()));
                if(param!=null){
                    screenUserVo.setLogo(param.getLogo());
                    screenUserVo.setName(param.getName());
                    screenUserVo.setCommentType(param.getCommentType());
                    screenUserVo.setSafetyId(param.getSafetyId());
                    String name = clientParamService.getTemplateName(param.getSafetyId());
                    screenUserVo.setSafetyName(name);
                    screenUserVo.setDeviceTemplateId(param.getDeviceTemplateId());
                    String name1 = clientParamService.getTemplateName(param.getDeviceTemplateId());
                    screenUserVo.setDeviceTemplateName(name1);
                    screenUserVo.setBigHiddenDanger(param.getBigHiddenDanger());
                    screenUserVo.setGeneralHiddenDanger(param.getGeneralHiddenDanger());
                }
                screenUserVo.setProjectName(project.getName());
                screenUserVo.setPermissionProject(project.getPermission());
            }
@@ -94,10 +116,48 @@
    @ApiOperation(value = "获取故事简讯列表",response = AccidentBrief.class)
    @PostMapping("/getStoryList")
    public R<Page<AccidentBrief>> getStoryList(@RequestBody StoryListQuery query) {
    @PostMapping("/getStoryPage")
    public R<Page<AccidentBrief>> getStoryPage(@RequestBody StoryListQuery query) {
        Page<AccidentBrief> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<AccidentClassification> list = accidentClassificationService.list(new LambdaQueryWrapper<AccidentClassification>().eq(AccidentClassification::getDeleted, false));
        LambdaQueryWrapper<AccidentBrief> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(AccidentBrief::getState,1);
        wrapper.eq(AccidentBrief::getDeleted,false);
        if(query.getCity()!=null && !query.getCity().isEmpty()){
            wrapper.eq(AccidentBrief::getCity, query.getCity());
        }
        if(query.getProvince()!=null && !query.getProvince().isEmpty()){
            wrapper.eq(AccidentBrief::getProvince, query.getProvince());
        }
        if(query.getArea()!=null && !query.getArea().isEmpty()){
            wrapper.eq(AccidentBrief::getArea, query.getArea());
        }
        if(query.getClassifyId()!=null){
            wrapper.eq(AccidentBrief::getClassifyId, query.getClassifyId());
        }
        if(query.getTime()!=null && !query.getTime().isEmpty()){
            String sTime = query.getTime().split(" - ")[0]+" 00:00:00";
            String eTime = query.getTime().split(" - ")[1]+" 23:59:59";
            wrapper.between(AccidentBrief::getTime,sTime,eTime);
        }
        if(query.getContent()!=null && !query.getContent().isEmpty()){
            wrapper.like(AccidentBrief::getContent, query.getContent());
        }
        wrapper.orderByDesc(AccidentBrief::getTime);
        Page<AccidentBrief> accidentBriefPage = accidentBriefService.page(page, wrapper);
        accidentBriefPage.getRecords().forEach(item->{
            item.setClassifyName(list.stream().filter(classify->classify.getId().equals(item.getClassifyId())).findFirst().get().getName());
        });
        return R.ok(accidentBriefPage);
    }
    @ApiOperation(value = "获取故事简讯列表-不分页",response = AccidentBrief.class)
    @PostMapping("/getStoryList")
    public R<List<AccidentBrief>> getStoryList(@RequestBody StoryListQuery query) {
        List<AccidentClassification> list = accidentClassificationService.list(new LambdaQueryWrapper<AccidentClassification>().eq(AccidentClassification::getDeleted, false));
        LambdaQueryWrapper<AccidentBrief> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(AccidentBrief::getState,1);
        if(query.getCity()!=null && !query.getCity().isEmpty()){
@@ -115,7 +175,10 @@
            wrapper.like(AccidentBrief::getContent, query.getContent());
        }
        wrapper.orderByDesc(AccidentBrief::getTime);
        Page<AccidentBrief> accidentBriefPage = accidentBriefService.page(page, wrapper);
        List<AccidentBrief> accidentBriefPage = accidentBriefService.list( wrapper);
        accidentBriefPage.forEach(item->{
            item.setClassifyName(list.stream().filter(classify -> classify.getId().equals(item.getClassifyId())).findFirst().orElse(new AccidentClassification()).getName());
        });
        return R.ok(accidentBriefPage);
    }
@@ -127,6 +190,13 @@
        return R.ok(accidentBrief);
    }
    @ApiOperation(value = "获取故事简讯详情分类",response = AccidentClassification.class)
    @GetMapping("/getStoryClassify")
    public R<List<AccidentClassification>> getStoryClassify() {
        List<AccidentClassification> list = accidentClassificationService.list(new LambdaQueryWrapper<AccidentClassification>().eq(AccidentClassification::getDeleted, false));
        return R.ok(list);
    }
    /**
     * 获取委托方大屏首页统计数据
     *
@@ -134,7 +204,7 @@
     * @return 统计数据
     */
    @PostMapping("/index")
    @ApiOperation("获取委托方大屏首页统计数据")
    @ApiOperation(value = "获取委托方大屏首页统计数据",tags = {"委托方端"})
    public R<ClientDashboardVO> index(@RequestBody ClientDashboardQuery query) {
        ClientDashboardVO dashboard = clientService.getClientDashboard(query);
        return R.ok(dashboard);