|
@@ -0,0 +1,101 @@
|
|
|
+package com.usky.issue.service.impl;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+
|
|
|
+import com.usky.common.core.exception.BusinessException;
|
|
|
+import com.usky.issue.domain.SpHj2017;
|
|
|
+import com.usky.issue.domain.SpRtu2017;
|
|
|
+import com.usky.issue.mapper.SpRtu2017Mapper;
|
|
|
+import com.usky.issue.service.SpRtu2017Service;
|
|
|
+import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author fu
|
|
|
+ * @since 2023-12-13
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class SpRtu2017ServiceImpl extends AbstractCrudService<SpRtu2017Mapper, SpRtu2017> implements SpRtu2017Service {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> statusCount(String requestBody) {
|
|
|
+ JSONObject requestVO = JSONObject.parseObject(requestBody);
|
|
|
+ String companyCode = requestVO.get("companyCode").toString();
|
|
|
+ String startTimeString = requestVO.get("startTime").toString();
|
|
|
+ String endTimeString = requestVO.get("endTime").toString();
|
|
|
+ Integer currentPage = (Integer) requestVO.get("current");
|
|
|
+ Integer pageSize = (Integer) requestVO.get("size");
|
|
|
+ int startIndex = (currentPage - 1) * pageSize;
|
|
|
+ QueryWrapper<SpRtu2017> queryWrapper = Wrappers.query();
|
|
|
+ queryWrapper.select("DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') AS alarm_time", "data2 AS alarm_type", "data4 AS alarm_point", "device_code")
|
|
|
+ .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
|
|
|
+ if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
|
|
|
+
|
|
|
+ }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
|
|
|
+ // 如果同时传了 startTime 和 endTime
|
|
|
+ queryWrapper.between("time", startTimeString, endTimeString);
|
|
|
+ } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
|
|
|
+ // 如果只传了 startTime
|
|
|
+ queryWrapper.between("time", startTimeString,LocalDateTime.now().toString());
|
|
|
+ } else if (StringUtils.isNotBlank(endTimeString) && StringUtils.isBlank(startTimeString)) {
|
|
|
+ // 如果只传了 endTime
|
|
|
+ queryWrapper.le("time", endTimeString);
|
|
|
+ } else {
|
|
|
+ throw new BusinessException("时间参数错误");
|
|
|
+ }
|
|
|
+ queryWrapper.last("LIMIT " + pageSize + " OFFSET " + startIndex)
|
|
|
+ .orderByDesc("id");
|
|
|
+ List<Map<String, Object>> deviceStatusList = this.listMaps(queryWrapper);
|
|
|
+
|
|
|
+ return deviceStatusList;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<Map<String, Object>> typeList(String requestBody) {
|
|
|
+ JSONObject requestVO = JSONObject.parseObject(requestBody);
|
|
|
+ String companyCode = requestVO.get("companyCode").toString();
|
|
|
+ String startTimeString = requestVO.get("startTime").toString();
|
|
|
+ String endTimeString = requestVO.get("endTime").toString();
|
|
|
+ QueryWrapper<SpRtu2017> queryWrapper1 = Wrappers.query();
|
|
|
+ queryWrapper1.select("COUNT(CASE WHEN clzt = 0 THEN 1 ELSE NULL END) AS untreated", "COUNT(CASE WHEN clzt = 1 THEN 1 ELSE NULL END) AS processed")
|
|
|
+ .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
|
|
|
+ if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
|
|
|
+
|
|
|
+ }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
|
|
|
+ // 如果同时传了 startTime 和 endTime
|
|
|
+ queryWrapper1.between("time", startTimeString, endTimeString);
|
|
|
+ } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
|
|
|
+ // 如果只传了 startTime
|
|
|
+ queryWrapper1.between("time", startTimeString, LocalDateTime.now().toString());
|
|
|
+ } else if (StringUtils.isNotBlank(endTimeString) && StringUtils.isBlank(startTimeString)) {
|
|
|
+ // 如果只传了 endTime
|
|
|
+ queryWrapper1.le("time", endTimeString);
|
|
|
+ } else {
|
|
|
+ throw new BusinessException("时间参数错误");
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> deviceStatusList1 = this.listMaps(queryWrapper1);
|
|
|
+ return deviceStatusList1;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Map<String, Object> countDevice (String requestBody) {
|
|
|
+ JSONObject requestVO = JSONObject.parseObject(requestBody);
|
|
|
+ String companyCode = requestVO.get("companyCode").toString();
|
|
|
+ QueryWrapper<SpRtu2017> queryWrapper2 = Wrappers.query();
|
|
|
+ queryWrapper2.select("COUNT(DISTINCT device_code)AS alarmDeviceCountRtu")
|
|
|
+ .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'")
|
|
|
+ .groupBy("device_code");
|
|
|
+ Map<String, Object> deviceStatusMap = this.getMap(queryWrapper2);
|
|
|
+ return deviceStatusMap;
|
|
|
+ }
|
|
|
+}
|