Commit e6863779 authored by linruibiao's avatar linruibiao

Merge remote-tracking branch 'origin/develop' into develop

parents e625748c d4a6d3d9
Pipeline #9180 passed with stages
in 2 minutes 20 seconds
......@@ -21,4 +21,7 @@ public class DataCenterConfig {
@Value("${dc_client.interfaces.permissionCodeUrl}")
private String permissionCodeUrl;
@Value("${dc_client.interfaces.companyAppId}")
private String companyAppId;
}
package com.syc.slm.slmbi.controller;
import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.service.CompanyService;
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 javax.servlet.http.HttpServletRequest;
import java.util.Set;
/**
* @author: guangyi-liang
* @date: 2021/5/20
*/
@RequestMapping("/{appId}/company")
@RestController
@Api(value = "初始化相关管理接口", tags = "初始化相关管理接口")
public class InitController extends BaseRestController{
@Autowired
private CompanyService companyService;
@GetMapping("/app-id")
@ApiOperation("测试")
@ApiImplicitParam(name = "appId", value = "租户id", required = true,dataTypeClass = String.class)
public R<Set<String>> findAll(HttpServletRequest request, @PathVariable String appId) {
return call(()-> companyService.findAll(appId));
}
@PostMapping("/group/tree/init")
@ApiOperation("初始化顶级分组和树结构")
@ApiImplicitParam(name = "appId", value = "租户id", required = true,dataTypeClass = String.class)
public R<Boolean> initGroupAndTree(HttpServletRequest request, @PathVariable String appId) {
return call(()-> companyService.initGroupAndTree(appId));
}
}
......@@ -30,7 +30,7 @@ import java.util.Map;
**/
@RestController
@RequestMapping("/{appId}/variables")
@Api(description = "变量控件", tags = "变量控件")
@Api(value = "变量控件", tags = "变量控件")
public class VariableController extends BaseRestController{
@Autowired
private VariableService variableService;
......
package com.syc.slm.slmbi.dao;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syc.slm.slmbi.entity.InstrumentPanelGroup;
import com.syc.slm.slmbi.entity.InstrumentPanelGroupInit;
import com.syc.slm.slmbi.vo.InstrumentPanelGroupVo;
import com.syc.slm.slmbi.vo.PanelTreeNodeVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
/**
* slm-bi
* 仪表板分组
*
* @author : lin
* @date : 2021-03-25 15:46
**/
@Component
public interface InstrumentPanelGroupInitMapper extends BaseMapper<InstrumentPanelGroupInit> {
}
package com.syc.slm.slmbi.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syc.slm.slmbi.entity.InstrumentPanelTreeInit;
import org.springframework.stereotype.Component;
/**
* 仪表板树聚合表
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Component
public interface InstrumentPanelTreeInitMapper extends BaseMapper<InstrumentPanelTreeInit> {
}
......@@ -15,9 +15,6 @@ public class RealTimeVariableDataDTO {
@ApiModelProperty(value = "最近的时间个数", required = true)
private Integer limit;
/* @ApiModelProperty(value = "(如果x轴为变量直接填yyyy-MM-dd HH:mm:ss)请填时间格式如(yyyy-MM-dd HH:mm:ss)", required = true)
private String format;*/
@ApiModelProperty(value = "变量信息", required = true)
private List<VariableSearchDTO> variableSearchList;
}
package com.syc.slm.slmbi.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* slm-bi
* 仪表板分组
*
* @author : lin
* @date : 2021-03-25 15:46
**/
@ApiModel(description = "仪表板分组entity")
@Data
@EqualsAndHashCode(callSuper=true)
@TableName("instrument_panel_group")
public class InstrumentPanelGroupInit extends Model<InstrumentPanelGroupInit> {
@ApiModelProperty(value = "仪表板分组主键")
private String id;
@ApiModelProperty(value = "仪表板分组父级主键")
private String parentId;
@ApiModelProperty(value = "仪表板分组名称")
private String name;
/**
* 租户id
*/
@ApiModelProperty(value = "租户id")
protected String appId;
@ApiModelProperty(value = "创建人主键")
protected String creator;
@ApiModelProperty(value = "创建人名称")
protected String creatorName;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
protected Date createTime;
@ApiModelProperty(value = "修改人主键")
protected String updater;
@ApiModelProperty(value = "修改人名称")
protected String updaterName;
@ApiModelProperty(value = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
protected Date updateTime;
@ApiModelProperty(value = "状态")
protected Integer recordStatus;
@ApiModelProperty(value = "描述")
protected String description;
@Override
protected Serializable pkVal() {
return id;
}
}
package com.syc.slm.slmbi.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 仪表板树聚合表
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Data
@TableName("instrument_panel_tree")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "仪表板树聚合表")
public class InstrumentPanelTreeInit extends Model<InstrumentPanelTreeInit> {
/**
* 节点全路径id
*/
@ApiModelProperty(value = "节点全路径id")
private String fullId;
@ApiModelProperty(value = "节点名字")
private String name;
/**
* 节点全路径
*/
@ApiModelProperty(value = "节点全路径")
private String fullName;
/**
* 节点类型
*/
@ApiModelProperty(value = "节点类型")
private String nodeType;
@ApiModelProperty(value = "组件key")
private String assemblyKey;
@ApiModelProperty(value = "父级id")
@TableField(exist = false)
private String parentId;
/**
* 主键
*/
@TableId
@ApiModelProperty(value = "主键")
protected String id;
/**
* 租户id
*/
@ApiModelProperty(value = "租户id")
protected String appId;
@ApiModelProperty(value = "创建人主键")
protected String creator;
@ApiModelProperty(value = "创建人名称")
protected String creatorName;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
protected Date createTime;
@ApiModelProperty(value = "修改人主键")
protected String updater;
@ApiModelProperty(value = "修改人名称")
protected String updaterName;
@ApiModelProperty(value = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
protected Date updateTime;
@ApiModelProperty(value = "状态")
protected Integer recordStatus;
@ApiModelProperty(value = "描述")
protected String description;
@Override
protected Serializable pkVal() {
return id;
}
}
package com.syc.slm.slmbi.service;
import java.util.Set;
/**
* @author: guangyi-liang
* @date: 2021/5/20
*/
public interface CompanyService {
/**
* 测试查询所有
* @param appId 当前租户AppId
* @return 公司全部appId
*/
Set<String> findAll(String appId);
/**
* 初始化顶级分组和树
* @param appId 当前租户AppId
* @return 是否成功
*/
boolean initGroupAndTree(String appId);
}
package com.syc.slm.slmbi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Maps;
import com.google.gson.reflect.TypeToken;
import com.syc.slm.common.core.constant.SlmConstants;
import com.syc.slm.common.core.util.R;
import com.syc.slm.common.core.util.RestTemplateUtils;
import com.syc.slm.slmbi.config.DataCenterConfig;
import com.syc.slm.slmbi.dao.InstrumentPanelGroupInitMapper;
import com.syc.slm.slmbi.dao.InstrumentPanelTreeInitMapper;
import com.syc.slm.slmbi.entity.InstrumentPanelGroupInit;
import com.syc.slm.slmbi.entity.InstrumentPanelTreeInit;
import com.syc.slm.slmbi.enums.NodeType;
import com.syc.slm.slmbi.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
/**
* @author: guangyi-liang
* @date: 2021/5/20
*/
@Service
public class CompanyServiceImpl implements CompanyService {
@Autowired
private DataCenterConfig centerConfig;
@Autowired
private InstrumentPanelGroupInitMapper groupInitMapper;
@Autowired
private InstrumentPanelTreeInitMapper treeInitMapper;
@Override
public Set<String> findAll(String appId) {
return this.findAllAppId(appId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean initGroupAndTree(String appId) {
String name = "全部分组";
Set<String> stringSet = this.findAllAppId(appId);
for (String companyAppId:stringSet){
LambdaQueryWrapper<InstrumentPanelGroupInit> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(InstrumentPanelGroupInit::getAppId,companyAppId);
Integer count = groupInitMapper.selectCount(wrapper);
if (count <= 0){
InstrumentPanelGroupInit groupInit = this.initGroup(companyAppId,name);
groupInitMapper.insert(groupInit);
InstrumentPanelTreeInit treeInit = this.initTree(groupInit);
treeInitMapper.insert(treeInit);
}
}
return true;
}
private Set<String> findAllAppId(String appId){
Map<String,String> map = Maps.newHashMap();
map.put("appId",appId);
R<Set<String>> result = RestTemplateUtils.get(centerConfig.getHost()+centerConfig.getCompanyAppId(), new TypeToken<R<Set<String>>>() {}.getType(),map);
return result.detach();
}
private InstrumentPanelGroupInit initGroup(String appId,String name){
InstrumentPanelGroupInit groupInit = new InstrumentPanelGroupInit();
groupInit.setId(this.getUuid());
groupInit.setName(name);
groupInit.setAppId(appId);
groupInit.setRecordStatus(SlmConstants.DATA_VALID);
groupInit.setCreateTime(new Date());
groupInit.setCreator("系统默认");
groupInit.setCreatorName("系统默认");
return groupInit;
}
private InstrumentPanelTreeInit initTree(InstrumentPanelGroupInit group){
InstrumentPanelTreeInit treeInit = new InstrumentPanelTreeInit();
treeInit.setAppId(group.getAppId());
treeInit.setCreateTime(group.getCreateTime());
treeInit.setCreator(group.getCreator());
treeInit.setCreatorName(group.getCreatorName());
treeInit.setFullId(group.getId());
treeInit.setFullName(group.getName());
treeInit.setId(group.getId());
treeInit.setName(group.getName());
treeInit.setRecordStatus(SlmConstants.DATA_VALID);
treeInit.setNodeType(NodeType.GROUP.value);
return treeInit;
}
private String getUuid(){
return UUID.randomUUID().toString().replaceAll("-", "");
}
}
......@@ -71,4 +71,5 @@ dc_client:
# historyCurve : /{appId}/variables/history-curve?deviceId={deviceId}&endTime={endTime}&startTime={startTime}&variableCode={variableCode}&variableId={variableId}&format={format}
# historyCurve : /{appId}/variables/history-curve
permissionCodeUrl : /{appId}/bi/permission/code
variableStatusRealTimeDataList: /{appId}/variables/status/real-time/data
\ No newline at end of file
variableStatusRealTimeDataList: /{appId}/variables/status/real-time/data
companyAppId: /{appId}/bi/company/init/app-id
\ No newline at end of file
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