|
@@ -0,0 +1,102 @@
|
|
|
+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.SpHj2017Mapper;
|
|
|
+import com.usky.issue.service.SpHj2017Service;
|
|
|
+import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author fu
|
|
|
+ * @since 2023-12-13
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class SpHj2017ServiceImpl extends AbstractCrudService<SpHj2017Mapper, SpHj2017> implements SpHj2017Service {
|
|
|
+ @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<SpHj2017> 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 + "' AND dwtype IN (1,3)");
|
|
|
+ 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<SpHj2017> 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 + "' AND dwtype IN (1,3)");
|
|
|
+ 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 Integer countDevice(String requestBody) {
|
|
|
+ JSONObject requestVO = JSONObject.parseObject(requestBody);
|
|
|
+ String companyCode = requestVO.get("companyCode").toString();
|
|
|
+
|
|
|
+ QueryWrapper<SpHj2017> queryWrapper1 = Wrappers.query();
|
|
|
+ queryWrapper1.select("DISTINCT device_code")
|
|
|
+ .inSql("device_code", "SELECT device_code FROM yt_device_status WHERE company_code = '" + companyCode + "'");
|
|
|
+ List<SpHj2017> SpHj2017 = this.list(queryWrapper1);
|
|
|
+
|
|
|
+ Integer deviceCount = SpHj2017.size();
|
|
|
+
|
|
|
+ return deviceCount;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|