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 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 List> 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 getAttachNames(@RequestBody List ids); @PostMapping(GET_ATTACH_METADATA_NAMES) Map findMetaDataByName(@RequestBody List 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 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); }