From e468088052b2dea9837645eeed689ee9c5f0948d Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期五, 27 十月 2023 15:58:11 +0800 Subject: [PATCH] 油烟 --- ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java | 36 ++++ ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java | 2 ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml | 19 ++ ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java | 150 +++++++---------- ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java | 2 ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java | 34 ++++ ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java | 2 ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java | 1 ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java | 50 +++++ ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java | 39 ++++ ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java | 17 ++ ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java | 23 ++ ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java | 5 ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java | 17 ++ ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java | 11 + ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java | 10 + ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java | 3 17 files changed, 326 insertions(+), 95 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java index 4d42a27..bc84db9 100644 --- a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java @@ -13,6 +13,7 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; @@ -20,6 +21,9 @@ public class OssServiceImpl implements OssService { @Override public String uploadImages(MultipartFile file) { + DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + System.out.println("寮�濮嬩笂浼�--" + dtf2.format(LocalDateTime.now())); if (file == null) { return "涓婁紶鏂囦欢涓虹┖"; } @@ -47,6 +51,7 @@ Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000); String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString(); + System.out.println("涓婁紶缁撴潫--" + dtf2.format(LocalDateTime.now())); return url; } catch (Exception e) { System.out.println("uploadImages涓婁紶鍥剧墖澶辫触锛�"); diff --git a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java index c59be61..ccd0d15 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java +++ b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java @@ -194,12 +194,16 @@ @PostMapping("/oss/sign") public CommonResult ossSign(@RequestBody OssFileDto dto) { log.info("鎺ユ敹鍒癴ile"); + + DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); if (StringUtils.isNullOrEmpty(dto.getMediaId()) || StringUtils.isNullOrEmpty(dto.getExtension())) { return CommonResult.failed("鍙傛暟涓嶈兘涓虹┖锛�"); } ExecutableClient executableClient = DdTest.getExecutableClient(); CloseableHttpResponse response = null; OSS ossClient = null; + + System.out.println("寮�濮嬭幏鍙�--" + dtf2.format(LocalDateTime.now())); try { //浠庨拤閽夎幏鍙栬棰戞祦 String api = "/media/download"; @@ -212,12 +216,15 @@ response = getClient.getB(); HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); - DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); - String strDate2 = dtf2.format(LocalDateTime.now()); + System.out.println("鑾峰彇瀹屾垚--" + dtf2.format(LocalDateTime.now())); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + + String strDate2 = dtf.format(LocalDateTime.now()); String fileName = strDate2 + RandomUtils.generateRandomInt(4) + "." + dto.getExtension(); MultipartFile file = getMultipartFile(is, fileName); + String url = ossService.uploadImages(file); return CommonResult.success(url); } catch (Exception e) { diff --git a/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java index b86dd23..b152efb 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java +++ b/ycl-platform/src/main/java/com/ycl/controller/smoke/SmokeAlarmController.java @@ -1,10 +1,26 @@ package com.ycl.controller.smoke; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ycl.annotation.LogSave; +import com.ycl.api.CommonPage; +import com.ycl.api.CommonResult; import com.ycl.controller.BaseController; +import com.ycl.entity.smoke.OdsAlarmMsg; +import com.ycl.dto.smoker.QueryAlarmParam; import com.ycl.service.smoke.IOdsAlarmMsgService; +import com.ycl.utils.EasyExcelUtils; +import com.ycl.vo.smoke.OdsAlarmVo; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.*; @RestController @RequestMapping("/smoke") @@ -17,91 +33,51 @@ public void setAlarmMsgService(IOdsAlarmMsgService alarmMsgService) { this.alarmMsgService = alarmMsgService; } -// -// @ApiOperation("鑾峰彇鎵�灞炲崟浣�") -// @RequestMapping(value = "/customer/list", method = RequestMethod.GET) -// @ResponseBody -// @LogSave(operationType = "娌圭儫妯″潡", contain = "鑾峰彇鎵�灞炲崟浣�") -// public CommonResult<CommonPage<OdsCustomer>> findCustomerList(@RequestParam(value = "keyword", required = false) String keyword, -// @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize, -// @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) { -// Page<OdsCustomer> customerPage = customerService.findList(keyword, pageSize, pageNum); -// return CommonResult.success(CommonPage.restPage(customerPage)); -// } -// -// @ApiOperation("鏌ヨ瀹炴椂鏁版嵁") -// @RequestMapping(value = "/inTime/list", method = RequestMethod.GET) -// @ResponseBody -// @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ瀹炴椂鏁版嵁") -// public CommonResult<CommonPage<OdsInTime>> findInTimeList(@RequestParam(value = "owner", required = false) String owner, -// @RequestParam(value = "onlineStatus", required = false) String onlineStatus, -// @RequestParam(value = "status", required = false) String status, -// @RequestParam(value = "startTime", required = false) String startTime, -// @RequestParam(value = "endTime", required = false) String endTime, -// @RequestParam(value = "type", required = false) String type, -// @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, -// @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) { -// Page<OdsInTime> inTimePage = inTimeService.findList(owner, onlineStatus, startTime, endTime, type, status, pageSize, pageNum); -// return CommonResult.success(CommonPage.restPage(inTimePage)); -// } -// -// @ApiOperation("瀵煎嚭瀹炴椂鏁版嵁") -// @PostMapping(value = "/inTime/export") -// @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ瀹炴椂鏁版嵁") -// public void exportInTimeList(HttpServletResponse response, QueryInTimeParam param) throws IOException { -// Page<OdsInTime> inTimePage = inTimeService.findList(param.getOwner(), param.getOnlineStatus(), param.getStartTime(), -// param.getEndTime(), param.getType(), param.getStatus(), 99999, 1); -// -// List<OdsInTimeVo> odsInTimeVos = new ArrayList<>(); -// Dictionary<Integer, String> fanStatusDic = new Hashtable<>(); -// fanStatusDic.put(1, "寮�"); -// fanStatusDic.put(2, "鍏�"); -// fanStatusDic.put(3, "寮傚父"); -// fanStatusDic.put(0, "寮傚父"); -// -// Dictionary<Integer, String> onlineStatusDic = new Hashtable<>(); -// onlineStatusDic.put(1, "鍦ㄧ嚎"); -// onlineStatusDic.put(2, "绂荤嚎"); -// onlineStatusDic.put(3, "寮傚父绂荤嚎"); -// onlineStatusDic.put(0, "寮傚父绂荤嚎"); -// -// Dictionary<String, String> statusDic = new Hashtable<>(); -// statusDic.put("NORMAL", "姝e父"); -// statusDic.put("ALARM", "棰勮"); -// statusDic.put("EXCESS", "瓒呮爣"); -// statusDic.put("DOWN", "绂荤嚎"); -// statusDic.put("OFF", "寮傚父绂荤嚎"); -// -// inTimePage.getRecords().stream().forEach(o -> { -// OdsInTimeVo vo = new OdsInTimeVo(); -// BeanUtils.copyProperties(o, vo); -// vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000))); -// vo.setFanStatusStr(fanStatusDic.get(o.getFanStatus())); -// vo.setFilterStatusStr(fanStatusDic.get(o.getFilterStatus())); -// vo.setOnlineStatusStr(onlineStatusDic.get(o.getOnlineStatus())); -// vo.setStatusStr(statusDic.get(o.getStatus())); -// odsInTimeVos.add(vo); -// }); -// -// String sheetName = "瀹炴椂鏁版嵁"; -// -// String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8"); -// //璁剧疆鍝嶅簲瀛楃闆� -// response.setCharacterEncoding("UTF-8"); -// //璁剧疆鍝嶅簲濯掍綋绫诲瀷 -// response.setContentType("application/vnd.ms-excel"); -// response.setHeader("Content-Disposition", "attachment;filename=" + fileName); -// -// EasyExcelUtils.export(response, sheetName, OdsInTimeVo.class, odsInTimeVos); -// } -// -// -// @ApiOperation("鑾峰彇璁惧鍦ㄧ嚎鎯呭喌") -// @RequestMapping(value = "/inTime/count", method = RequestMethod.GET) -// @ResponseBody -// @LogSave(operationType = "娌圭儫妯″潡", contain = "鑾峰彇璁惧鍦ㄧ嚎鎯呭喌") -// public CommonResult<InTimeCountDto> getInTimeCount() { -// InTimeCountDto dto = inTimeService.getInTimeCount(); -// return CommonResult.success(dto); -// } + + @ApiOperation("鏌ヨ鎶ヨ鏁版嵁") + @RequestMapping(value = "/alarm/list", method = RequestMethod.GET) + @ResponseBody + @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ鎶ヨ鏁版嵁") + public CommonResult<CommonPage<OdsAlarmMsg>> findAlarmList(@RequestParam(value = "msgType", required = false) String type, + @RequestParam(value = "startTime", required = false) String startTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) { + Page<OdsAlarmMsg> page = alarmMsgService.findList(type, startTime, endTime, pageSize, pageNum); + return CommonResult.success(CommonPage.restPage(page)); + } + + @ApiOperation("瀵煎嚭鎶ヨ鏁版嵁") + @PostMapping(value = "/alarm/export") + @LogSave(operationType = "娌圭儫妯″潡", contain = "瀵煎嚭鎶ヨ鏁版嵁") + public void exportAlarmList(HttpServletResponse response, QueryAlarmParam param) throws IOException { + Page<OdsAlarmMsg> page = alarmMsgService.findList(param.getMsgType(), param.getStartTime(), + param.getEndTime(), 99999, 1); + + List<OdsAlarmVo> alarmMsgs = new ArrayList<>(); + + Dictionary<String, String> msgTypeDic = new Hashtable<>(); + msgTypeDic.put("ExceedStandard", "瓒呮爣"); + msgTypeDic.put("AbnormalOffline", "寮傚父绂荤嚎"); + + page.getRecords().stream().forEach(o -> { + OdsAlarmVo vo = new OdsAlarmVo(); + BeanUtils.copyProperties(o, vo); + vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000))); + vo.setMsgTypeStr(msgTypeDic.get(o.getMsgType())); + alarmMsgs.add(vo); + }); + + String sheetName = "鎶ヨ娑堟伅"; + + String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8"); + //璁剧疆鍝嶅簲瀛楃闆� + response.setCharacterEncoding("UTF-8"); + //璁剧疆鍝嶅簲濯掍綋绫诲瀷 + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + + EasyExcelUtils.export(response, sheetName, OdsAlarmVo.class, alarmMsgs); + } + } \ No newline at end of file diff --git a/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java new file mode 100644 index 0000000..e4da135 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryAlarmParam.java @@ -0,0 +1,10 @@ +package com.ycl.dto.smoker; + +import lombok.Data; + +@Data +public class QueryAlarmParam { + private String startTime; + private String endTime; + private String msgType; +} diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java b/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java index 013b82a..b52038c 100644 --- a/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java +++ b/ycl-platform/src/main/java/com/ycl/service/smoke/IOdsAlarmMsgService.java @@ -1,5 +1,6 @@ package com.ycl.service.smoke; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.smoke.OdsAlarmMsg; @@ -13,4 +14,5 @@ */ public interface IOdsAlarmMsgService extends IService<OdsAlarmMsg> { + Page<OdsAlarmMsg> findList(String status, String startTime, String endTime, Integer pageSize, Integer pageNum); } diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java index 16da8f8..e486059 100644 --- a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsAlarmMsgServiceImpl.java @@ -1,10 +1,19 @@ package com.ycl.service.smoke.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.entity.smoke.OdsAlarmMsg; +import com.ycl.entity.smoke.OdsInTime; import com.ycl.mapper.smoke.OdsAlarmMsgMapper; import com.ycl.service.smoke.IOdsAlarmMsgService; import org.springframework.stereotype.Service; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; /** * <p> @@ -17,4 +26,31 @@ @Service public class OdsAlarmMsgServiceImpl extends ServiceImpl<OdsAlarmMsgMapper, OdsAlarmMsg> implements IOdsAlarmMsgService { + @Override + public Page<OdsAlarmMsg> findList(String type, String startTime, String endTime, Integer pageSize, Integer pageNum) { + Page<OdsAlarmMsg> page = new Page<>(pageNum, pageSize); + QueryWrapper<OdsAlarmMsg> wrapper = new QueryWrapper<>(); + LambdaQueryWrapper<OdsAlarmMsg> lambda = wrapper.lambda(); + + if (StrUtil.isNotEmpty(startTime)) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date startdate = format.parse(startTime); + Long startTimestamp = startdate.getTime() / 1000; + + Date enddate = format.parse(endTime); + Long endTimestamp = enddate.getTime() / 1000; + + lambda.between(OdsAlarmMsg::getAcquitAt, startTimestamp, endTimestamp); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + if (StrUtil.isNotEmpty(type)) { + lambda.eq(OdsAlarmMsg::getMsgType, type); + } + wrapper.orderByDesc("id"); + return this.page(page, wrapper); + } } diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java index 14b4991..f905fce 100644 --- a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java @@ -59,6 +59,7 @@ lambda.eq(OdsInTime::getStatus, status); } + wrapper.orderByDesc("id"); return this.page(page, wrapper); } diff --git a/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java new file mode 100644 index 0000000..ab55b4b --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsAlarmVo.java @@ -0,0 +1,34 @@ +package com.ycl.vo.smoke; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OdsAlarmVo { + + @ExcelProperty(value = "璁惧缂栫爜", index = 0) + private String mn; + + @ExcelProperty(value = "鎶ヨ鏃堕棿", index = 1) + private String acquitAtStr; + + @ExcelProperty(value = "娑堟伅绫诲瀷", index = 2) + private String msgTypeStr; + + @ExcelProperty(value = "娑堟伅鍐呭", index = 3) + private String content; + + @ExcelProperty(value = "鍦板潃", index = 4) + private String addr; + +} diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java index 0ce5b3a..391c90d 100644 --- a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java +++ b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamChildDto.java @@ -1,13 +1,14 @@ package com.ycl.smoke.dto; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @Data -@Builder @EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) public class DataIntimeParamChildDto { /** * 鍚� 绛涢�夌粍缁囷紙Param鍐咃級 diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java index 25f482d..e8fc4a4 100644 --- a/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java +++ b/ycl-smoke/src/main/java/com/ycl/smoke/dto/DataIntimeParamDto.java @@ -1,5 +1,6 @@ package com.ycl.smoke.dto; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; import lombok.Data; @@ -8,6 +9,7 @@ @Data @Builder @EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) public class DataIntimeParamDto { /** * 鍚� 璧峰浣嶇疆 diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java new file mode 100644 index 0000000..45a6a8f --- /dev/null +++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTimeCount.java @@ -0,0 +1,39 @@ +package com.ycl.smoke.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("ums_ods_in_time_count") +public class OdsInTimeCount implements Serializable { + @TableId("id") + @JsonProperty("Id") + private String id; + + @TableField("device_num") + @JsonProperty("deviceNum") + private Integer deviceNum; + + @TableField("locale_num") + @JsonProperty("localeNum") + private Integer localeNum; + + @TableField("online_num") + @JsonProperty("onlineNum") + private Integer onlineNum; + + @TableField("total") + @JsonProperty("total") + private Integer total; + + @TableField("type") + @JsonProperty("type") + private Integer type; +} diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java new file mode 100644 index 0000000..85d524c --- /dev/null +++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeCountMapper.java @@ -0,0 +1,17 @@ +package com.ycl.smoke.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.smoke.entity.OdsInTime; +import com.ycl.smoke.entity.OdsInTimeCount; + +/** + * <p> + * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� Mapper 鎺ュ彛 + * </p> + * + * @author lyq + * @since 2023-02-28 + */ +public interface OdsInTimeCountMapper extends BaseMapper<OdsInTimeCount> { + +} diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java index 3cd8410..0d6f102 100644 --- a/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java +++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java @@ -10,7 +10,7 @@ import java.util.List; -@FeignClient(url = "116.62.234.187:8088", name = "smokeApi") +@FeignClient(url = "116.62.234.187:8120", name = "smokeApi") public interface ISmokeDetectionService { @PostMapping(value = "/loginAction") diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java new file mode 100644 index 0000000..ffecf77 --- /dev/null +++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeCountService.java @@ -0,0 +1,17 @@ +package com.ycl.smoke.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.smoke.entity.OdsInTime; +import com.ycl.smoke.entity.OdsInTimeCount; + +/** + * <p> + * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� 鏈嶅姟绫� + * </p> + * + * @author lyq + * @since 2023-02-28 + */ +public interface IOdsInTimeCountService extends IService<OdsInTimeCount> { + +} diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java new file mode 100644 index 0000000..6e26422 --- /dev/null +++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeCountServiceImpl.java @@ -0,0 +1,23 @@ +package com.ycl.smoke.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.smoke.entity.OdsInTime; +import com.ycl.smoke.entity.OdsInTimeCount; +import com.ycl.smoke.mapper.OdsInTimeCountMapper; +import com.ycl.smoke.mapper.OdsInTimeMapper; +import com.ycl.smoke.service.IOdsInTimeCountService; +import com.ycl.smoke.service.IOdsInTimeService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author lyq + * @since 2023-02-28 + */ +@Service +public class OdsInTimeCountServiceImpl extends ServiceImpl<OdsInTimeCountMapper, OdsInTimeCount> implements IOdsInTimeCountService { + +} diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java b/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java index db0e45e..1dc348e 100644 --- a/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java +++ b/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java @@ -1,6 +1,9 @@ package com.ycl.smoke.task; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ycl.service.redis.RedisService; import com.ycl.smoke.entity.*; import com.ycl.smoke.dto.*; @@ -31,6 +34,8 @@ IOdsInTimeService inTimeService; + IOdsInTimeCountService iOdsInTimeCountService; + IOdsLocaleService localeService; IOdsCustomerService customerService; @@ -45,6 +50,11 @@ @Autowired public void setSmokeDetectionService(ISmokeDetectionService smokeDetectionService) { this.smokeDetectionService = smokeDetectionService; + } + + @Autowired + public void setIOdsInTimeCountService(IOdsInTimeCountService iOdsInTimeCountService) { + this.iOdsInTimeCountService = iOdsInTimeCountService; } @Autowired @@ -186,20 +196,52 @@ // @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц - @Scheduled(cron = "0 */5 * * * ?") // 姣�5鍒嗛挓鎵ц - public void listDataIntime() { - try { - DataIntimeParamDto paramDto = DataIntimeParamDto.builder().build(); + @Scheduled(cron = "0 */1 * * * ?") // 姣�5鍒嗛挓鎵ц + public void listDataInTime() { + DataIntimeParamDto paramDto = DataIntimeParamDto.builder().build(); + // {"StartAt":0,"Size":20,"Typ":2,"SortBy":"status","SortMode":"asc","Param":{"StatusOfRecord":"NORMAL"}}: + paramDto.setSize(200); + paramDto.setStartAt(0); + paramDto.setTyp(2); + paramDto.setSortBy("status"); + paramDto.setSortMode("asc"); + DataIntimeParamChildDto paramChildDto = new DataIntimeParamChildDto(); + paramChildDto.setStatusOfRecord("NORMAL"); + paramDto.setParam(paramChildDto); + + getInTimeData(paramDto); + + paramDto.setTyp(1); + getInTimeData(paramDto); + } + + private void getInTimeData(DataIntimeParamDto paramDto) { + try { + String jj = JSON.toJSONString(paramDto); String json = smokeDetectionService.listDataIntime(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString()); SmokeResultResponseDto responseDto = JSON.parseObject(json, SmokeResultResponseDto.class); if (responseDto.getStatus() == 200) { DataIntimeResponseDto dataIntimeResponseDto = JSON.parseObject(responseDto.getData().toString(), DataIntimeResponseDto.class); List<OdsInTime> list = dataIntimeResponseDto.getContent(); + + OdsInTimeCount odsInTimeCount = new OdsInTimeCount(); + LambdaQueryWrapper<OdsInTimeCount> queryWrapper = new LambdaQueryWrapper<OdsInTimeCount>().eq(OdsInTimeCount::getType, paramDto.getTyp()); + List<OdsInTimeCount> countList = iOdsInTimeCountService.list(queryWrapper); + if (countList.size() > 0) { + odsInTimeCount = countList.get(0); + } + odsInTimeCount.setDeviceNum(dataIntimeResponseDto.getDeviceNum()); + odsInTimeCount.setLocaleNum(dataIntimeResponseDto.getLocaleNum()); + odsInTimeCount.setOnlineNum(dataIntimeResponseDto.getOnlineNum()); + odsInTimeCount.setTotal(dataIntimeResponseDto.getTotal()); + iOdsInTimeCountService.saveOrUpdate(odsInTimeCount); + list.forEach(o -> { try { o.setModifyTime(LocalDateTime.now()); + o.setTyp(paramDto.getTyp()); inTimeService.saveOrUpdate(o); } catch (Exception ex) { System.out.printf(ex.getMessage()); diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml new file mode 100644 index 0000000..b26199f --- /dev/null +++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeCountMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.smoke.mapper.OdsInTimeCountMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsInTimeCount"> + <id column="id" property="id"/> + <result column="device_num" property="deviceNum"/> + <result column="locale_num" property="localeNum"/> + <result column="online_num" property="onlineNum"/> + <result column="total" property="total"/> + </resultMap> + + <!-- 閫氱敤鏌ヨ缁撴灉鍒� --> + <sql id="Base_Column_List"> + id , device_num, locale_num, online_num, total + </sql> + +</mapper> -- Gitblit v1.8.0