sgj
2026-01-17 da4b59346969e1622a66ce9fde637b1fac1c501b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.fzzy.igds;
 
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.fzzy.igds.camera.ApiCameraManager;
import com.fzzy.igds.camera.data.ApiCameraData;
import com.fzzy.igds.camera.data.ApiCameraResp;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.domain.Camera;
import com.fzzy.igds.service.SecCameraService;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * @Description
 * @Author CZT
 * @Date 2025/11/28 10:48
 */
@Slf4j
@Component
public class SecCameraPR {
 
    @Autowired
    private SecCameraService secCameraService;
    @Resource
    private ApiCameraManager apiCameraManager;
 
 
    /**
     * secCameraPR#listPageCamera 根据条件获取所有的摄像机配置信息
     *
     * @param param
     */
    @DataProvider
    public void listPageCamera(Page<Camera> page, Camera param) {
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<Camera> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
 
        if (null == param) {
            param = new Camera();
        }
        Camera camera = new Camera();
        BeanUtils.copyProperties(param, camera);
        secCameraService.listPageCamera(corePage, camera);
 
        // 重新封装
        page.setEntities(corePage.getRecords());
        page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
    }
 
    /**
     * secCameraPR#listCamera 获取所有的摄像机配置信息
     * ${dorado.getDataProvider("secCameraPR#listCamera").getResult()}
     *
     * @return
     */
    @DataProvider
    public List<Camera> listCamera(String deptId) {
        return secCameraService.listCamera(null, deptId);
    }
 
    /**
     * secCameraPR#saveCamera
     *
     * @param data
     */
    @DataResolver
    public void saveCamera(Camera data) {
        Camera secCamera = new Camera();
        BeanUtils.copyProperties(data, secCamera);
        secCameraService.saveCamera(secCamera);
    }
 
    /**
     * secCameraPR#delCamera
     *
     * @param data
     * @return
     */
    @Expose
    public String delCamera(Camera data) {
        Camera secCamera = new Camera();
        BeanUtils.copyProperties(data, secCamera);
        return secCameraService.delCamera(secCamera);
    }
 
    /***
     * secCameraPR#refreshCache
     * @return
     */
    @Expose
    public String refreshCache() {
        secCameraService.refreshCache(ContextUtil.getCompanyId());
        return null;
    }
 
 
    /***
     * securityPR#flushByMedia
     *
     * 根据库区编码及播放方式,同步监控信息
     * @return
     */
    @DataResolver
    public String flushByMedia(Camera param) {
 
        if (StringUtils.isBlank(param.getPlayType())) {
            return "没有选择播放方式,不执行!";
        }
        if (StringUtils.isBlank(param.getDeptId())) {
            return "没有同步库区,不执行1";
        }
        try {
            //通过统一入口获取播放地址
            ApiCameraData apiCameraData = new ApiCameraData();
            apiCameraData.setCompanyId(ContextUtil.getCompanyId());
            apiCameraData.setDeptId(param.getDeptId());
 
            //根据播放方式获取对应的播放地址
            List<Camera> cameras = apiCameraManager.getApiCameraService(param.getPlayType()).searchCamera(apiCameraData);
            if (cameras == null) {
                return "同步失败!";
            } else {
                return null;
            }
 
        } catch (Exception e) {
            log.error("-----同步摄像头列表失败-----原因={}", e.toString());
            return "远程接口服务异常,请核查后重试!";
        }
 
    }
 
}