From 9ae51914e2f142774088db5eb5aa451ecca64c6e Mon Sep 17 00:00:00 2001
From: DYL <Dn1332079466>
Date: 星期六, 08 二月 2025 18:45:55 +0800
Subject: [PATCH] 组态图更新

---
 zhitan-system/src/main/java/com/zhitan/basicSetup/service/impl/SysEquipmentfileServiceImpl.java      |   12 
 zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java       |   58 ++++
 zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/EnergyCalculateCalcTV.java            |   31 ++
 zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/EnergyUnitToDevice.java                  |   71 +++++
 zhitan-system/src/main/resources/mapper/basicSetup/SysEquipmentfileMapper.xml                        |   74 +++---
 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/EnergyUnitToDeviceServiceImpl.java |  232 +++++++++++++++++++
 zhitan-system/src/main/java/com/zhitan/energyMonitor/mapper/EnergyUnitToDeviceMapper.java            |   38 +++
 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IEnergyUnitToDeviceService.java         |  100 ++++++++
 zhitan-admin/src/main/java/com/zhitan/web/controller/basicSetup/SysEquipmentfileController.java      |    5 
 zhitan-system/src/main/java/com/zhitan/basicSetup/mapper/SysEquipmentfileMapper.java                 |    3 
 zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/UnitToDeviceRelationVO.java           |   35 ++
 zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/ListElectricityMeterVO.java           |   20 +
 zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java                     |   11 
 13 files changed, 649 insertions(+), 41 deletions(-)

diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/basicSetup/SysEquipmentfileController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/basicSetup/SysEquipmentfileController.java
index 8fa8bb2..1fe189b 100644
--- a/zhitan-admin/src/main/java/com/zhitan/web/controller/basicSetup/SysEquipmentfileController.java
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/basicSetup/SysEquipmentfileController.java
@@ -10,6 +10,7 @@
 import com.zhitan.common.utils.uuid.UUID;
 import com.zhitan.realtimedata.domain.SysEquipmentFile;
 import com.zhitan.realtimedata.domain.SysSvgInfo;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -24,6 +25,7 @@
  * @author sys
  * @date 2020-02-24
  */
+@Slf4j
 @RestController
 @RequestMapping("/basicSetup/equipmentfile")
 public class SysEquipmentfileController extends BaseController {
@@ -60,6 +62,7 @@
       sysEquipmentfileService.saveEquipmentFile(sysEquipmentfile);
       return AjaxResult.success();
     } catch (Exception ex) {
+      log.error("缁勬�佸浘鏇存柊澶辫触", ex);
       return AjaxResult.error();
     }
   }
@@ -82,7 +85,7 @@
       SysEquipmentFile sysEquipmentfile = sysEquipmentfileService.getConfigure(nodeId);
       return AjaxResult.success(sysEquipmentfile);
     } catch (Exception ex) {
-      return AjaxResult.error("淇濆瓨澶辫触锛�");
+      return AjaxResult.error("鏌ヨ澶辫触锛�");
     }
   }
 }
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java
new file mode 100644
index 0000000..6434f20
--- /dev/null
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java
@@ -0,0 +1,58 @@
+package com.zhitan.web.controller.energyMonitor;
+
+import com.zhitan.common.annotation.Log;
+import com.zhitan.common.core.controller.BaseController;
+import com.zhitan.common.core.domain.AjaxResult;
+import com.zhitan.energyMonitor.service.IEnergyUnitToDeviceService;
+import com.zhitan.model.service.IEnergyIndexService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description: 璐熻嵎鍒嗘瀽
+ * @Author: yxw
+ * @Date: 2022-04-24
+ * @Version: V1.2
+ */
+@Api(tags = "璐熻嵎鍒嗘瀽")
+@RestController
+@RequestMapping("/loadAnalysis")
+@Slf4j
+public class ElectricLoadController extends BaseController {
+    @Autowired
+    private IEnergyUnitToDeviceService energyUnitToDeviceService;
+//    @Autowired
+//    private IElectricLoadService electricLoadService;
+    @Autowired
+    private IEnergyIndexService energyIndexService;
+
+    /**
+     * 鏍规嵁鐢佃〃id鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁
+     *
+     * @param energyUnitId 鐢ㄨ兘鍗曞厓id
+     * @param meterId      鐢佃〃id
+     * @param timeType     鏃堕棿绫诲瀷 DAY/MONTH/YEAR
+     * @param timeCode     鏃堕棿鍊� 涓庢椂闂寸被鍨嬪搴旓細2022-03-21/2022-03/2022
+     * @return
+     */
+    @Log(title = "鏍规嵁鐢佃〃id鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁")
+    @ApiOperation(value = "鏍规嵁鐢佃〃id鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁", notes = "鏍规嵁鐢佃〃id鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁")
+    @GetMapping(value = "/detail")
+    public AjaxResult list(@RequestParam(name = "energyUnitId") String energyUnitId,
+                           @RequestParam(name = "meterId") String meterId,
+                           @RequestParam(name = "timeType") String timeType,
+                           @RequestParam(name = "timeCode") String timeCode) {
+//        EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(energyUnitId, meterId, CommonConst.TAG_CODE_ZYGGL);
+//
+//        EnergyUnitToDevice energyUnitToDevice = energyUnitToDeviceService.getEnergyUnitToDeviceById(energyUnitId, meterId);
+//        ListElectricLoadVO lsvo = electricLoadService.list(timeType, timeCode, energyIndex, energyUnitToDevice);
+        return AjaxResult.success(null);
+    }
+
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/basicSetup/mapper/SysEquipmentfileMapper.java b/zhitan-system/src/main/java/com/zhitan/basicSetup/mapper/SysEquipmentfileMapper.java
index dae8e52..17a7b14 100644
--- a/zhitan-system/src/main/java/com/zhitan/basicSetup/mapper/SysEquipmentfileMapper.java
+++ b/zhitan-system/src/main/java/com/zhitan/basicSetup/mapper/SysEquipmentfileMapper.java
@@ -1,5 +1,6 @@
 package com.zhitan.basicSetup.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhitan.realtimedata.domain.SysEquipmentFile;
 import com.zhitan.realtimedata.domain.SysSvgInfo;
 import org.apache.ibatis.annotations.Param;
@@ -12,7 +13,7 @@
  * @author sys
  * @date 2020-02-24
  */
-public interface SysEquipmentfileMapper {
+public interface SysEquipmentfileMapper extends BaseMapper<SysEquipmentFile> {
 
   void saveEquipmentFile(SysEquipmentFile sysEquipmentfile);
 
diff --git a/zhitan-system/src/main/java/com/zhitan/basicSetup/service/impl/SysEquipmentfileServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/basicSetup/service/impl/SysEquipmentfileServiceImpl.java
index bad69ef..2f4dd10 100644
--- a/zhitan-system/src/main/java/com/zhitan/basicSetup/service/impl/SysEquipmentfileServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/basicSetup/service/impl/SysEquipmentfileServiceImpl.java
@@ -4,6 +4,7 @@
 import com.zhitan.basicSetup.service.ISysEquipmentfileService;
 import com.zhitan.realtimedata.domain.SysEquipmentFile;
 import com.zhitan.realtimedata.domain.SysSvgInfo;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,7 +24,16 @@
 
   @Override
   public void saveEquipmentFile(SysEquipmentFile sysEquipmentfile) {
-    equipmentfileMapper.saveEquipmentFile(sysEquipmentfile);
+    SysEquipmentFile sysEquipmentFile = equipmentfileMapper.selectById(sysEquipmentfile.getNodeId());
+    if (ObjectUtils.isNotEmpty(sysEquipmentFile)){
+      sysEquipmentFile.setFilePath(sysEquipmentfile.getFilePath());
+      equipmentfileMapper.updateById(sysEquipmentFile);
+    }else {
+      SysEquipmentFile equipmentFile = new SysEquipmentFile();
+      equipmentFile.setFilePath(sysEquipmentfile.getFilePath());
+      equipmentFile.setNodeId(sysEquipmentfile.getNodeId());
+      equipmentfileMapper.insert(equipmentFile);
+    }
   }
 
   @Override
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/EnergyUnitToDevice.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/EnergyUnitToDevice.java
new file mode 100644
index 0000000..bf35d02
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/EnergyUnitToDevice.java
@@ -0,0 +1,71 @@
+package com.zhitan.energyMonitor.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zhitan.common.annotation.Excel;
+import com.zhitan.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @Description: 鐢ㄨ兘鍗曞厓鍏宠仈鐨勫钩鍙版ā鏉夸腑浠〃鐨勭晫闈㈤�昏緫鍏崇郴 涓嶅惈鏈� 閲囬泦銆佽绠椾俊鎭�
+ * @Author: jeecg-boot
+ * @Date:   2022-01-26
+ * @Version: V1.0
+ */
+@Data
+@TableName("energy_unit_to_device")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="energy_unit_to_device瀵硅薄", description="鐢ㄨ兘鍗曞厓鍏宠仈鐨勫钩鍙版ā鏉夸腑浠〃鐨勭晫闈㈤�昏緫鍏崇郴 涓嶅惈鏈� 閲囬泦銆佽绠椾俊鎭�")
+public class EnergyUnitToDevice extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鏂颁富閿�")
+    @TableId(type = IdType.ASSIGN_ID)
+    private String newId;
+
+	/**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+
+	/**鍏宠仈浠〃鍚嶇О*/
+	@Excel(name = "鍏宠仈浠〃鍚嶇О", width = 15)
+    @ApiModelProperty(value = "鍏宠仈浠〃鍚嶇О")
+    private String name;
+
+	/**鍏宠仈浠〃缂栫爜*/
+	@Excel(name = "鍏宠仈浠〃缂栫爜", width = 15)
+    @ApiModelProperty(value = "鍏宠仈浠〃缂栫爜")
+    private String code;
+
+	/**鑳芥簮绫诲瀷锛堟按琛ㄣ�佺數琛ㄣ�佹皵琛ㄧ瓑锛�*/
+	@Excel(name = "鑳芥簮绫诲瀷锛堟按琛ㄣ�佺數琛ㄣ�佹皵琛ㄧ瓑锛�", width = 15)
+    @ApiModelProperty(value = "鑳芥簮绫诲瀷锛堟按琛ㄣ�佺數琛ㄣ�佹皵琛ㄧ瓑锛�")
+    private String deviceType;
+
+	/**鐢ㄨ兘鍗曞厓涓婚敭*/
+	@Excel(name = "鐢ㄨ兘鍗曞厓涓婚敭", width = 15)
+    @ApiModelProperty(value = "鐢ㄨ兘鍗曞厓涓婚敭")
+    private String energyUnitId;
+
+	/**绉熸埛涓婚敭*/
+	@Excel(name = "绉熸埛涓婚敭", width = 15)
+    @ApiModelProperty(value = "绉熸埛涓婚敭")
+    private Integer tenantId;
+
+    @ApiModelProperty(value = "鍙備笌璁¢噺")
+    private String partMeasurement;
+
+    @ApiModelProperty(value = "瀹夎浣嶇疆")
+    private String installPosition;
+
+    @ApiModelProperty(value = "鍒嗘憡姣斾緥")
+    private BigDecimal shareRatio;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/EnergyCalculateCalcTV.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/EnergyCalculateCalcTV.java
new file mode 100644
index 0000000..0c46301
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/EnergyCalculateCalcTV.java
@@ -0,0 +1,31 @@
+package com.zhitan.energyMonitor.domain.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 璁$畻鐐逛綅瀵瑰簲鐨勮绠楀叕寮�
+ * @author  zhw
+ */
+@Data
+@ApiModel(value="璁$畻鐐逛綅瀵瑰簲鐨勮绠楀叕寮�", description="璁$畻鐐逛綅瀵瑰簲鐨勮绠楀叕寮�")
+public class EnergyCalculateCalcTV {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "璁$畻鐐逛綅涓婚敭")
+    private String  calculateIndexId;
+
+    @ApiModelProperty(value = "浠〃璁惧涓婚敭")
+    private String deviceId;
+
+    @ApiModelProperty(value = "浠〃鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "璁$畻鐐逛綅鍖呭惈鐨勯噰闆嗙偣浣嶄富閿�")
+    private String collectIndexId;
+
+    @ApiModelProperty(value = "閲囬泦鐐逛綅瀵瑰簲鎿嶄綔绗﹀彿")
+    private String operator;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/ListElectricityMeterVO.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/ListElectricityMeterVO.java
new file mode 100644
index 0000000..36c19ed
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/ListElectricityMeterVO.java
@@ -0,0 +1,20 @@
+package com.zhitan.energyMonitor.domain.vo;
+
+import lombok.Data;
+
+/**
+ * @Description: TODO
+ * @author: yxw
+ * @date: 2022骞�04鏈�24鏃� 16:07
+ */
+@Data
+public class ListElectricityMeterVO {
+    /**
+     * 鐢佃〃鍚嶇О
+     */
+    private String label;
+    /**
+     * 鐢佃〃id
+     */
+    private String code;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/UnitToDeviceRelationVO.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/UnitToDeviceRelationVO.java
new file mode 100644
index 0000000..6be45ff
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/vo/UnitToDeviceRelationVO.java
@@ -0,0 +1,35 @@
+package com.zhitan.energyMonitor.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 鐢ㄨ兘鍗曞厓涓庤閲忓櫒鍏峰叧绯籿o
+ *
+ * @Author: Zhujw
+ * @Date: 2023/4/4
+ */
+@Data
+@ApiModel(value = "鐢ㄨ兘鍗曞厓涓庤閲忓櫒鍏峰叧绯籿o-杩斿洖vo", description = "鐢ㄨ兘鍗曞厓涓庤閲忓櫒鍏峰叧绯籿o-杩斿洖vo")
+public class UnitToDeviceRelationVO {
+
+    /**
+     * 鐢ㄨ兘鍗曞厓id
+     */
+    @ApiModelProperty(value = "鐢ㄨ兘鍗曞厓id")
+    private String unitId;
+
+    /**
+     * 璁¢噺鍣ㄥ叿id
+     */
+    @ApiModelProperty(value = "璁¢噺鍣ㄥ叿id")
+    private String deviceId;
+
+    /**
+     * 璁¢噺鍣ㄥ叿鍚嶇О
+     */
+    @ApiModelProperty(value = "璁¢噺鍣ㄥ叿鍚嶇О")
+    private String deviceName;
+}
\ No newline at end of file
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/mapper/EnergyUnitToDeviceMapper.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/mapper/EnergyUnitToDeviceMapper.java
new file mode 100644
index 0000000..32edd1e
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/mapper/EnergyUnitToDeviceMapper.java
@@ -0,0 +1,38 @@
+package com.zhitan.energyMonitor.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhitan.energyMonitor.domain.EnergyUnitToDevice;
+import com.zhitan.energyMonitor.domain.vo.EnergyCalculateCalcTV;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Description: 鐢ㄨ兘鍗曞厓鍏宠仈鐨勫钩鍙版ā鏉夸腑浠〃鐨勭晫闈㈤�昏緫鍏崇郴 涓嶅惈鏈� 閲囬泦銆佽绠椾俊鎭�
+ * @Author: jeecg-boot
+ * @Date: 2022-01-26
+ * @Version: V1.0
+ */
+public interface EnergyUnitToDeviceMapper extends BaseMapper<EnergyUnitToDevice> {
+
+    /**
+     * 鏍规嵁璁$畻鐐逛綅涓婚敭鍜岀敤鑳藉崟鍏冧富閿� 鏌ヨ 浣跨敤鐨� 閲囬泦鐐瑰強浠〃淇℃伅
+     *
+     * @param calculateIndexId
+     * @param energyUnitId
+     * @return
+     */
+    public List<EnergyCalculateCalcTV> getCalculateDevices(@Param("calculateIndexId") String calculateIndexId,
+                                                           @Param("energyUnitId") String energyUnitId,
+                                                           @Param("tenantId") String tenantId);
+
+    /**
+     * 涓-鏍规嵁绉熸埛id闆嗗悎鏌ヨ璁¢噺鍣ㄥ叿id
+     *
+     * @param unitIds
+     * @return
+     */
+    @InterceptorIgnore(tenantLine = "true")
+    List<String> listDeviceByTenantIds(@Param("unitIds") List<String> unitIds);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IEnergyUnitToDeviceService.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IEnergyUnitToDeviceService.java
new file mode 100644
index 0000000..30bb563
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IEnergyUnitToDeviceService.java
@@ -0,0 +1,100 @@
+package com.zhitan.energyMonitor.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhitan.energyMonitor.domain.EnergyUnitToDevice;
+import com.zhitan.energyMonitor.domain.vo.ListElectricityMeterVO;
+import com.zhitan.energyMonitor.domain.vo.UnitToDeviceRelationVO;
+
+import java.util.List;
+
+/**
+ * @Description: 鐢ㄨ兘鍗曞厓鍏宠仈鐨勫钩鍙版ā鏉夸腑浠〃鐨勭晫闈㈤�昏緫鍏崇郴 涓嶅惈鏈� 閲囬泦銆佽绠椾俊鎭�
+ * @Author: jeecg-boot
+ * @Date:   2022-01-26
+ * @Version: V1.0
+ */
+public interface IEnergyUnitToDeviceService extends IService<EnergyUnitToDevice> {
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓ID鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃闆嗗悎
+     * @param unitId
+     * @return
+     */
+    List<EnergyUnitToDevice> queryTenantUnitDeviceByUnitId(String unitId);
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓ID鑾峰彇绉熸埛涓嬫墍鏈夋湁鏁堢殑瀹炰綋琛ㄩ泦鍚�
+     * @param unitId
+     * @return
+     */
+    List<EnergyUnitToDevice> queryTenantEntityMeterByUnitId(String unitId);
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitId 鐢ㄨ兘鍗曞厓id
+     * @return 浠〃id闆嗗悎
+     */
+    List<String> getEnergyUnitDeviceIdByUnitId(String unitId);
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id闆嗗悎鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitIds 鐢ㄨ兘鍗曞厓id
+     */
+    List<String> getEnergyUnitDeviceIdByUnitIds(List<String> unitIds);
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id闆嗗悎+鑳芥簮绫诲瀷鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitIds    鐢ㄨ兘鍗曞厓id闆嗗悎
+     * @return
+     */
+    List<String> getDeviceIdByUnitIds(List<String> unitIds);
+
+    /**
+     * 鏇存柊鑳藉崟鍏僫d鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitId 鐢ㄨ兘鍗曞厓id
+     * @return 浠〃id闆嗗悎
+     */
+    List<String> updateEnergyUnitDeviceIdByUnitId(String unitId);
+
+    /**
+     * 鍒犻櫎鑳藉崟鍏僫d鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     * @param unitId    鐢ㄨ兘鍗曞厓id
+     * @return  浠〃id闆嗗悎
+     */
+    void deleteEnergyUnitDeviceIdByUnitId(String unitId);
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓ID鑾峰彇绉熸埛涓嬫湁鏁堢殑鐢佃〃闆嗗悎
+     * @param unitId
+     * @return
+     */
+    List<ListElectricityMeterVO> listElectricityMeter(String unitId);
+
+    /**
+     * 鑾峰彇绉熸埛涓嬫湁鏁堢殑琛ㄩ泦鍚�
+     * @return
+     */
+    List<EnergyUnitToDevice> listAllMeter();
+
+    /**
+     * 鏍规嵁璁¢噺鍣ㄥ叿id鍜岀敤鑳藉崟鍏僫d鏌ヨ琛ㄥ叧绯�
+     *
+     * @param unitId 鐢ㄨ兘鍗曞厓id
+     * @param id     id
+     * @return EnergyUnitToDevice瀹炰綋
+     */
+    EnergyUnitToDevice getEnergyUnitToDeviceById(String unitId, String id);
+
+    /**
+     * 鏍规嵁璁¢噺鍣ㄥ叿id闆嗗悎鏌ヨ涓庣敤鑳界殑鍏崇郴
+     *
+     * @param unitIds
+     * @return
+     */
+    List<UnitToDeviceRelationVO> listDeviceByUnitIds(List<String> unitIds);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/EnergyUnitToDeviceServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/EnergyUnitToDeviceServiceImpl.java
new file mode 100644
index 0000000..5df3d47
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/EnergyUnitToDeviceServiceImpl.java
@@ -0,0 +1,232 @@
+package com.zhitan.energyMonitor.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhitan.common.constant.CommonConst;
+import com.zhitan.energyMonitor.domain.EnergyUnitToDevice;
+import com.zhitan.energyMonitor.domain.vo.ListElectricityMeterVO;
+import com.zhitan.energyMonitor.domain.vo.UnitToDeviceRelationVO;
+import com.zhitan.energyMonitor.mapper.EnergyUnitToDeviceMapper;
+import com.zhitan.energyMonitor.service.IEnergyUnitToDeviceService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 鐢ㄨ兘鍗曞厓鍏宠仈鐨勫钩鍙版ā鏉夸腑浠〃鐨勭晫闈㈤�昏緫鍏崇郴 涓嶅惈鏈� 閲囬泦銆佽绠椾俊鎭�
+ * @Author: jeecg-boot
+ * @Date: 2022-01-26
+ * @Version: V1.0
+ */
+@Service
+public class EnergyUnitToDeviceServiceImpl extends ServiceImpl<EnergyUnitToDeviceMapper, EnergyUnitToDevice>
+        implements IEnergyUnitToDeviceService {
+
+
+//    @Autowired
+//    private IMeasuringInstrumentsService meterService;
+
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id鑾峰彇绉熸埛涓嬬殑鍏朵笅鐨勪华琛ㄥ垪琛�
+     *
+     * @param unitId
+     * @return
+     */
+    @Override
+    public List<EnergyUnitToDevice> queryTenantUnitDeviceByUnitId(String unitId) {
+
+        QueryWrapper<EnergyUnitToDevice> queryWrapper = new QueryWrapper<EnergyUnitToDevice>();
+//                .eq(TableColumnConst.TABLE_COLUMN_ENERGY_UNIT_ID, unitId);
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓ID鑾峰彇绉熸埛涓嬫墍鏈夋湁鏁堢殑瀹炰綋琛ㄩ泦鍚�
+     *
+     * @param unitId
+     * @return
+     */
+    @Override
+    public List<EnergyUnitToDevice> queryTenantEntityMeterByUnitId(String unitId) {
+
+        List<EnergyUnitToDevice> unitToDeviceList = baseMapper.selectList(Wrappers.<EnergyUnitToDevice>lambdaQuery()
+                .eq(EnergyUnitToDevice::getEnergyUnitId, unitId)
+        );
+//        if (CollectionUtils.isNotEmpty(unitToDeviceList)) {
+//            List<String> meterIds = unitToDeviceList.stream().map(EnergyUnitToDevice::getId).collect(Collectors.toList());
+//            // 杩囨护鍑哄疄浣撹〃
+//            Integer applianceType = EquipmentInformationEnum.MEASURING_INSTRUMENT_TYPE.ENTITY.getValue();
+//            List<Meter> meterList = meterService.list(Wrappers.<Meter>lambdaQuery()
+//                    .select(Meter::getId).in(Meter::getId, meterIds)
+//                    .eq(Meter::getApplianceType, applianceType)
+//            );
+//            List<String> newMeterIds = meterList.stream().map(Meter::getId).collect(Collectors.toList());
+//            unitToDeviceList = unitToDeviceList.stream().filter(li -> newMeterIds.contains(li.getId())).collect(Collectors.toList());
+//        }
+        return unitToDeviceList;
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitId 鐢ㄨ兘鍗曞厓id
+     * @return 浠〃id闆嗗悎
+     */
+    @Override
+//    @Cacheable(value = CacheConstant.ENERGY_UNIT_DEVICE_ID_CACHE, key = "#unitId", unless = "#result == null")
+    public List<String> getEnergyUnitDeviceIdByUnitId(String unitId) {
+
+        if (StringUtils.isEmpty(unitId)) {
+            return Collections.emptyList();
+        }
+        List<EnergyUnitToDevice> energyUnitToDevices = baseMapper.selectList(Wrappers.<EnergyUnitToDevice>lambdaQuery()
+                .select(EnergyUnitToDevice::getId).eq(EnergyUnitToDevice::getEnergyUnitId, unitId)
+        );
+        if (CollectionUtils.isEmpty(energyUnitToDevices)) {
+            return Collections.emptyList();
+        }
+        return energyUnitToDevices.stream().map(EnergyUnitToDevice::getId).collect(Collectors.toList());
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id闆嗗悎鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitIds 鐢ㄨ兘鍗曞厓id
+     */
+    @Override
+    public List<String> getEnergyUnitDeviceIdByUnitIds(List<String> unitIds) {
+        if (CollectionUtils.isEmpty(unitIds)) {
+            return Collections.emptyList();
+        }
+        List<String> deviceIdList = new ArrayList<>();
+        for (String unitId : unitIds) {
+            List<String> unitDeviceIdByUnitId = this.getEnergyUnitDeviceIdByUnitId(unitId);
+            if (CollectionUtils.isNotEmpty(unitDeviceIdByUnitId)) {
+                deviceIdList.addAll(unitDeviceIdByUnitId);
+            }
+        }
+        return deviceIdList;
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id闆嗗悎+鑳芥簮绫诲瀷鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitIds 鐢ㄨ兘鍗曞厓id闆嗗悎
+     * @return
+     */
+    @Override
+    public List<String> getDeviceIdByUnitIds(List<String> unitIds) {
+        if (CollectionUtils.isEmpty(unitIds)) {
+            return Collections.emptyList();
+        }
+
+        return baseMapper.listDeviceByTenantIds(unitIds);
+    }
+
+    /**
+     * 鏇存柊鑳藉崟鍏僫d鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitId 鐢ㄨ兘鍗曞厓id
+     * @return 浠〃id闆嗗悎
+     */
+    @Override
+//    @CachePut(value = CacheConstant.ENERGY_UNIT_DEVICE_ID_CACHE, key = "#unitId", unless = "#result == null")
+    public List<String> updateEnergyUnitDeviceIdByUnitId(String unitId) {
+
+        if (StringUtils.isEmpty(unitId)) {
+            return Collections.emptyList();
+        }
+        List<EnergyUnitToDevice> energyUnitToDevices = baseMapper.selectList(Wrappers.<EnergyUnitToDevice>lambdaQuery()
+                .select(EnergyUnitToDevice::getId).eq(EnergyUnitToDevice::getEnergyUnitId, unitId)
+        );
+        if (CollectionUtils.isEmpty(energyUnitToDevices)) {
+            return Collections.emptyList();
+        }
+        return energyUnitToDevices.stream().map(EnergyUnitToDevice::getId).collect(Collectors.toList());
+    }
+
+    /**
+     * 鍒犻櫎鑳藉崟鍏僫d鑾峰彇绉熸埛涓嬫湁鏁堢殑浠〃id闆嗗悎
+     *
+     * @param unitId 鐢ㄨ兘鍗曞厓id
+     */
+    @Override
+//    @CacheEvict(value = CacheConstant.ENERGY_UNIT_DEVICE_ID_CACHE, key = "#unitId")
+    public void deleteEnergyUnitDeviceIdByUnitId(String unitId) {
+    }
+
+    @Override
+    public List<ListElectricityMeterVO> listElectricityMeter(String unitId) {
+
+        LambdaQueryWrapper<EnergyUnitToDevice> queryWrapper = new LambdaQueryWrapper<EnergyUnitToDevice>()
+                .eq(EnergyUnitToDevice::getEnergyUnitId, unitId);
+//                .eq(EnergyUnitToDevice::getDeviceType, EnergyTypeConst.ELECTRICITY);
+        List<EnergyUnitToDevice> models = baseMapper.selectList(queryWrapper);
+
+        List<ListElectricityMeterVO> resultList = new ArrayList<>();
+        for (EnergyUnitToDevice model : models) {
+            ListElectricityMeterVO temp = new ListElectricityMeterVO();
+            temp.setCode(model.getId());
+            temp.setLabel(model.getName());
+            resultList.add(temp);
+        }
+        return resultList;
+    }
+
+    @Override
+    public List<EnergyUnitToDevice> listAllMeter() {
+        QueryWrapper<EnergyUnitToDevice> queryWrapper = new QueryWrapper<EnergyUnitToDevice>();
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public EnergyUnitToDevice getEnergyUnitToDeviceById(String unitId, String id) {
+        if (StringUtils.isEmpty(id)) {
+            return null;
+        }
+        LambdaQueryWrapper<EnergyUnitToDevice> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(EnergyUnitToDevice::getEnergyUnitId, unitId);
+        lambdaQueryWrapper.eq(EnergyUnitToDevice::getId, id);
+        List<EnergyUnitToDevice> energyUnitToDevices = baseMapper.selectList(lambdaQueryWrapper);
+        if (CollectionUtils.isNotEmpty(energyUnitToDevices)) {
+            return energyUnitToDevices.get(CommonConst.DIGIT_0);
+        }
+        return null;
+    }
+
+    /**
+     * 鏍规嵁璁¢噺鍣ㄥ叿id闆嗗悎鏌ヨ涓庣敤鑳界殑鍏崇郴
+     *
+     * @param unitIds
+     * @return
+     */
+    @Override
+    public List<UnitToDeviceRelationVO> listDeviceByUnitIds(List<String> unitIds) {
+        List<UnitToDeviceRelationVO> relationList = new ArrayList<>();
+        if (CollectionUtils.isEmpty(unitIds)) {
+            return relationList;
+        }
+        List<EnergyUnitToDevice> unitToDeviceList = baseMapper.selectList(Wrappers.<EnergyUnitToDevice>lambdaQuery()
+                .select(EnergyUnitToDevice::getId, EnergyUnitToDevice::getEnergyUnitId, EnergyUnitToDevice::getName)
+                .in(EnergyUnitToDevice::getEnergyUnitId, unitIds)
+        );
+        if (CollectionUtils.isNotEmpty(unitToDeviceList)) {
+            unitToDeviceList.forEach(li -> {
+                UnitToDeviceRelationVO vo = new UnitToDeviceRelationVO();
+                vo.setDeviceId(li.getId());
+                vo.setUnitId(li.getEnergyUnitId());
+                vo.setDeviceName(li.getName());
+                relationList.add(vo);
+            });
+        }
+        return relationList;
+    }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java
index 5ced53d..a84a983 100644
--- a/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java
+++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java
@@ -1,5 +1,8 @@
 package com.zhitan.realtimedata.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.util.List;
@@ -9,10 +12,18 @@
  *
  */
 @Data
+@TableName("sys_equipmentfile")
 public class SysEquipmentFile {
 
+  @TableId
   private String nodeId;
+
+  @TableField(value = "filepath")
   private String filePath;
+
+  @TableField(exist = false)
   private String svgType;
+
+  @TableField(exist = false)
   private List<SysSvgInfo> infoList;
 }
diff --git a/zhitan-system/src/main/resources/mapper/basicSetup/SysEquipmentfileMapper.xml b/zhitan-system/src/main/resources/mapper/basicSetup/SysEquipmentfileMapper.xml
index 379a291..396d884 100644
--- a/zhitan-system/src/main/resources/mapper/basicSetup/SysEquipmentfileMapper.xml
+++ b/zhitan-system/src/main/resources/mapper/basicSetup/SysEquipmentfileMapper.xml
@@ -1,50 +1,48 @@
 <?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">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zhitan.basicSetup.mapper.SysEquipmentfileMapper">
-  <resultMap id="SysEquipmentFile"
-    type="com.zhitan.realtimedata.domain.SysEquipmentFile">
-    <result property="nodeId" column="node_id"/>
-    <result property="filePath" column="filepath"/>
-  </resultMap>
-  <resultMap id="SysSvgInfo"
-    type="com.zhitan.realtimedata.domain.SysSvgInfo">
-    <result property="id" column="id"/>
-    <result property="param" column="param"/>
-    <result property="tag" column="tag"/>
-  </resultMap>
+    <resultMap id="SysEquipmentFile"
+               type="com.zhitan.realtimedata.domain.SysEquipmentFile">
+        <result property="nodeId" column="node_id"/>
+        <result property="filePath" column="filepath"/>
+    </resultMap>
+    <resultMap id="SysSvgInfo"
+               type="com.zhitan.realtimedata.domain.SysSvgInfo">
+        <result property="id" column="id"/>
+        <result property="param" column="param"/>
+        <result property="tag" column="tag"/>
+    </resultMap>
 
-  <insert id="saveSettingInfo">
-    delete
-    from sys_svg_info
-    where node_id = #{nodeId};
+    <insert id="saveSettingInfo">
+        delete
+        from sys_svg_info
+        where node_id = #{nodeId};
 
-    <foreach collection="svgInfo" item="info" separator=";">
-      insert into sys_svg_info (id, node_id, param, tag)
-      values (#{info.id}, #{nodeId}, #{info.param}, #{info.tag});
-    </foreach>
-  </insert>
+        <foreach collection="svgInfo" item="info" separator=";">
+            insert into sys_svg_info (id, node_id, param, tag)
+            values (#{info.id}, #{nodeId}, #{info.param}, #{info.tag});
+        </foreach>
+    </insert>
 
   <update id="saveEquipmentFile">
-    insert into sys_equipmentfile (node_id, filepath)
-    select #{nodeId}, #{filePath}
-    on conflict
-      (node_id)
-    do update
-    set filepath = #{filePath}
+    INSERT INTO sys_equipmentfile (node_id, filepath)
+    VALUES(#{nodeId}, #{filePath}) ON CONFLICT (node_id) DO
+    UPDATE
+    SET filepath = excluded.filepath
   </update>
 
-  <select id="getConfigure" resultMap="SysEquipmentFile">
-    select node_id, filepath
-    from sys_equipmentfile
-    where node_id = #{nodeId};
-  </select>
+    <select id="getConfigure" resultMap="SysEquipmentFile">
+        select node_id, filepath
+        from sys_equipmentfile
+        where node_id = #{nodeId};
+    </select>
 
-  <select id="getConfigureTag" resultMap="SysSvgInfo">
-    select id, param, tag
-    from sys_svg_info
-    where node_id = #{nodeId}
-  </select>
+    <select id="getConfigureTag" resultMap="SysSvgInfo">
+        select id, param, tag
+        from sys_svg_info
+        where node_id = #{nodeId}
+    </select>
 
 </mapper>

--
Gitblit v1.9.3