Browse Source

add function

hlf 1 year ago
parent
commit
11b687885a

+ 1 - 0
build.gradle.kts

@@ -33,6 +33,7 @@ dependencies {
     implementation("org.apache.commons:commons-lang3:3.12.0")
     implementation("org.postgresql:postgresql:42.4.0")
     implementation("org.springframework.boot:spring-boot-starter-data-jpa")
+    //implementation("cn.hutool:hutool-all:5.8.15")
 }
 
 tasks.withType<Test> {

+ 75 - 0
src/main/java/com/gyee/table/controller/ComponentInformationController.java

@@ -0,0 +1,75 @@
+package com.gyee.table.controller;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.gyee.table.entity.Configurationinfo;
+import com.gyee.table.result.Result;
+import com.gyee.table.result.ResultCode;
+import com.gyee.table.service.IConfigurationinfoService;
+import com.gyee.table.utils.SnowflakeIdUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author hlf
+ * @date 2023/3/20 10:03
+ * 文件说明:
+ */
+@Slf4j
+@RestController
+@RequestMapping("/cic")
+public class ComponentInformationController {
+
+    @Resource
+    private IConfigurationinfoService configurationinfoService;
+
+    /**
+     * 查询组件信息列表
+     *
+     * @return
+     */
+    @GetMapping("/componentList")
+    public JSONObject componentList() {
+        List<Configurationinfo> list = configurationinfoService.list();
+        return Result.successData(ResultCode.SUCCESS, list);
+    }
+
+    /**
+     * 新增组件信息
+     *
+     * @param configurationinfo
+     * @return
+     */
+    @PostMapping("/addComponent")
+    public JSONObject addComponent(@RequestBody Configurationinfo configurationinfo) {
+        configurationinfo.setId(Long.toString(new SnowflakeIdUtils(1, 3).nextId()));
+        configurationinfoService.save(configurationinfo);
+        return Result.success();
+    }
+
+    /**
+     * 修改组件信息
+     *
+     * @param configurationinfo
+     * @return
+     */
+    @PostMapping("/updateComponent")
+    public JSONObject updateComponent(@RequestBody Configurationinfo configurationinfo) {
+        configurationinfoService.updateById(configurationinfo);
+        return Result.success();
+    }
+
+    /**
+     * 删除组件信息
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/deleteComponent")
+    public JSONObject deleteComponent(@RequestParam(value = "id") String id) {
+        configurationinfoService.removeById(id);
+        return Result.success();
+    }
+}

+ 1 - 1
src/main/java/com/gyee/table/controller/TerminalController.java

@@ -76,7 +76,7 @@ public class TerminalController {
     }
 
     /**
-     * 根据场站ID获取所有测点
+     * 根据场站ID获取所有风机
      *
      * @return
      */

+ 30 - 0
src/main/java/com/gyee/table/entity/Configurationinfo.java

@@ -0,0 +1,30 @@
+package com.gyee.table.entity;
+
+import lombok.Data;
+
+/**
+ * @author hlf
+ * @date 2023/3/20 9:56
+ * 文件说明:
+ */
+@Data
+public class Configurationinfo {
+
+    private String id;
+    private String name;
+    private String needBg;
+    private String needColor;
+    private String needLw;
+    private String needMap;
+    private String needMapDone;
+    private String otherDesc;
+    private String otherNeed;
+    private String stateDesc;
+    private String svg;
+    private String tr_svg;
+    private String type;
+    private String uploadDate;
+    private String user;
+    private String updataDate;
+    private String changeUser;
+}

+ 14 - 0
src/main/java/com/gyee/table/mapper/ConfigurationinfoMapper.java

@@ -0,0 +1,14 @@
+package com.gyee.table.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.table.entity.Configurationinfo;
+
+/**
+ * @author hlf
+ * @date 2023/3/20 10:01
+ * 文件说明:
+ */
+public interface ConfigurationinfoMapper extends BaseMapper<Configurationinfo> {
+
+
+}

+ 14 - 0
src/main/java/com/gyee/table/service/IConfigurationinfoService.java

@@ -0,0 +1,14 @@
+package com.gyee.table.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.table.entity.Configurationinfo;
+
+/**
+ * @author hlf
+ * @date 2023/3/20 10:00
+ * 文件说明:
+ */
+public interface IConfigurationinfoService extends IService<Configurationinfo> {
+
+
+}

+ 18 - 0
src/main/java/com/gyee/table/service/impl/ConfigurationinfoServiceImpl.java

@@ -0,0 +1,18 @@
+package com.gyee.table.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.table.entity.Configurationinfo;
+import com.gyee.table.mapper.ConfigurationinfoMapper;
+import com.gyee.table.service.IConfigurationinfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author hlf
+ * @date 2023/3/20 10:00
+ * 文件说明:
+ */
+@Service
+public class ConfigurationinfoServiceImpl extends ServiceImpl<ConfigurationinfoMapper, Configurationinfo> implements IConfigurationinfoService {
+
+
+}

+ 178 - 0
src/main/java/com/gyee/table/utils/SnowflakeIdUtils.java

@@ -0,0 +1,178 @@
+package com.gyee.table.utils;
+
+/**
+ * @author hlf
+ * @date 2023/3/23 14:15
+ * 文件说明:自动生成雪花唯一ID
+ */
+public class SnowflakeIdUtils {
+
+    /**
+     * 开始时间截 (2015-01-01)
+     */
+    private final long twepoch = 1420041600000L;
+
+    /**
+     * 机器id所占的位数
+     */
+    private final long workerIdBits = 5L;
+
+    /**
+     * 数据标识id所占的位数
+     */
+    private final long datacenterIdBits = 5L;
+
+    /**
+     * 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数)
+     */
+    private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
+
+    /**
+     * 支持的最大数据标识id,结果是31
+     */
+    private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
+
+    /**
+     * 序列在id中占的位数
+     */
+    private final long sequenceBits = 12L;
+
+    /**
+     * 机器ID向左移12位
+     */
+    private final long workerIdShift = sequenceBits;
+
+    /**
+     * 数据标识id向左移17位(12+5)
+     */
+    private final long datacenterIdShift = sequenceBits + workerIdBits;
+
+    /**
+     * 时间截向左移22位(5+5+12)
+     */
+    private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
+
+    /**
+     * 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095)
+     */
+    private final long sequenceMask = -1L ^ (-1L << sequenceBits);
+
+    /**
+     * 工作机器ID(0~31)
+     */
+    private long workerId;
+
+    /**
+     * 数据中心ID(0~31)
+     */
+    private long datacenterId;
+
+    /**
+     * 毫秒内序列(0~4095)
+     */
+    private long sequence = 0L;
+
+    /**
+     * 上次生成ID的时间截
+     */
+    private long lastTimestamp = -1L;
+
+    //==============================Constructors=====================================
+
+    /**
+     * 构造函数
+     *
+     * @param workerId     工作ID (0~31)
+     * @param datacenterId 数据中心ID (0~31)
+     */
+    public SnowflakeIdUtils(long workerId, long datacenterId) {
+        if (workerId > maxWorkerId || workerId < 0) {
+            throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
+        }
+        if (datacenterId > maxDatacenterId || datacenterId < 0) {
+            throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
+        }
+        this.workerId = workerId;
+        this.datacenterId = datacenterId;
+    }
+
+    // ==============================Methods==========================================
+
+    /**
+     * 获得下一个ID (该方法是线程安全的)
+     *
+     * @return SnowflakeId
+     */
+    public synchronized long nextId() {
+        long timestamp = timeGen();
+
+        //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常
+        if (timestamp < lastTimestamp) {
+            throw new RuntimeException(
+                    String.format("Clock moved backwards.  Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
+        }
+
+        //如果是同一时间生成的,则进行毫秒内序列
+        if (lastTimestamp == timestamp) {
+            sequence = (sequence + 1) & sequenceMask;
+            //毫秒内序列溢出
+            if (sequence == 0) {
+                //阻塞到下一个毫秒,获得新的时间戳
+                timestamp = tilNextMillis(lastTimestamp);
+            }
+        }
+        //时间戳改变,毫秒内序列重置
+        else {
+            sequence = 0L;
+        }
+
+        //上次生成ID的时间截
+        lastTimestamp = timestamp;
+
+        //移位并通过或运算拼到一起组成64位的ID
+        return ((timestamp - twepoch) << timestampLeftShift) //
+                | (datacenterId << datacenterIdShift) //
+                | (workerId << workerIdShift) //
+                | sequence;
+    }
+
+    /**
+     * 阻塞到下一个毫秒,直到获得新的时间戳
+     *
+     * @param lastTimestamp 上次生成ID的时间截
+     * @return 当前时间戳
+     */
+    protected long tilNextMillis(long lastTimestamp) {
+        long timestamp = timeGen();
+        while (timestamp <= lastTimestamp) {
+            timestamp = timeGen();
+        }
+        return timestamp;
+    }
+
+    /**
+     * 返回以毫秒为单位的当前时间
+     *
+     * @return 当前时间(毫秒)
+     */
+    protected long timeGen() {
+        return System.currentTimeMillis();
+    }
+
+    /**
+     * 测试
+     */
+    public static void main(String[] args) {
+        long start = System.currentTimeMillis();
+        SnowflakeIdUtils idWorker = new SnowflakeIdUtils(1, 3);
+        for (int i = 0; i < 50; i++) {
+            long id = idWorker.nextId();
+            System.out.println(Long.toBinaryString(id));
+            System.out.println(id);
+        }
+        long end = System.currentTimeMillis();
+        System.out.println(end - start);
+
+    }
+
+}

+ 5 - 0
src/main/resources/mappers/Configurationinfo.xml

@@ -0,0 +1,5 @@
+<?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.gyee.table.mapper.ConfigurationinfoMapper">
+
+</mapper>