吉安感知网项目-后端
xiebin
2026-01-06 d207a86cdf1ab52ef8cb7cd83bad8fceab8038cf
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
package org.sxkj.resource.feign;
 
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.oss.model.BladeFile;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.sxkj.resource.entity.Attach;
import org.sxkj.resource.model.FeignSupportConfig;
import org.sxkj.resource.vo.AttachTypeStatisticsVO;
import org.sxkj.resource.vo.AttachVO;
 
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * IAttachClient
 *
 * @author Chill
 */
@FeignClient(
    value = AppConstant.APPLICATION_RESOURCE_NAME,
    fallback = IAttachClientFallback.class,
    configuration = FeignSupportConfig.class,
    contextId = "IAttachClient"
)
public interface IAttachClient {
    String API_PREFIX = "/client";
    String SAVE_ATTACH_INFO = API_PREFIX + "/save-attach-info";
    String SAVE_ATTACH_FILE = API_PREFIX + "/save-attach-file";
    String SAVE_ATTACH_FILE_2 = API_PREFIX + "/save-attach-file_2";
    String PUT_FILE = API_PREFIX + "/put-file";
    String GET_ATTACH_NAMES = API_PREFIX + "/get_attach_names";
    String GET_ATTACH_METADATA_NAMES = API_PREFIX + "/get_attach_metadata";
    String FIND_RESULT_NUM_BY_JOB_ID = API_PREFIX + "/findResultNumByJobId";
    String FIND_ATTACH_INFO_BY_YESTERDAY = API_PREFIX + "/findAttachInfoByYesterday";
    String SET_YESTERDAY_VIDEO = API_PREFIX + "/setYesterdayVideo";
    String GET_ATTACH_BY_MD5 = API_PREFIX + "/get_attach_by_md5";
    String GET_ATTACH_BY_ID = API_PREFIX + "/get_attach_by_id";
    String GET_ATTACH_DATA = API_PREFIX + "/get_attach_data";
    String DELETE_ATTACH = API_PREFIX + "/delete-attach";
    // calculateTheThreeDimensionalArea
    String CALCULATE_THE_THREE_DIMENSIONAL_AREA = API_PREFIX + "/calculateTheThreeDimensionalArea";
 
    /**
     * 保存附件表信息
     *
     * @param attach 附件表信息
     * @return R
     */
    @PostMapping(value = SAVE_ATTACH_INFO, consumes = MediaType.APPLICATION_JSON_VALUE)
    Boolean saveAttachInfo(@RequestBody Attach attach);
 
    /**
     * 获取附件表信息
     *
     * @param jobs 附件表信息
     * @return R
     */
    @PostMapping(value = GET_ATTACH_DATA, consumes = MediaType.APPLICATION_JSON_VALUE)
    List<AttachVO> getAttachData(@RequestParam("jobs") String jobs);
    /**
     * 附件上传并保存
     *
     * @param file
     * @param fileName
     * @return
     * @throws IOException
     */
    @PostMapping(value = SAVE_ATTACH_FILE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    BladeFile saveAttachFile(@RequestPart MultipartFile file, @RequestParam String fileName) throws IOException;
 
    /**
     * 附件上传并保存
     *
     * @param file
     * @param fileName
     * @return
     * @throws IOException
     */
    @PostMapping(value = SAVE_ATTACH_FILE_2, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    BladeFile saveAttachFile(@RequestPart MultipartFile file, @RequestParam String fileName, @RequestParam Integer type) throws IOException;
 
    /**
     * 附件上传
     *
     * @param file
     * @param fileName
     * @return
     * @throws IOException
     */
    @PostMapping(value = PUT_FILE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    BladeFile putFile(@RequestPart MultipartFile file, @RequestParam String fileName) throws IOException;
 
    @PostMapping(GET_ATTACH_NAMES)
    List<String> getAttachNames(@RequestBody List<Long> ids);
 
    @PostMapping(GET_ATTACH_METADATA_NAMES)
    Map<String, Object> findMetaDataByName(@RequestBody List<String> names);
 
 
    /**
     * 查询成果数量
     *
     * @param jobId 任务id
     * @return 成果数量
     */
    @GetMapping(FIND_RESULT_NUM_BY_JOB_ID)
    Long findResultNumByJobId(@RequestParam String jobId);
 
    /**
     * 通过md5查询附件信息
     */
    @GetMapping(GET_ATTACH_BY_MD5)
    public Attach getAttachByMd5(@RequestParam String md5);
 
    /**
     * 获取昨日视频处理
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     */
    @GetMapping(SET_YESTERDAY_VIDEO)
    void processingYesterdayVideo(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
                                  @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime);
 
 
    /**
     * 删除附件接口
     *
     * @param deviceSn    设备sn
     * @param timestamp   时间戳
     * @param operator    操作人
     * @param workspaceId 工作空间id
     * @return Boolean 删除结果
     */
    @GetMapping(value = DELETE_ATTACH, consumes = MediaType.APPLICATION_JSON_VALUE)
    Boolean deleteAttach(
        @RequestParam String deviceSn,
        @RequestParam long timestamp,
        @RequestParam Long operator,
        @RequestParam String workspaceId
    );
 
    /**
     *
     * @param deviceSn
     * @param startDate
     * @param endDate
     * @param resultTypes
     * @return
     */
    @GetMapping(value = CALCULATE_THE_THREE_DIMENSIONAL_AREA)
    List<AttachTypeStatisticsVO> calculateTheThreeDimensionalArea(@RequestParam String deviceSn, @RequestParam String startDate,
                                                            @RequestParam String endDate, @RequestParam String resultTypes,
                                                            @RequestParam String areaCode);
    /**
     * 通过ID查询附件信息
     */
    @GetMapping(GET_ATTACH_BY_ID)
    public Attach getAttachById(@RequestParam String id);
 
}