Commit 090bae2e authored by linruibiao's avatar linruibiao

commit

parents
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
/*
* Copyright 2007-present the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.syc</groupId>
<artifactId>slm-bi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>slm-bi</name>
<description>slm-bi</description>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.version>3.8.1</maven.compiler.version>
<influxdb-java.version>2.4</influxdb-java.version>
<httpclient.version>4.5.2</httpclient.version>
<httpmime.version>4.5.2</httpmime.version>
<httpcore.version>4.4.4</httpcore.version>
<guava.version>23.0</guava.version>
<gson.version>2.8.2</gson.version>
<swagger.fox.version>3.0.0</swagger.fox.version>
<druid.version>1.2.3</druid.version>
<mybatis.version>2.1.4</mybatis.version>
<dom4j.version>1.6.1</dom4j.version>
<aspectjweaver.version>1.8.13</aspectjweaver.version>
<commons-collections4.version>4.2</commons-collections4.version>
<commons-io.version>2.6</commons-io.version>
<slf4j.version>1.7.25</slf4j.version>
<mybatis-plus.version>3.3.2</mybatis-plus.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- influxdb架包 -->
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>${influxdb-java.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>${httpmime.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpcore.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectjweaver.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons-collections4.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>${dom4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.12.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<target>${maven.compiler.target}</target>
<source>${maven.compiler.source}</source>
<encoding>UTF-8</encoding>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
/*
*
* Copyright (c) 2018-2025, slm All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: slm
*
*/
package com.syc.slm.common.core.constant;
/**
* @author slm
* @date 2017/10/29
*/
public interface CommonConstants {
/**
* 成功标记
*/
Integer SUCCESS = 0;
/**
* 失败标记
*/
Integer FAIL = 1;
}
/*
*
* Copyright (c) 2018-2025, slm All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: slm
*
*/
package com.syc.slm.common.core.util;
import com.syc.slm.common.core.constant.CommonConstants;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 响应信息主体
*
* @param <T>
* @author slm
*/
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "响应信息主体")
public class R<T> implements Serializable {
private static final long serialVersionUID = 1L;
@Getter
@Setter
@ApiModelProperty(value = "返回标记:成功标记=0,失败标记=1")
private int code;
@Getter
@Setter
@ApiModelProperty(value = "返回信息")
private String msg;
@Getter
@Setter
@ApiModelProperty(value = "数据")
private T data;
public static <T> R<T> ok() {
return restResult(null, CommonConstants.SUCCESS, null);
}
public static <T> R<T> ok(T data) {
return restResult(data, CommonConstants.SUCCESS, null);
}
public static <T> R<T> ok(T data, String msg) {
return restResult(data, CommonConstants.SUCCESS, msg);
}
public static <T> R<T> failed() {
return restResult(null, CommonConstants.FAIL, null);
}
public static <T> R<T> failed(String msg) {
return restResult(null, CommonConstants.FAIL, msg);
}
public static <T> R<T> failed(T data) {
return restResult(data, CommonConstants.FAIL, null);
}
public static <T> R<T> failed(T data, String msg) {
return restResult(data, CommonConstants.FAIL, msg);
}
private static <T> R<T> restResult(T data, int code, String msg) {
R<T> apiResult = new R<>();
apiResult.setCode(code);
apiResult.setData(data);
apiResult.setMsg(msg);
return apiResult;
}
}
package com.syc.slm.slmbi;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.syc.**.dao")
@SpringBootApplication
public class SlmBiApplication {
public static void main(String[] args) {
SpringApplication.run(SlmBiApplication.class, args);
}
}
package com.syc.slm.slmbi.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* slm-bi
* Influxdb 配置
* @author : lin
* @date : 2021-03-25 10:50
**/
@Data
@Configuration
public class InfluxdbConfig {
@Value("${influxdb.host}")
public String host;
@Value("${influxdb.port}")
public String port;
@Value("${influxdb.username}")
public String username;
@Value("${influxdb.password}")
public String password;
}
package com.syc.slm.slmbi.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* slm-bi
* mybatisplus 配置
*
* @author : lin
* @date : 2021-03-25 14:44
**/
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
package com.syc.slm.slmbi.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* slm-bi
* Swagger 配置
* @author : lin
* @date : 2021-03-25 10:50
**/
@Configuration
@EnableOpenApi
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.syc")).paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("Swagger").description("Swagger support").contact(new Contact("syc", "https://slm.sycdev.com/#/login", "syc.com"))
.version("3.0").build();
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.service.DeptService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* slm-bi
* 部门
*
* @author : lin
* @date : 2021-03-25 18:39
**/
@RequestMapping("/bi/dept")
@RestController
@Api(value = "部门信息接口",description = "部门信息接口")
public class DeptController {
@Autowired
private DeptService deptService;
@GetMapping("/select_dept_list")
@ApiOperation("部门查询")
@ApiImplicitParam(name="deptName",value="部门名称")
public R selectDeptList(@RequestParam(value = "deptName",required = false) String deptName){
return R.ok(deptService.selectDeptList(deptName));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO;
import com.syc.slm.slmbi.service.InstrumentPanelConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* slm-bi
* 仪表板样式以及数据配置
*
* @author : lin
* @date : 2021-03-25 19:09
**/
@RequestMapping("/bi/instrument_panel_config")
@RestController
@Api(value = "仪表板样式以及数据配置",description = "仪表板样式以及数据配置")
public class InstrumentPanelConfigController {
@Autowired
private InstrumentPanelConfigService instrumentPanelConfigService;
@PostMapping("save_instrument_panel_config")
@ApiOperation("保存,或者发布仪表板样式以及数据配置")
@ApiImplicitParam(name ="optType", value ="1 保存 2 保存发布" )
public R saveInstrumentPanelConfig(@RequestBody InstrumentPanelConfigDTO config,@RequestParam Integer optType){//1 保存 2 保存发布
return R.ok(instrumentPanelConfigService.saveInstrumentPanelConfig(config,optType));
}
@GetMapping("get_instrument_panel_config_by_instrument_panel_id")
@ApiOperation("根据仪表板id获取仪表板配置")
@ApiImplicitParam(name ="instrumentPanelId", value ="仪表板id" )
public R getInstrumentPanelConfigByInstrumentPanelId(@RequestParam String instrumentPanelId){
return R.ok(instrumentPanelConfigService.getInstrumentPanelConfigByInstrumentPanelId(instrumentPanelId));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dto.InstrumentPanelDTO;
import com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO;
import com.syc.slm.slmbi.entity.InstrumentPanel;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import com.syc.slm.slmbi.service.InstrumentPanelService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* slm-bi
* 仪表板
*
* @author : lin
* @date : 2021-03-25 15:10
**/
@RestController
@RequestMapping("/bi/instrument_panel")
@Api(value = "仪表板",description = "仪表板配置接口")
public class InstrumentPanelController {
@Autowired
private InstrumentPanelService instrumentPanelService;
@GetMapping("/instrument_panels")
@ApiOperation("仪表板列表")
public R selectInstrumentPanelList(@RequestBody InstrumentPanelDTO where){ //where :{name:'',creator:'',updater:'',startDate:'' ,endDate:'',recordStatus:''}
return R.ok(instrumentPanelService.selectInstrumentPanelList(where));
}
@PostMapping("/save_instrument_panel")
@ApiOperation("新增仪表板")
public R saveInstrumentPanel(@RequestBody InstrumentPanel panel){
return R.ok(instrumentPanelService.saveInstrumentPanel(panel));
}
@PostMapping("/batch_push_instrument_panel")
@ApiOperation("批量发布或者下线")
@ApiImplicitParams({
@ApiImplicitParam(name="ids",value="仪表板id集合",required=true),
@ApiImplicitParam(name="optType",value="操作类型,1 发布,2 下线",required=true,dataType="Integer")
})
public R batchPushInstrumentPanel(@RequestBody List<String> ids,@RequestParam Integer optType){
return R.ok(instrumentPanelService.batchPushInstrumentPanel(ids,optType));
}
@PostMapping("/del_push_instrument_panel")
@ApiOperation("删除仪表板")
@ApiImplicitParam(name="id",value="仪表板id",required=true)
public R delPushInstrumentPanel(@RequestParam String id){
return R.ok(instrumentPanelService.delPushInstrumentPanel(id));
}
@PostMapping("/save_as_instrument_panel")
@ApiOperation("另存为")
public R saveAsInstrumentPanel(@RequestBody InstrumentPanelDTO instrumentPanelDTO) {
return R.ok(instrumentPanelService.saveAsInstrumentPanel(instrumentPanelDTO));
}
@PostMapping("/show_recovery_btn")
@ApiOperation("是否显示恢复按钮")
@ApiImplicitParam(name="id",value="仪表板id",required=true)
public R showRecoveryBtn(@RequestParam String id) {
return R.ok(instrumentPanelService.showRecoveryBtn(id));
}
@PostMapping("/recovery_instrument_panel")
@ApiOperation("是否显示恢复按钮")
@ApiImplicitParam(name="id",value="仪表板id",required=true)
public R recoveryInstrumentPanel(@RequestParam String id) {
return R.ok(instrumentPanelService.recoveryInstrumentPanel(id));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import com.syc.slm.slmbi.service.InstrumentPanelGroupService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* slm-bi
* 仪表板分组
*
* @author : lin
* @date : 2021-03-25 15:07
**/
@RestController
@RequestMapping("/bi/instrumentPanelGroup")
@Api(value = "仪表板分组",description = "仪表板分组接口")
public class InstrumentPanelGroupController {
@Autowired
private InstrumentPanelGroupService instrumentPanelGroupService;
@GetMapping("/selectInstrumentPanelGroupList")
@ApiOperation("获取所有的仪表板分组")
public R selectInstrumentPanelGroupList(){
return R.ok(instrumentPanelGroupService.selectInstrumentPanelGroupList());
}
@GetMapping("/selectInstrumentPanelGroups")
@ApiOperation("获取所有的仪表板分组以及分组下的仪表板以及仪表板下的组件")
public R selectInstrumentPanelGroups(){
return R.ok(instrumentPanelGroupService.selectInstrumentPanelGroupList());
}
@PostMapping("/saveInstrumentPanelGroup")
@ApiOperation("保存仪表板分组")
public R saveInstrumentPanelGroup(@RequestBody InstrumentPanelGroupDTO group){
return R.ok(instrumentPanelGroupService.saveInstrumentPanelGroup(group));
}
@PostMapping("/updateInstrumentPanelGroup")
@ApiOperation("更新仪表板分组")
public R updateInstrumentPanelGroup(@RequestBody InstrumentPanelGroupDTO group){
return R.ok(instrumentPanelGroupService.updateInstrumentPanelGroup(group));
}
@PostMapping("/delInstrumentPanelGroup")
@ApiOperation("删除仪表板分组")
public R delInstrumentPanelGroup(@RequestParam String groupId){
return R.ok(instrumentPanelGroupService.delInstrumentPanelGroup(groupId));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO;
import com.syc.slm.slmbi.service.InstrumentPanelPermissionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* slm-bi
* 仪表板权限控制
*
* @author : lin
* @date : 2021-03-25 18:54
**/
@Api(value = "仪表板权限控制",description = "仪表板权限控制")
@RestController
@RequestMapping("/bi/permission")
public class InstrumentPanelPermissionController {
@Autowired
private InstrumentPanelPermissionService instrumentPanelPermissionService;
@PostMapping("save_instrument_panel_permission")
@ApiOperation("保存仪表板权限")
public R saveInstrumentPanelPermission(@RequestBody List<InstrumentPanelPermissionDTO> permissions){
return R.ok(instrumentPanelPermissionService.saveInstrumentPanelPermission(permissions));
}
@PostMapping("save_copy_other_instrument_panel_permission")
@ApiOperation("从其他仪表板复制配置")
@ApiImplicitParam(name="otherInstrumentPanelId",value="其他仪表板id",required=true)
public R saveCopyOtherInstrumentPanelPermission(@RequestParam String otherInstrumentPanelId){
return R.ok(instrumentPanelPermissionService.saveCopyOtherInstrumentPanelPermission(otherInstrumentPanelId));
}
@PostMapping("save_copy_to_other_instrument_panel_permission")
@ApiOperation("将仪表板权限复制给其他仪表板")
@ApiImplicitParam(name="otherInstrumentPanelId",value="其他仪表板id",required=true)
public R saveCopyToOtherInstrumentPanelPermission(@RequestBody List<InstrumentPanelPermissionDTO> permissions,@RequestParam String otherInstrumentPanelId ){
return R.ok(instrumentPanelPermissionService.saveCopyToOtherInstrumentPanelPermission(permissions,otherInstrumentPanelId));
}
@GetMapping("select_instrument_panel_permission_by_id")
@ApiOperation("根据仪表板id获取仪表板权限")
@ApiImplicitParam(name="instrumentPanelId",value="仪表板id",required=true)
public R selectnstrumentPanelPermissionById(@RequestParam String instrumentPanelId ){
return R.ok(instrumentPanelPermissionService.selectInstrumentPanelPermissionById(instrumentPanelId));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.service.PositionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* slm-bi
* 职位查询控制器
*
* @author : lin
* @date : 2021-03-25 17:26
**/
@Api(value = "职位查询列表",description = "职位查询列表")
@RestController
@RequestMapping("/bi/position")
public class PositionController {
@Autowired
private PositionService positionWorkService;
@GetMapping("/positions")
@ApiOperation("职位查询列表")
@ApiImplicitParam(name="positionName",value="职位名称")
public R selectPositionList(@RequestParam(value = "positionName",required = false) String positionName){
return R.ok(positionWorkService.selectPositionList(positionName));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* slm-bi
* 用户信息
*
* @author : lin
* @date : 2021-03-25 18:45
**/
@Api(value = "用户信息" ,description = "用户信息接口")
@RestController
@RequestMapping("/bi/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("select_user_list")
@ApiOperation("用户查询")
@ApiImplicitParam(name="userName",value="用户名称")
public R selectUserList(@RequestParam(value = "userName" ,required = false) String userName){
return R.ok(userService.selectUserList(userName));
}
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dto.VariableDTO;
import com.syc.slm.slmbi.service.VariableService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* slm-bi
* 用户信息
*
* @author : lin
* @date : 2021-03-25 18:45
**/
@RestController
@RequestMapping("/bi/variable")
@Api(description = "变量控件")
public class VariableController {
@Autowired
private VariableService variableService;
@GetMapping("get_variable_list")
@ApiOperation("获取变量列表")
public R getVariableList(@RequestBody VariableDTO variableDTO){
return R.ok(variableService.getVariableList(variableDTO));
}
@GetMapping("get_variable_source_list")
@ApiOperation("获取变量来源列表")
public R getVariableSourceList(){
return R.ok(variableService.getVariableSourceList());
}
@GetMapping("get_variable_device_list")
@ApiOperation("获取变量所属设备列表")
public R getVariableDeviceList(){
return R.ok(variableService.getVariableDeviceList());
}
@GetMapping("get_variable_real_time_data_list")
@ApiOperation("获取变量实时数据")
@ApiImplicitParam(name="variableId",value="变量id")
public R getVariableRealTimeDataList(@RequestParam String variableId){
return R.ok();
}
@GetMapping("get_variable_history_data_list")
@ApiOperation("获取变量历史数据")
@ApiImplicitParams({
@ApiImplicitParam(name="variableId",value="变量id",required=true),
@ApiImplicitParam(name="startTime",value="开始时间",required=true),
@ApiImplicitParam(name="endTime",value="结束时间",required=true)
})
public R getVariableHistoryDataList(@RequestParam String variableId, @RequestParam Date startTime,@RequestParam Date endTime){
return R.ok();
}
}
package com.syc.slm.slmbi.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import org.springframework.stereotype.Component;
/**
* slm-bi
* 仪表板分组
*
* @author : lin
* @date : 2021-03-25 15:46
**/
@Component
public interface InstrumentPanelGroupMapper extends BaseMapper<InstrumentPanelGroup> {
}
package com.syc.slm.slmbi.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syc.slm.slmbi.entity.InstrumentPanel;
import org.springframework.stereotype.Component;
/**
* slm-bi
* 仪表板
*
* @author : lin
* @date : 2021-03-25 16:17
**/
@Component
public interface InstrumentPanelMapper extends BaseMapper<InstrumentPanel> {
}
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 部门DTO
*
* @author : lin
* @date : 2021-03-25 20:39
**/
@Data
@ApiModel(description = "部门DTO")
@EqualsAndHashCode(callSuper=false)
public class DeptDTO {
@ApiModelProperty(value = "部门id")
private String id;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "部门父级id")
private String parentId;
}
package com.syc.slm.slmbi.dto;
import com.syc.slm.slmbi.entity.InstrumentPanelConfig;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
import java.util.Map;
@Data
@ApiModel(value = "仪表板配置DTO",description ="仪表板配置DTO" )
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanelConfigDTO extends InstrumentPanelConfig {
@ApiModelProperty("配置详情集合")
private List<Map<String,Object>> configs;
}
package com.syc.slm.slmbi.dto;
import com.syc.slm.slmbi.entity.InstrumentPanel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板DTO
*
* @author : lin
* @date : 2021-03-25 16:49
**/
@ApiModel(value = "仪表板DTO",description = "仪表板DTO")
@Data
@EqualsAndHashCode(callSuper = true)
public class InstrumentPanelDTO extends InstrumentPanel {
}
package com.syc.slm.slmbi.dto;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板dto
*
* @author : lin
* @date : 2021-03-25 16:47
**/
@ApiModel(value = "仪表板分组DTO",description = "仪表板分组DTO")
@Data
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanelGroupDTO extends InstrumentPanelGroup {
}
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板权限
*
* @author : lin
* @date : 2021-03-25 19:05
**/
@Data
@ApiModel(value = "仪表板权限DTO",description = "仪表板权限DTO")
@EqualsAndHashCode(callSuper=false)
public class InstrumentPanelPermissionDTO {
@ApiModelProperty(value = "主键id")
private String id;
@ApiModelProperty(value = "仪表板id")
private String instrumentPanelId;
@ApiModelProperty(value = "仪表板名称")
private String instrumentPanelName;
@ApiModelProperty(value = "仪表板分组id")
private String instrumentPanelGroupId;
@ApiModelProperty(value = "仪表板分组名称")
private String instrumentPanelGroupName;
@ApiModelProperty(value = "存储类型,1代表岗位,2代表部门,3 代表个体用户")
private Integer permissionType;
@ApiModelProperty(value = "代表岗位,部门,个体用户id")
private String bizId;
@ApiModelProperty(value = "代表岗位,部门,个体用户名称")
private String bizName;
}
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 职位DTO
*
* @author : lin
* @date : 2021-03-25 20:45
**/
@Data
@ApiModel(description = "职位DTO")
@EqualsAndHashCode(callSuper=false)
public class PositionDTO {
@ApiModelProperty(value = "职位id")
private String id;
@ApiModelProperty(value = "职位名称")
private String positionName;
}
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 用户DTO
*
* @author : lin
* @date : 2021-03-25 20:48
**/
@Data
@ApiModel(description = "用户DTO")
@EqualsAndHashCode(callSuper=false)
public class UserDTO {
@ApiModelProperty(value = "用户id")
private String id;
@ApiModelProperty(value = "用户名称")
private String name;
}
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 变量
*
* @author : lin
* @date : 2021-03-25 19:05
**/
@Data
@ApiModel(value = "变量DTO",description = "变量DTO")
@EqualsAndHashCode(callSuper=false)
public class VariableDTO {
@ApiModelProperty(value = "变量来源")
private String sourceId;
@ApiModelProperty(value = "所属设备")
private String deviceId;
@ApiModelProperty(value = "变量名称")
private String variableName;
@ApiModelProperty(value = "描述")
private String description;
}
package com.syc.slm.slmbi.entity;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* slm-bi
* 公共字段
*
* @author : lin
* @date : 2021-03-25 20:16
**/
@ApiModel(description = "公共的实体类")
@Data
@EqualsAndHashCode(callSuper=true)
public class BaseEntity<T extends Model<?>> extends Model<T> {
@ApiModelProperty(value = "创建人主键")
private String creator;
@ApiModelProperty(value = "创建人名称")
private String creatorName;
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "修改人主键")
private String updater;
@ApiModelProperty(value = "修改人名称")
private String updaterName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "状态")
private Integer recordStatus;
@ApiModelProperty(value = "描述")
private String description;
}
package com.syc.slm.slmbi.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板实体类
*
* @author : lin
* @date : 2021-03-25 16:18
**/
@ApiModel(description = "仪表板entity")
@Data
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanel extends BaseEntity<InstrumentPanel>{
@ApiModelProperty(value = "仪表板主键")
private String id ;
@ApiModelProperty(value = "仪表板名称")
private String name;
@ApiModelProperty(value = "仪表板归属分组")
private String groupId;
}
package com.syc.slm.slmbi.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板配置详情
*
* @author : lin
* @date : 2021-03-25 20:16
**/
@Data
@ApiModel(value = "仪表板配置详情")
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanelConfig extends BaseEntity<InstrumentPanelConfig>{
@ApiModelProperty(value = "主键id")
private String id ;
@ApiModelProperty(value = "仪表板id")
private String instrumentPanelId;
@ApiModelProperty(value = "仪表板配置详情,包含了样式,数据配置")
private String configDetails;
}
package com.syc.slm.slmbi.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板分组
*
* @author : lin
* @date : 2021-03-25 15:46
**/
@ApiModel(description = "仪表板分组entity")
@Data
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanelGroup extends BaseEntity<InstrumentPanelGroup>{
@ApiModelProperty(value = "仪表板分组主键")
private String id;
@ApiModelProperty(value = "仪表板分组父级主键")
private String parentId;
@ApiModelProperty(value = "仪表板分组名称")
private String name;
}
package com.syc.slm.slmbi.service;
import com.syc.slm.slmbi.vo.DeptVo;
import java.util.List;
public interface DeptService {
List<DeptVo> selectDeptList(String deptName);
}
package com.syc.slm.slmbi.service;
import com.syc.slm.slmbi.config.InfluxdbConfig;
import okhttp3.OkHttpClient;
import org.apache.http.ssl.SSLContexts;
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.BatchPoints;
import org.influxdb.dto.Point;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.net.ssl.*;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* 创建时间:2018-01-28
* <p>修改时间:2018-01-28
* <p>类说明:TOTO
*
* @author luke
* @version 1.0
*/
@Component
public class InfluxService {
@Autowired
private InfluxdbConfig influxdbConfig;
private InfluxDB influxdb;
@PostConstruct
private void init() {
if ("8635".equals(influxdbConfig.port)) {
// 华为云: https + getBuilder
influxdb = InfluxDBFactory.connect(String.format("https://%s:%s", influxdbConfig.host, influxdbConfig.port),
influxdbConfig.username,
influxdbConfig.password,
getBuilder());
} else {
influxdb = InfluxDBFactory.connect(String.format("http://%s:%s", influxdbConfig.host, influxdbConfig.port),
influxdbConfig.username,
influxdbConfig.password);
}
}
/**
* 插入
*
* @param measurement 表
* @param tags 标签
* @param fields 字段
*/
public void insert(String database, String measurement, Map<String, String> tags, Map<String, Object> fields) {
Point.Builder builder = Point.measurement(measurement);
builder.tag(tags);
builder.fields(fields);
influxdb.write(database, "", builder.build());
}
/**
* 批量插入
*
* @param measurement 表
* @param tagsList 标签
* @param fieldsList 字段
*/
public void insert(String database,
String measurement,
List<Map<String, String>> tagsList,
List<Map<String, Object>> fieldsList) {
BatchPoints.Builder bpBuilder = BatchPoints.database(database);
if (fieldsList != null && fieldsList.size() > 0) {
for (int i = 0; i < fieldsList.size(); i++) {
Point.Builder builder = Point.measurement(measurement);
builder.tag(tagsList.get(i));
builder.fields(fieldsList.get(i));
bpBuilder.point(builder.build());
}
}
influxdb.write(bpBuilder.build());
}
/**
* 按时间插入数据
*
* @param measurement 表
* @param tags 标签
* @param fields 字段
*/
public void insertByTime(String database,
String measurement,
Map<String, String> tags,
Map<String, Object> fields,
long time) {
Point.Builder builder = Point.measurement(measurement);
builder.tag(tags);
builder.fields(fields);
builder.time(time, TimeUnit.MILLISECONDS);
influxdb.write(database, "", builder.build());
}
/**
* 查询
*
* @param command 查询语句
* @return
*/
public QueryResult query(String database, String command) {
return influxdb.query(new Query(command, database));
}
/**
* 免除SSL
*
* @return
*/
private static OkHttpClient.Builder getBuilder() {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.sslSocketFactory(defaultSslSocketFactory(), defaultTrustManager());
builder.hostnameVerifier(noopHostnameVerifier());
return builder;
}
private static X509TrustManager defaultTrustManager() {
return new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
};
}
private static SSLSocketFactory defaultSslSocketFactory() {
try {
SSLContext sslcontext = SSLContexts.createDefault();
sslcontext.init(null, new TrustManager[] {defaultTrustManager()}, new SecureRandom());
return sslcontext.getSocketFactory();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static HostnameVerifier noopHostnameVerifier() {
return (s, sslSession) -> true;
}
}
package com.syc.slm.slmbi.service;
import com.sun.istack.NotNull;
import com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO;
import com.syc.slm.slmbi.vo.InstrumentPanelConfigVo;
public interface InstrumentPanelConfigService {
Boolean saveInstrumentPanelConfig(InstrumentPanelConfigDTO config,Integer optType);
InstrumentPanelConfigVo getInstrumentPanelConfigByInstrumentPanelId(@NotNull String instrumentPanelId);
}
package com.syc.slm.slmbi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import com.syc.slm.slmbi.vo.InstrumentPanelGroupVo;
import lombok.NonNull;
import java.util.List;
/**
* slm-bi
* 仪表板
*
* @author : lin
* @date : 2021-03-25 15:10
**/
public interface InstrumentPanelGroupService extends IService<InstrumentPanelGroup> {
List<InstrumentPanelGroupVo> selectInstrumentPanelGroupList();
Boolean delInstrumentPanelGroup(@NonNull String groupId);
Boolean updateInstrumentPanelGroup(InstrumentPanelGroupDTO group);
Boolean saveInstrumentPanelGroup(InstrumentPanelGroupDTO group);
}
package com.syc.slm.slmbi.service;
import com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO;
import com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo;
import lombok.NonNull;
import java.util.List;
public interface InstrumentPanelPermissionService {
Boolean saveInstrumentPanelPermission(List<InstrumentPanelPermissionDTO> permissions);
List<InstrumentPanelPermissionVo> saveCopyOtherInstrumentPanelPermission(@NonNull String instrumentPanelId);
Boolean saveCopyToOtherInstrumentPanelPermission(List<InstrumentPanelPermissionDTO> permissions, String otherInstrumentPanelId);
List<InstrumentPanelPermissionVo> selectInstrumentPanelPermissionById(@NonNull String instrumentPanelId);
}
package com.syc.slm.slmbi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.syc.slm.slmbi.dto.InstrumentPanelDTO;
import com.syc.slm.slmbi.entity.InstrumentPanel;
import com.syc.slm.slmbi.vo.InstrumentPanelVo;
import java.util.List;
/**
* slm-bi
* 仪表板
*
* @author : lin
* @date : 2021-03-25 16:17
**/
public interface InstrumentPanelService extends IService<InstrumentPanel> {
IPage<InstrumentPanelVo> selectInstrumentPanelList(InstrumentPanelDTO where);
Boolean saveInstrumentPanel(InstrumentPanel panel);
Boolean batchPushInstrumentPanel(List<String> ids, Integer optType);
Boolean delPushInstrumentPanel(String id);
Boolean saveAsInstrumentPanel(InstrumentPanelDTO instrumentPanelDTO);
Boolean showRecoveryBtn(String id);
Boolean recoveryInstrumentPanel(String id);
}
package com.syc.slm.slmbi.service;
import com.syc.slm.slmbi.vo.PositionVo;
import java.util.List;
/**
* slm-bi
* 职位
*
* @author : lin
* @date : 2021-03-25 16:17
**/
public interface PositionService {
List<PositionVo> selectPositionList(String name);
}
package com.syc.slm.slmbi.service;
import com.syc.slm.slmbi.vo.UserVo;
import java.util.List;
/**
* slm-bi
* 用户接口
*
* @author : lin
* @date : 2021-03-25 16:17
**/
public interface UserService {
List<UserVo> selectUserList(String userName);
}
package com.syc.slm.slmbi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.syc.slm.slmbi.dto.VariableDTO;
import com.syc.slm.slmbi.vo.VariableDeviceVo;
import com.syc.slm.slmbi.vo.VariableSourceVo;
import com.syc.slm.slmbi.vo.VariableVo;
import java.util.List;
/**
* slm-bi
* 变量
*
* @author : lin
* @date : 2021-03-25 16:17
**/
public interface VariableService {
IPage<VariableVo> getVariableList(VariableDTO variableDTO);
List<VariableSourceVo> getVariableSourceList();
List<VariableDeviceVo> getVariableDeviceList();
}
package com.syc.slm.slmbi.service.impl;
import com.syc.slm.slmbi.vo.DeptVo;
import com.syc.slm.slmbi.service.DeptService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* slm-bi
* 部门信息
*
* @author : lin
* @date : 2021-03-25 18:41
**/
@Service
public class DeptServiceImpl implements DeptService {
@Override
public List<DeptVo> selectDeptList(String deptName) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO;
import com.syc.slm.slmbi.service.InstrumentPanelConfigService;
import com.syc.slm.slmbi.vo.InstrumentPanelConfigVo;
import org.springframework.stereotype.Service;
/**
* slm-bi
* 仪表板数据以及样式配置
*
* @author : lin
* @date : 2021-03-25 19:11
**/
@Service
public class InstrumentPanelConfigServiceImpl implements InstrumentPanelConfigService {
@Override
public Boolean saveInstrumentPanelConfig(InstrumentPanelConfigDTO config,Integer optType) {
return null;
}
@Override
public InstrumentPanelConfigVo getInstrumentPanelConfigByInstrumentPanelId(String instrumentPanelId) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dao.InstrumentPanelGroupMapper;
import com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import com.syc.slm.slmbi.service.InstrumentPanelGroupService;
import com.syc.slm.slmbi.vo.InstrumentPanelGroupVo;
import lombok.NonNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* slm-bi
* 仪表板分组业务实现类
*
* @author : lin
* @date : 2021-03-25 15:43
**/
@Service
public class InstrumentPanelGroupServiceImpl extends ServiceImpl<InstrumentPanelGroupMapper, InstrumentPanelGroup> implements InstrumentPanelGroupService {
@Override
public List<InstrumentPanelGroupVo> selectInstrumentPanelGroupList() {
return null;
}
@Override
public Boolean delInstrumentPanelGroup(@NonNull String groupId) {
return null;
}
@Override
public Boolean updateInstrumentPanelGroup(InstrumentPanelGroupDTO group) {
return null;
}
@Override
public Boolean saveInstrumentPanelGroup(InstrumentPanelGroupDTO group) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO;
import com.syc.slm.slmbi.service.InstrumentPanelPermissionService;
import com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo;
import lombok.NonNull;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* slm-bi
* 仪表板权限
*
* @author : lin
* @date : 2021-03-25 19:04
**/
@Service
public class InstrumentPanelPermissionImpl implements InstrumentPanelPermissionService {
@Override
public Boolean saveInstrumentPanelPermission(List<InstrumentPanelPermissionDTO> permissions){
//判断仪表板的名称是否重复
//删除原本的权限
//插入现有的权限
//更新仪表板的名称跟分组
return null;
}
@Override
public List<InstrumentPanelPermissionVo> saveCopyOtherInstrumentPanelPermission(@NonNull String instrumentPanelId) {
return null;
}
@Override
public Boolean saveCopyToOtherInstrumentPanelPermission(List<InstrumentPanelPermissionDTO> permissions, String otherInstrumentPanelId) {
return null;
}
@Override
public List<InstrumentPanelPermissionVo> selectInstrumentPanelPermissionById(@NonNull String instrumentPanelId) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.syc.slm.slmbi.dao.InstrumentPanelMapper;
import com.syc.slm.slmbi.dto.InstrumentPanelDTO;
import com.syc.slm.slmbi.entity.InstrumentPanel;
import com.syc.slm.slmbi.service.InstrumentPanelService;
import com.syc.slm.slmbi.vo.InstrumentPanelVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* slm-bi
* 仪表板
*
* @author : lin
* @date : 2021-03-25 16:17
**/
@Service
public class InstrumentPanelServiceImpl extends ServiceImpl<InstrumentPanelMapper, InstrumentPanel> implements InstrumentPanelService {
@Override
public IPage<InstrumentPanelVo> selectInstrumentPanelList(InstrumentPanelDTO where) {
return null;
}
@Override
public Boolean saveInstrumentPanel(InstrumentPanel panel) {
return null;
}
@Override
public Boolean batchPushInstrumentPanel(List<String> ids, Integer optType) {
return null;
}
@Override
public Boolean delPushInstrumentPanel(String id) {
return null;
}
@Override
public Boolean saveAsInstrumentPanel(InstrumentPanelDTO instrumentPanelDTO) {
return null;
}
@Override
public Boolean showRecoveryBtn(String id) {
return null;
}
@Override
public Boolean recoveryInstrumentPanel(String id) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.syc.slm.slmbi.vo.PositionVo;
import com.syc.slm.slmbi.service.PositionService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* slm-bi
* 职位
*
* @author : lin
* @date : 2021-03-25 18:36
**/
@Service
public class PositionServiceImpl implements PositionService {
@Override
public List<PositionVo> selectPositionList(String name) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.syc.slm.slmbi.vo.UserVo;
import com.syc.slm.slmbi.service.UserService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* slm-bi
* 用户信息
*
* @author : lin
* @date : 2021-03-25 18:46
**/
@Service
public class UserServiceImpl implements UserService {
@Override
public List<UserVo> selectUserList(String userName) {
return null;
}
}
package com.syc.slm.slmbi.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.syc.slm.slmbi.dto.VariableDTO;
import com.syc.slm.slmbi.service.VariableService;
import com.syc.slm.slmbi.vo.VariableDeviceVo;
import com.syc.slm.slmbi.vo.VariableSourceVo;
import com.syc.slm.slmbi.vo.VariableVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* slm-bi
* 变量
*
* @author : lin
* @date : 2021-03-25 18:36
**/
@Service
public class VariableServiceImpl implements VariableService {
@Override
public IPage<VariableVo> getVariableList(VariableDTO variableDTO) {
return null;
}
@Override
public List<VariableSourceVo> getVariableSourceList() {
return null;
}
@Override
public List<VariableDeviceVo> getVariableDeviceList() {
return null;
}
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 部门vo
*
* @author : lin
* @date : 2021-03-25 20:39
**/
@Data
@ApiModel(value = "部门vo",description = "部门vo")
@EqualsAndHashCode(callSuper=false)
public class DeptVo {
@ApiModelProperty(value = "部门id")
private String id;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "部门父级id")
private String parentId;
}
package com.syc.slm.slmbi.vo;
import com.syc.slm.slmbi.entity.InstrumentPanelConfig;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
import java.util.Map;
/**
* slm-bi
* 仪表板样式,数据配置显示类
*
* @author : lin
* @date : 2021-03-25 15:39
**/
@Data
@ApiModel(value = "仪表板样式,数据配置显示类Vo", description = "仪表板样式,数据配置显示类Vo")
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanelConfigVo extends InstrumentPanelConfig {
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* slm-bi
* 仪表板页面显示类
*
* @author : lin
* @date : 2021-03-25 15:39
**/
@Data
@ApiModel(value = "仪表板页面显示类Vo",description = "仪表板页面显示类Vo")
@EqualsAndHashCode(callSuper=false)
public class InstrumentPanelGroupVo {
@ApiModelProperty(value = "分组主键")
private Integer id;
@ApiModelProperty(value = "父级id")
private String parentId;
@ApiModelProperty(value = "分组名称")
private String groupName;
@ApiModelProperty(value = "分组归属下的仪表板")
List<InstrumentPanelVo> instrumentPanels;
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板权限vo
*
* @author : lin
* @date : 2021-03-25 20:39
**/
@Data
@ApiModel(value = "仪表板权限Vo",description = "仪表板权限Vo")
@EqualsAndHashCode(callSuper=false)
public class InstrumentPanelPermissionVo {
@ApiModelProperty(value = "存储类型,1代表岗位,2代表部门,3 代表个体用户")
private Integer permissionType;
@ApiModelProperty(value = "代表岗位,部门,个体用户id")
private String bizId;
@ApiModelProperty(value = "代表岗位,部门,个体用户名称")
private String bizName;
}
package com.syc.slm.slmbi.vo;
import com.syc.slm.slmbi.entity.InstrumentPanel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 仪表板样式,数据配置显示类
*
* @author : lin
* @date : 2021-03-25 15:39
**/
@Data
@ApiModel(value = "仪表板显示类vo",description = "仪表板显示类vo")
@EqualsAndHashCode(callSuper=true)
public class InstrumentPanelVo extends InstrumentPanel {
@ApiModelProperty(value = "仪表板下对应的配置")
InstrumentPanelConfigVo instrumentPanelConfig;
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 职位vo
*
* @author : lin
* @date : 2021-03-25 20:45
**/
@Data
@ApiModel(value = "职位vo",description = "职位vo")
@EqualsAndHashCode(callSuper=false)
public class PositionVo {
@ApiModelProperty(value = "职位id")
private String id;
@ApiModelProperty(value = "职位名称")
private String positionName;
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 用户vo
*
* @author : lin
* @date : 2021-03-25 20:48
**/
@Data
@ApiModel(value = "用户信息vo",description = "用户信息vo")
@EqualsAndHashCode(callSuper=false)
public class UserVo {
@ApiModelProperty(value = "用户id")
private String id;
@ApiModelProperty(value = "用户名称")
private String name;
@ApiModelProperty(value = "仪表板id")
private String instrumentPanelId;
@ApiModelProperty(value = "存储类型,1代表岗位,2代表部门,3 代表个体用户")
private Integer type;
@ApiModelProperty(value = "代表岗位,部门,个体用户id")
private String bizId;
@ApiModelProperty(value = "代表岗位,部门,个体用户名称")
private String bizName;
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 变量所属设备vo
*
* @author : lin
* @date : 2021-03-25 20:45
**/
@Data
@ApiModel(value = "变量所属设备vo",description = "变量所属设备vo")
@EqualsAndHashCode(callSuper=false)
public class VariableDeviceVo {
@ApiModelProperty(value = "设备Id")
private String deviceId;
@ApiModelProperty(value = "设备名称")
private String deviceName;
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 变量来源vo
*
* @author : lin
* @date : 2021-03-25 20:45
**/
@Data
@ApiModel(value = "变量来源vo",description = "变量来源vo")
@EqualsAndHashCode(callSuper=false)
public class VariableSourceVo {
@ApiModelProperty(value = "变量来源Id")
private String sourceId;
@ApiModelProperty(value = "变量来源名称")
private String sourceName;
}
package com.syc.slm.slmbi.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* slm-bi
* 变量vo
*
* @author : lin
* @date : 2021-03-25 20:45
**/
@Data
@ApiModel(value = "变量vo",description = "变量vo")
@EqualsAndHashCode(callSuper=false)
public class VariableVo {
@ApiModelProperty(value = "变量来源")
private String sourceName;
@ApiModelProperty(value = "变量名称")
private String variableName;
@ApiModelProperty(value = "描述")
private String description;
@ApiModelProperty(value = "单位")
private String unit;
@ApiModelProperty(value = "数据类型")
private String dataType;
@ApiModelProperty(value = "变量类型")
private String variableType;
@ApiModelProperty(value = "所属客户")
private String customer;
@ApiModelProperty(value = "所属设备")
private String deviceId;
@ApiModelProperty(value = "设备编号")
private String deviceCode;
}
influxdb:
host: 139.159.254.185
port: 8086
username: syc
password: syc
spring:
freemarker:
cache: false
template-loader-path: classpath:/templates/ftl/
charset: utf-8
check-template-location: true
content-type: text/html
expose-request-attributes: true
expose-session-attributes: true
request-context-attribute: request
suffix: .ftl
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
minimum-idle: 10
maximum-pool-size: 200
auto-commit: true
connection-test-query: SELECT 1
idle-timeout: 30000
pool-name: HikariCP
max-lifetime: 1800000
connection-timeout: 30000
username: root
password: root
url: jdbc:mysql://${MYSQL_HOST:slm-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:slmx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true
messages:
basename: i18n/messages,i18n/sys
mybatis-plus:
dialect: mysql
configuration:
jdbc-type-for-null: null
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:/mapper/${mybatis-plus.dialect}/*.xml,classpath*:/mapper/${mybatis-plus.dialect}/**/*.xml
typeAliasesPackage: com.yeshirow.**.entity
global-config:
db-config:
id-type: uuid
logic-delete-value: 0
logic-not-delete-value: 1
\ No newline at end of file
package com.syc.slm.slmbi;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SlmBiApplicationTests {
@Test
void contextLoads() {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment