Przeglądaj źródła

新增 批量创建设备基础信息接口

zhaiyifei 1 rok temu
rodzic
commit
51b52d99a1

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/reqvo/IotDeviceAddReqVo.java

@@ -26,8 +26,8 @@ public class IotDeviceAddReqVo {
     /** 设备编号 */
     @NotNull(message = "设备编号不能为空")
     @NotEmpty(message = "设备编号不能为空")
-    @Excel(name = "设备编号")
-    private String devCode;
+    @Excel(name = "设备编号数组")
+    private String[] devCodeList;
 
     /** 设备名称 */
     @NotNull(message = "设备编号不能为空")

+ 8 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/mapper/IotDeviceMapper.java

@@ -37,6 +37,14 @@ public interface IotDeviceMapper
     public int insertIotDevice(IotDevice iotDevice);
 
     /**
+     * 批量新增设备基础
+     *
+     * @param iotDeviceList 设备基础
+     * @return 结果
+     */
+    public int insertIotDeviceByBatch(List<IotDevice> iotDeviceList);
+
+    /**
      * 修改设备基础
      * 
      * @param iotDevice 设备基础

+ 8 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/service/IIotDeviceService.java

@@ -46,6 +46,14 @@ public interface IIotDeviceService
     public int insertIotDevice(IotDevice iotDevice);
 
     /**
+     * 批量新增设备基础
+     *
+     * @param iotDeviceList 设备基础列表
+     * @return 结果
+     */
+    public int insertIotDeviceByBatch(List<IotDevice> iotDeviceList);
+
+    /**
      * 修改设备基础
      * 
      * @param iotDevice 设备基础

+ 55 - 24
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotDeviceServiceImpl.java

@@ -1,8 +1,6 @@
 package com.yunfeiyun.agmp.iotm.web.service.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.yunfeiyun.agmp.common.constant.ErrorCode;
@@ -65,12 +63,12 @@ public class IotDeviceServiceImpl implements IIotDeviceService
     @Override
     public int addIotDevice(IotDeviceAddReqVo reqVo) {
         String devconnBid = reqVo.getDevconnBid();
-        String devCode = reqVo.getDevCode();
-        String devName = reqVo.getDevName();
+        String[] devCodeList = reqVo.getDevCodeList();
 
-        if(StringUtils.isEmpty(devCode) || StringUtils.isEmpty(devName) ){
-            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备编码或设备名称不能为空");
+        if(devCodeList == null || devCodeList.length == 0){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备编码不能为空");
         }
+
         IotDeviceconn selectDeviceconn = new IotDeviceconn();
         selectDeviceconn.setDevconnBid(devconnBid);
         List<IotDeviceconn> iotDeviceconnList = iotDeviceconnService.selectIotDeviceconnList(selectDeviceconn);
@@ -79,34 +77,50 @@ public class IotDeviceServiceImpl implements IIotDeviceService
         }
 
         IotDeviceconn iotDeviceconn = iotDeviceconnList.get(0);
+        String devName = iotDeviceconn.getDevtypeName();
+        if(devCodeList.length == 1){
+            devName = reqVo.getDevName();
+        }
+
+        if(StringUtils.isEmpty(devName) ){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备名称不能为空");
+        }
 
         String firmBid = iotDeviceconn.getFirmBid();
         String devtypeBid = iotDeviceconn.getDevtypeBid();
 
         IotDevice selectIotDevice = new IotDevice();
-        selectIotDevice.setDevCode(devCode);
         selectIotDevice.setFirmBid(firmBid);
         selectIotDevice.setDevtypeBid(devtypeBid);
 
         List<IotDevice> iotDeviceList = selectIotDeviceList(selectIotDevice);
-        if(iotDeviceList != null && !iotDeviceList.isEmpty()){
-            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"该设备已存在");
+        Set<String> devCodeSet = new HashSet<>();
+        for (IotDevice iotDevice : iotDeviceList) {
+            devCodeSet.add(iotDevice.getFirmBid() + iotDevice.getDevtypeBid() + iotDevice.getDevCode());
+        }
+        List<IotDevice> insertIotDeviceList = new ArrayList<>();
+        for (String devCode : devCodeList) {
+            if(devCodeSet.contains(firmBid+devtypeBid+devCode)){
+                throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"该设备已存在:"+devCode);
+            }
+
+            IotDevice iotDevice = new IotDevice();
+            iotDevice.setDevBid(iotDevice.getUUId());
+            iotDevice.setDevtypeBid(devtypeBid);
+            iotDevice.setDevclassBid(iotDeviceconn.getDevclassBid());
+            iotDevice.setFirmBid(firmBid);
+            iotDevice.setDevconnBid(devconnBid);
+            iotDevice.setDevCode(devCode);
+            iotDevice.setDevName(devName);
+            iotDevice.setDevStatus(IotDeviceStatusTypeEnum.WAIT_ACTIVATE.getCode());
+            iotDevice.setDevCreator(SecurityUtils.getUserId());
+            iotDevice.setDevCreateddate(DateUtils.dateTimeNow());
+            iotDevice.setDevDelstatus(IotDeviceDelStatusEnum.NOT_DELETE.getCode());
+
+            insertIotDeviceList.add(iotDevice);
         }
 
-        IotDevice iotDevice = new IotDevice();
-        iotDevice.setDevBid(iotDeviceconn.getUUId());
-        iotDevice.setDevtypeBid(devtypeBid);
-        iotDevice.setDevclassBid(iotDeviceconn.getDevclassBid());
-        iotDevice.setFirmBid(firmBid);
-        iotDevice.setDevconnBid(devconnBid);
-        iotDevice.setDevCode(devCode);
-        iotDevice.setDevName(devName);
-        iotDevice.setDevStatus(IotDeviceStatusTypeEnum.WAIT_ACTIVATE.getCode());
-        iotDevice.setDevCreator(SecurityUtils.getUserId());
-        iotDevice.setDevCreateddate(DateUtils.dateTimeNow());
-        iotDevice.setDevDelstatus(IotDeviceDelStatusEnum.NOT_DELETE.getCode());
-
-        return insertIotDevice(iotDevice);
+        return insertIotDeviceByBatch(insertIotDeviceList);
     }
 
     @Override
@@ -170,6 +184,23 @@ public class IotDeviceServiceImpl implements IIotDeviceService
     }
 
     /**
+     * 批量新增设备基础
+     *
+     * @param iotDeviceList 设备基础列表
+     * @return 结果
+     */
+    @Override
+    public int insertIotDeviceByBatch(List<IotDevice> iotDeviceList) {
+        for (IotDevice iotDevice : iotDeviceList) {
+            iotDevice.setTid(SecurityUtils.getTid());
+        }
+        int status = iotDeviceMapper.insertIotDeviceByBatch(iotDeviceList);
+        // TODO 发送消息
+        // 获取连接 订阅设备
+        return status;
+    }
+
+    /**
      * 修改设备基础
      * 
      * @param iotDevice 设备基础

+ 21 - 0
src/main/resources/mapper/IotDeviceMapper.xml

@@ -175,6 +175,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          </trim>
     </insert>
 
+    <insert id="insertIotDeviceByBatch" parameterType="list" useGeneratedKeys="true" keyProperty="id">
+        insert into IotDevice (
+            devBid, tid, devtypeBid, firmBid, devclassBid, devconnBid, devCode, devName, devVersion, devStatus,
+            devProvince, devCity, devDistrict, devLng, devLat, devPositionstatus, devPositiontype, devTag, devRecogtype,
+            devNetworktype, devOfflinedate, devProvincealign, devCityalign, devDistrictalign, devLngalign, devLatalign,
+            devContacts, devTel, devCreator, devModifier, devUpdateddate, devModifieddate, devCreateddate, devDelstatus
+        )
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (
+                #{item.devBid}, #{item.tid}, #{item.devtypeBid}, #{item.firmBid}, #{item.devclassBid}, #{item.devconnBid},
+                #{item.devCode}, #{item.devName}, #{item.devVersion}, #{item.devStatus}, #{item.devProvince}, #{item.devCity},
+                #{item.devDistrict}, #{item.devLng}, #{item.devLat}, #{item.devPositionstatus}, #{item.devPositiontype},
+                #{item.devTag}, #{item.devRecogtype}, #{item.devNetworktype}, #{item.devOfflinedate}, #{item.devProvincealign},
+                #{item.devCityalign}, #{item.devDistrictalign}, #{item.devLngalign}, #{item.devLatalign}, #{item.devContacts},
+                #{item.devTel}, #{item.devCreator}, #{item.devModifier}, #{item.devUpdateddate}, #{item.devModifieddate},
+                #{item.devCreateddate}, #{item.devDelstatus}
+            )
+        </foreach>
+    </insert>
+
     <update id="updateIotDevice" parameterType="IotDevice">
         update IotDevice
         <trim prefix="SET" suffixOverrides=",">

+ 2 - 1
src/main/resources/mapper/IotDeviceconnMapper.xml

@@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="firmBid"    column="firmBid"    />
         <result property="devconnType"    column="devconnType"    />
         <result property="devconnName"    column="devconnName"    />
+        <result property="devtypeName"    column="devtypeName"    />
         <result property="devconnConfig"    column="devconnConfig"    />
         <result property="devconnRemark"    column="devconnRemark"    />
         <result property="devconnCreator"    column="devconnCreator"    />
@@ -29,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectIotDeviceconnList" parameterType="IotDeviceconn" resultMap="IotDeviceconnResult">
         select dcn.devconnBid, dcn.devtypeBid, dcn.devconnType, dcn.devconnName, dcn.devconnConfig, dcn.devconnRemark,
             dcn.devconnCreator, dcn.devconnModifier, dcn.devconnModifieddate, dcn.devconnCreateddate,
-            dt.devclassBid, dt.firmBid
+            dt.devclassBid, dt.firmBid, dt.devtypeName
         from IotDeviceconn as dcn
             left join TosDevicetype as dt on dt.devtypeBid = dcn.devtypeBid