czt
2025-11-28 dec93e6c6923238869a5accf278028cdd6a18bec
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
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.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.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * @Description
 * @Author CZT
 * @Date 2025/11/28 10:48
 */
@Slf4j
@Component
public class SecCameraPR {
 
    @Autowired
    private SecCameraService secCameraService;
 
    /**
     * secCameraPR#listPageCamera 根据条件获取所有的摄像机配置信息
     * 
     * @param param
     */
    @DataProvider
    public void listPageCamera(Page<Camera> page, Map<String, Object> param) {
        org.springframework.data.domain.Page<Camera> japPage = pageCamera(page, param);
        page.setEntityCount((int) japPage.getTotalElements());
        page.setEntities(japPage.getContent());
    }
 
    public org.springframework.data.domain.Page<Camera> pageCamera(Page<Camera> page, Map<String, Object> param) {
        if (null == param) {
            param = new HashMap<>();
        }
        Map<String, Object> finalParam = param;
 
        //多参数分页查询
        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.ASC, Camera.SORT_PROP);
        Specification<Camera> specification = new Specification<Camera>() {
            private static final long serialVersionUID = 1L;
 
            public Predicate toPredicate(Root<Camera> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                List<Predicate> predicates = new ArrayList<Predicate>(); //所有的断言
 
                Predicate predicate1 = cb.equal(root.get("companyId"), ContextUtil.getCompanyId());
                predicates.add(predicate1);
                Predicate predicate2 = cb.equal(root.get("deptId"), ContextUtil.subDeptId(null));
                predicates.add(predicate2);
 
                String key = (String) finalParam.get("bizType");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate3 = cb.equal(root.get("bizType"), key);
                    predicates.add(predicate3);
                }
                key = (String) finalParam.get("name");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate4 = cb.like(root.get("name"), "%" + key + "%");
                    predicates.add(predicate4);
                }
                key = (String) finalParam.get("brand");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate5 = cb.equal(root.get("brand"), key);
                    predicates.add(predicate5);
                }
                key = (String) finalParam.get("spjklx");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate5 = cb.equal(root.get("spjklx"), key);
                    predicates.add(predicate5);
                }
                key = (String) finalParam.get("spdwlx");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate5 = cb.equal(root.get("spdwlx"), key);
                    predicates.add(predicate5);
                }
                return cb.and(predicates.toArray(new Predicate[0]));
            }
        };
        org.springframework.data.domain.Page<Camera> japPage = secCameraService.findAll(specification, pageable);
        return japPage;
    }
 
    /**
     * secCameraPR#listCamera 获取所有的摄像机配置信息
     * ${dorado.getDataProvider("secCameraPR#listCamera").getResult()}
     * @return
     */
    @DataProvider
    public List<Camera> listCamera() {
        return secCameraService.listCamera();
    }
 
    /**
     * 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
     */
    @Expose
    public String flushByMedia(String playType) {
 
        if (null == playType){
            return "没有选择播放方式,执行失败";
        }
 
//        try {
//            if (CameraUtil.PLAY_TYPE_MEDIA_HIK.equals(playType)) {
//                ApiCameraData apiCameraData = new ApiCameraData();
//                apiCameraData.setCompanyId(ContextUtil.getCompanyId());
//                apiCameraData.setDeptId(ContextUtil.subDeptId(null));
//                apiCameraData.setPlayType(playType);
//                List<SecCameraDto> list = apiCameraManager.getApiCameraService(playType).searchCamera(apiCameraData);
//                if(list == null){
//                    return "同步失败!";
//                }else {
//                    return "同步成功!";
//                }
//            }
            return "当前播放方式没有此功能!";
//
//        }catch (Exception e){
//            log.error("-----同步摄像头列表失败-----原因={}", e.toString());
//            return "远程接口服务异常,请核查后重试!";
//        }
 
    }
 
}