dongjh 1 рік тому
батько
коміт
ec9e15671b

+ 7 - 0
jeecg-module-system/jeecg-system-start/pom.xml

@@ -26,6 +26,13 @@
             <artifactId>spring-kafka</artifactId>
             <version>2.8.0</version>
         </dependency>
+
+        <!--mongodb依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-mongodb</artifactId>
+            <version>3.2.1</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 10 - 0
module_tpm/src/main/java/org/jeecg/modules/collectdata/service/ICollectdataService.java

@@ -0,0 +1,10 @@
+package org.jeecg.modules.collectdata.service;
+
+import org.jeecg.modules.collectdata.entity.Collectdata;
+
+import java.util.List;
+
+public interface ICollectdataService {
+
+    List<Collectdata> getLatestDataPerGroup();
+}

+ 34 - 0
module_tpm/src/main/java/org/jeecg/modules/collectdata/service/impl/CollectdataServiceImpl.java

@@ -0,0 +1,34 @@
+package org.jeecg.modules.collectdata.service.impl;
+
+import org.jeecg.modules.collectdata.entity.Collectdata;
+import org.jeecg.modules.collectdata.service.ICollectdataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.aggregation.Aggregation;
+import org.springframework.data.mongodb.core.aggregation.AggregationResults;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CollectdataServiceImpl implements ICollectdataService {
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    /**
+     * 获取每个设备的最新一条信息
+     * @return
+     */
+    @Override
+    public List<Collectdata> getLatestDataPerGroup() {
+        Aggregation aggregation = Aggregation.newAggregation(
+                Aggregation.group("equipmentcode").last("logtime").as("logtime"),
+                Aggregation.sort(Sort.Direction.DESC, "logtime")
+        );
+
+        AggregationResults<Collectdata> aggregatedPage = mongoTemplate.aggregate(aggregation, "equipmentcode", Collectdata.class);
+        return aggregatedPage.getMappedResults();
+    }
+}

+ 21 - 6
module_tpm/src/main/java/org/jeecg/modules/equipmentStatus/controller/EquipmentStatusController.java

@@ -176,21 +176,36 @@ public class EquipmentStatusController extends JeecgController<EquipmentStatus,
         return super.importExcel(request, response, EquipmentStatus.class);
     }
 
+	/**
+	* 获取设备状态及当天用电量
+	* @param day 日期
+	*/
+	@ApiOperation("获取设备状态及当天用电量")
+	@GetMapping("/listStatusAndElectricity")
+	public Result listStatusAndElectricity(String day) {
+		//获取当前日期
+		if (day == null || "".equals(day)) {
+			 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+			 Date currentdate = new Date();
+			 day = simpleDateFormat.format(currentdate);
+		}
+		return Result.OK(equipmentStatusService.getEquipmentElectricity(day));
+	}
+
 
 	 /**
-	  * 导出excel
-	  * 获取设备当天用电量
+	  * 获取设备状态信息
 	  * @param day 日期
 	  */
-	 @ApiOperation("获取设备当天用电量")
-	 @GetMapping("/getElectricity")
-	 public Result getEquipmentElectricity(String day) {
+	 @ApiOperation("获取设备状态信息")
+	 @GetMapping("/listStatus")
+	 public Result listStatus(String day) {
 		 //获取当前日期
 		 if (day == null || "".equals(day)) {
 			 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
 			 Date currentdate = new Date();
 			 day = simpleDateFormat.format(currentdate);
 		 }
-	 	return Result.OK(equipmentStatusService.getEquipmentElectricity(day));
+		 return Result.OK(equipmentStatusService.listStatus(day));
 	 }
 }

+ 13 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentStatus/entity/EquipmentStatus.java

@@ -4,10 +4,13 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
+import java.util.List;
 
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.modules.collectdata.entity.Collectdata;
+import org.jeecg.modules.tpmparams.entity.TpmParams;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.jeecg.common.aspect.annotation.Dict;
@@ -139,4 +142,14 @@ public class EquipmentStatus implements Serializable {
     @TableField(exist = false)
     @ApiModelProperty(value = "值")
     private float tagvalue;
+
+    /**设备参数*/
+    @TableField(exist = false)
+    @ApiModelProperty(value = "设备参数")
+    private List<TpmParams> paramsList;
+
+    /**最新值*/
+    @TableField(exist = false)
+    @ApiModelProperty(value = "最新值")
+    private Collectdata lastdata;
 }

+ 7 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentStatus/mapper/EquipmentStatusMapper.java

@@ -23,6 +23,13 @@ public interface EquipmentStatusMapper extends BaseMapper<EquipmentStatus> {
     public List<EquipmentStatus> getEquipmentElectricity(@Param("day") String day);
 
     /**
+     * 获取设备状态信息
+     * @param day 日期
+     * @return
+     */
+    public List<EquipmentStatus> listStatus(@Param("day") String day);
+
+    /**
      * 查询设备状态
      *
      * @param equipmentid 设备ID

+ 10 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentStatus/mapper/xml/EquipmentStatusMapper.xml

@@ -47,4 +47,14 @@
         where equipmentid = #{equipmentid}
     </select>
 
+    <select id="listStatus" resultMap="EquipmentStatusResult">
+        select s.equipmentid,s.status, e.equipmentcode, d.electricityvalue as tagvalue,
+            s.tagvaluep, s.tagvalueca, s.tagvalueva, s.tagvaluecb, s.tagvaluevb, s.tagvaluecc, s.tagvaluevc
+        from tpm_equipment as e
+        left join tpm_equipment_status as s
+            on s.equipmentid=e.id
+        left join ems_data_electricity_day as d
+            on s.equipmentid=d.equipmentid and d.day = #{day}
+    </select>
+
 </mapper>

+ 6 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentStatus/service/IEquipmentStatusService.java

@@ -21,4 +21,10 @@ public interface IEquipmentStatusService extends IService<EquipmentStatus> {
      */
     public List<EquipmentStatus> getEquipmentElectricity(String day);
 
+    /**
+     * 获取设备状态信息
+     * @param day 日期
+     * @return
+     */
+    public List<EquipmentStatus> listStatus(String day);
 }

+ 47 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentStatus/service/impl/EquipmentStatusServiceImpl.java

@@ -1,14 +1,22 @@
 package org.jeecg.modules.equipmentStatus.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.modules.collectdata.entity.Collectdata;
+import org.jeecg.modules.collectdata.service.ICollectdataService;
 import org.jeecg.modules.equipmentStatus.entity.EquipmentStatus;
 import org.jeecg.modules.equipmentStatus.mapper.EquipmentStatusMapper;
 import org.jeecg.modules.equipmentStatus.service.IEquipmentStatusService;
+import org.jeecg.modules.tpmEquipment.mapper.TpmEquipmentMapper;
+import org.jeecg.modules.tpmEquipmentTree.entity.TpmEquipmentTree;
+import org.jeecg.modules.tpmparams.entity.TpmParams;
+import org.jeecg.modules.tpmparams.mapper.TpmParamsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 设备状态定义
@@ -21,6 +29,12 @@ public class EquipmentStatusServiceImpl extends ServiceImpl<EquipmentStatusMappe
 
     @Autowired
     EquipmentStatusMapper equipmentStatusMapper;
+
+    @Autowired
+    TpmParamsMapper paramsMapper;
+
+    @Autowired
+    ICollectdataService collectdataService;
     /**
      * 获取设备当天的总用电量
      * @param day 日期
@@ -31,4 +45,37 @@ public class EquipmentStatusServiceImpl extends ServiceImpl<EquipmentStatusMappe
         return equipmentStatusMapper.getEquipmentElectricity(day);
     }
 
+    /**
+     * 获取设备状态信息
+     * @param day 日期
+     * @return
+     */
+    @Override
+    public List<EquipmentStatus> listStatus(String day) {
+        List<EquipmentStatus> statusList = equipmentStatusMapper.listStatus(day);
+        if (statusList == null || statusList.size() < 1) {
+            return statusList;
+        }
+
+        QueryWrapper<TpmParams> queryWrapper = new QueryWrapper(new TpmParams());
+        queryWrapper.orderByAsc("id");
+        List<TpmParams> paramsList = paramsMapper.selectList(queryWrapper);
+        if (paramsList == null || paramsList.size() < 1) {
+            return statusList;
+        }
+
+        List<Collectdata> collectdataList = collectdataService.getLatestDataPerGroup();
+
+        for (int i = 0; i < statusList.size(); i++) {
+            String equipmentcode = statusList.get(i).getEquipmentcode();
+            statusList.get(i).setParamsList(paramsList.stream().filter(p -> p.getEquipmentcode().equals(equipmentcode))
+                    .collect(Collectors.toList()));
+            List<Collectdata> subdataList = collectdataList.stream().filter(p -> p.getEquipmentcode().equals(equipmentcode))
+                    .collect(Collectors.toList());
+            Collectdata collectdata = subdataList == null || subdataList.size() < 1 ? null : subdataList.get(0);
+            statusList.get(i).setLastdata(collectdata);
+        }
+
+        return statusList;
+    }
 }