ソースを参照

储能逆变设备列表

zhj 2 年 前
コミット
1efec2178a

+ 108 - 0
src/main/java/com/welampiot/controller/ContravariantController.java

@@ -0,0 +1,108 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.ContravariantDevInfoDTO;
+import com.welampiot.service.ContravariantDevInfoService;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.ContravariantDevInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.DecimalFormat;
+import java.util.List;
+
+/**
+ * ClassName: ContravariantController
+ * Package: com.welampiot.controller
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/15 - 16:27
+ * @Version: v1.0
+ */
+@RestController
+@CrossOrigin
+@RequestMapping("/contravariant")
+public class ContravariantController {
+    @Autowired
+    private ToolUtils toolUtils;
+
+    @Autowired
+    private ContravariantDevInfoService contravariantDevInfoService;
+
+    /**
+     * 储能逆变设备列表
+     * @param request sectionList
+     * @return 储能逆变设备列表
+     */
+    @RequestMapping(value = "/devList", method = RequestMethod.POST)
+    public BaseResult<?> devList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
+        String online = (String) toolUtils.getRequestContent(request,"online",2);
+        String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        ContravariantDevInfoVO contravariantDevInfoVO = new ContravariantDevInfoVO();
+        contravariantDevInfoVO.setAreaId(areaId);
+        contravariantDevInfoVO.setSectionId(sectionId);
+        contravariantDevInfoVO.setPage(count * (page - 1));
+        contravariantDevInfoVO.setCount(count);
+        contravariantDevInfoVO.setOnline(online);
+        contravariantDevInfoVO.setKeyword(keyword);
+        contravariantDevInfoVO.setSectionList(toolUtils.getSectionList(request));
+        List<ContravariantDevInfoDTO> list = contravariantDevInfoService.getContravariantList(contravariantDevInfoVO);
+        Integer total = contravariantDevInfoService.getContravariantDevTotal(contravariantDevInfoVO);
+        Integer onlineCount = contravariantDevInfoService.getContravariantDevOnlineTotal(contravariantDevInfoVO);
+        ContravariantDevInfoVO contravariantDevInfoVO1 = new ContravariantDevInfoVO();
+        contravariantDevInfoVO1.setList(list);
+        contravariantDevInfoVO1.setTotal(total);
+        contravariantDevInfoVO1.setTotalOnline(onlineCount);
+        ContravariantDevInfoDTO dto = contravariantDevInfoService.getContravariantTotalData(contravariantDevInfoVO);
+        DecimalFormat decimalFormat = new DecimalFormat("0.00");
+        if (dto == null) {
+            contravariantDevInfoVO1.setTotalCom(0f);
+            contravariantDevInfoVO1.setTotalWindEne(0f);
+            contravariantDevInfoVO1.setTotalSolarEne(0f);
+            contravariantDevInfoVO1.setTotalUpsEne(0f);
+        } else {
+            if (dto.getTotalCom() == null) {
+                contravariantDevInfoVO1.setTotalCom(0f);
+            } else {
+                Float totalCom = dto.getTotalCom();
+                String format = decimalFormat.format(totalCom);
+                contravariantDevInfoVO1.setTotalCom(Float.valueOf(format));
+            }
+            if (dto.getWindEne() == null) {
+                contravariantDevInfoVO1.setTotalWindEne(0f);
+            } else {
+                Float windEne = dto.getWindEne();
+                String format = decimalFormat.format(windEne);
+                contravariantDevInfoVO1.setTotalWindEne(Float.valueOf(format));
+            }
+            if (dto.getSolarEne() == null) {
+                contravariantDevInfoVO1.setTotalSolarEne(0f);
+            } else {
+                Float solarEne = dto.getSolarEne();
+                String format = decimalFormat.format(solarEne);
+                contravariantDevInfoVO1.setTotalSolarEne(Float.valueOf(format));
+            }
+            if (dto.getUpsEne() == null) {
+                contravariantDevInfoVO1.setTotalUpsEne(0f);
+            } else {
+                Float upsEne = dto.getUpsEne();
+                String format = decimalFormat.format(upsEne);
+                contravariantDevInfoVO1.setTotalUpsEne(Float.valueOf(format));
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,contravariantDevInfoVO1);
+    }
+}

+ 25 - 0
src/main/java/com/welampiot/dao/ContravariantDevInfoDao.java

@@ -0,0 +1,25 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.ContravariantDevInfoDTO;
+import com.welampiot.vo.ContravariantDevInfoVO;
+
+import java.util.List;
+
+/**
+ * ClassName: ContravariantDevInfoDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/15 - 16:17
+ * @Version: v1.0
+ */
+public interface ContravariantDevInfoDao {
+    List<ContravariantDevInfoDTO> getContravariantList(ContravariantDevInfoVO vo);
+
+    ContravariantDevInfoDTO getContravariantTotalData(ContravariantDevInfoVO vo);
+
+    Integer getContravariantDevTotal(ContravariantDevInfoVO vo);
+
+    Integer getContravariantDevOnlineTotal(ContravariantDevInfoVO vo);
+}

+ 73 - 0
src/main/java/com/welampiot/dto/ContravariantDevInfoDTO.java

@@ -0,0 +1,73 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: ContravariantDevInfoDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/15 - 15:24
+ * @Version: v1.0
+ */
+@Data
+public class ContravariantDevInfoDTO implements Serializable {
+    private Integer id;
+
+    private String sn;
+
+    private Integer lampPoleId;
+
+    private Integer online; // 设备在线状态(0 离线,1 在线)
+
+    private Integer devType; // 设备类型(0 逆变器,1 风机控制器)
+
+    private Float voltage; // 交流电压
+
+    private Float current; // 交流电流
+
+    private Float power; // 交流功率
+
+    private Float solarVol; // 光伏电压
+
+    private Float solarCur; // 光伏电流
+
+    private Float solarPow; // 光伏功率
+
+    private Float windVol; // 风机电压
+
+    private Float windCur; // 风机电流
+
+    private Float windPow; // 风机功率
+
+    private Float upsVol; // ups电压
+
+    private Float upsCur; // ups电流
+
+    private Float upsPow; // ups功率
+
+    private Float upsEne; // ups储能
+
+    private Integer upsStatus; // ups状态
+
+    private Float upsSoc; // ups剩余电量
+
+    private Float totalCom; // 累计用电量
+
+    private Float solarEne; // 光伏储能
+
+    private Float windEne; // 风电储能
+
+    private Integer serialPort; // 串口号(0 3号串口,1 2号串口,2 3号串口)
+
+    private String updateTime; // 数据更新时间
+
+    private String installDate;
+
+    private String expirationDate;
+
+    private static final long serialVersionUID = 1L;
+}

+ 25 - 0
src/main/java/com/welampiot/service/ContravariantDevInfoService.java

@@ -0,0 +1,25 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.ContravariantDevInfoDTO;
+import com.welampiot.vo.ContravariantDevInfoVO;
+
+import java.util.List;
+
+/**
+ * ClassName: ContravariantDevInfoService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/15 - 16:25
+ * @Version: v1.0
+ */
+public interface ContravariantDevInfoService {
+    List<ContravariantDevInfoDTO> getContravariantList(ContravariantDevInfoVO vo);
+
+    ContravariantDevInfoDTO getContravariantTotalData(ContravariantDevInfoVO vo);
+
+    Integer getContravariantDevTotal(ContravariantDevInfoVO vo);
+
+    Integer getContravariantDevOnlineTotal(ContravariantDevInfoVO vo);
+}

+ 45 - 0
src/main/java/com/welampiot/service/impl/ContravariantDevInfoServiceImpl.java

@@ -0,0 +1,45 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.ContravariantDevInfoDao;
+import com.welampiot.dto.ContravariantDevInfoDTO;
+import com.welampiot.service.ContravariantDevInfoService;
+import com.welampiot.vo.ContravariantDevInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: ContravariantDevInfoServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/15 - 16:25
+ * @Version: v1.0
+ */
+@Service
+public class ContravariantDevInfoServiceImpl implements ContravariantDevInfoService {
+    @Autowired
+    private ContravariantDevInfoDao contravariantDevInfoDao;
+
+    @Override
+    public List<ContravariantDevInfoDTO> getContravariantList(ContravariantDevInfoVO vo) {
+        return contravariantDevInfoDao.getContravariantList(vo);
+    }
+
+    @Override
+    public ContravariantDevInfoDTO getContravariantTotalData(ContravariantDevInfoVO vo) {
+        return contravariantDevInfoDao.getContravariantTotalData(vo);
+    }
+
+    @Override
+    public Integer getContravariantDevTotal(ContravariantDevInfoVO vo) {
+        return contravariantDevInfoDao.getContravariantDevTotal(vo);
+    }
+
+    @Override
+    public Integer getContravariantDevOnlineTotal(ContravariantDevInfoVO vo) {
+        return contravariantDevInfoDao.getContravariantDevOnlineTotal(vo);
+    }
+}

+ 47 - 0
src/main/java/com/welampiot/vo/ContravariantDevInfoVO.java

@@ -0,0 +1,47 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.ContravariantDevInfoDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: ContravariantDevInfoVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/15 - 16:18
+ * @Version: v1.0
+ */
+@Data
+public class ContravariantDevInfoVO implements Serializable {
+    private Integer areaId;
+
+    private Integer sectionId;
+
+    private Integer page;
+
+    private Integer count;
+
+    private String keyword;
+
+    private String online;
+
+    private List sectionList;
+
+    private Integer total;
+
+    private Integer totalOnline;
+
+    private Float totalCom;
+
+    private Float totalSolarEne;
+
+    private Float totalWindEne;
+
+    private Float totalUpsEne;
+
+    private List<ContravariantDevInfoDTO> list;
+}

+ 107 - 0
src/main/resources/mapper/ContravariantDevInfoMapper.xml

@@ -0,0 +1,107 @@
+<?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.welampiot.dao.ContravariantDevInfoDao">
+    
+    <select id="getContravariantList" resultType="ContravariantDevInfoDTO">
+        select
+            c.id,c.lamp_pole_id as lampPoleId,lp.name as lampPoleName,
+            c.sn,c.dev_type as devType,c.voltage,c.current,c.power,
+            c.solar_vol as solarVol,c.solar_cur as solarCur,c.solar_pow as solarPow,
+            c.ups_vol as upsVol,c.ups_cur as upsCur,c.ups_pow as upsPow,ups_ene as upsEne,
+            c.ups_status as upsStatus,c.ups_soc as upsSoc,c.updatetime as updateTime,
+            c.install_date as installDate,c.expiration_date as expirationDate
+        from contravariant_dev_info c
+        left join lamp_pole lp on lp.id = c.lamp_pole_id
+        where 1=1
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and c.sn like '%${keyword}%'
+        </if>
+        <choose>
+            <when test="online == 0">
+                and c.online = 0
+            </when>
+            <when test="online == 1">
+                and c.online = 1
+            </when>
+        </choose>
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getContravariantTotalData" resultType="ContravariantDevInfoDTO">
+        select
+        sum(c.total_com) as totalCom,
+        sum(c.ups_ene) as upsEne,
+        sum(c.solar_ene) as solarEne,
+        sum(c.wind_ene) as windEne
+        from contravariant_dev_info c
+        left join lamp_pole lp on lp.id = c.lamp_pole_id
+        where 1=1
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="getContravariantDevTotal" resultType="Integer">
+        select
+            count(*)
+        from contravariant_dev_info c
+        left join lamp_pole lp on lp.id = c.lamp_pole_id
+        where 1=1
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="getContravariantDevOnlineTotal" resultType="Integer">
+        select
+        count(*)
+        from contravariant_dev_info c
+        left join lamp_pole lp on lp.id = c.lamp_pole_id
+        where c.online = 1
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+ 
+</mapper>