diff --git a/aladmin-index/pom.xml b/aladmin-index/pom.xml
new file mode 100644
index 0000000..7d9bc08
--- /dev/null
+++ b/aladmin-index/pom.xml
@@ -0,0 +1,26 @@
+
+
+
+ aladmin
+ priv.alawn
+ 1.0
+
+ 4.0.0
+
+ aladmin-index
+ 指标管理模块
+
+
+
+
+
+
+
+ priv.alawn
+ aladmin-logging
+ 1.0
+
+
+
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Dimension.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Dimension.java
new file mode 100644
index 0000000..3d60985
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Dimension.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.Hibernate;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name="idx_dimension")
+public class Dimension extends BaseEntity implements Serializable {
+
+ @Id
+ @Column(name = "dimension_id")
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID", hidden = true)
+ private Long id;
+
+ private String dimensionCode;
+ private String dimensionName;
+ private String dimensionDescription;
+ private Boolean indexDimension;
+ private Boolean timeDimension;
+
+ @OneToMany(mappedBy = "dimension")
+ private List attributes;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
+ Dimension dimension = (Dimension) o;
+ return id != null && Objects.equals(id, dimension.id) &&
+ Objects.equals(dimensionCode, dimension.dimensionCode);
+ }
+
+ @Override
+ public int hashCode() {
+ return getClass().hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "id = " + id + ", " +
+ "dimensionCode = " + dimensionCode + ", " +
+ "dimensionName = " + dimensionName + ", " +
+ "dimensionDescription = " + dimensionDescription + ", " +
+ "indexDimension = " + indexDimension + ", " +
+ "timeDimension = " + timeDimension + ")";
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/DimensionAttribute.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/DimensionAttribute.java
new file mode 100644
index 0000000..f2488ce
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/DimensionAttribute.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.Hibernate;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name="idx_dimension_attribute")
+public class DimensionAttribute extends BaseEntity implements Serializable {
+
+ @Id
+ @Column(name = "dimension_attribute_id")
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID", hidden = true)
+ private Long id;
+
+ @ManyToOne
+ @JoinColumn(name = "dimension_id")
+// @JsonBackReference
+ private Dimension dimension;
+
+ private String attributeCode;
+ private String attributeName;
+ private String attributeDescription;
+ private Boolean keyAttribute;
+ private Boolean codeAttribute = false;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
+ DimensionAttribute that = (DimensionAttribute) o;
+ return id != null && Objects.equals(id, that.id) &&
+ Objects.equals(attributeCode,that.attributeCode) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return getClass().hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "id = " + id + ", " +
+ "dimension = " + dimension + ", " +
+ "attributeCode = " + attributeCode + ", " +
+ "attributeName = " + attributeName + ", " +
+ "attributeDescription = " + attributeDescription + ", " +
+ "keyAttribute = " + keyAttribute + ", " +
+ "codeAttribute = " + codeAttribute + ")";
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Fact.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Fact.java
new file mode 100644
index 0000000..9fe69a9
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Fact.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+//import com.baomidou.mybatisplus.annotation.IdType;
+//import com.baomidou.mybatisplus.annotation.TableField;
+//import com.baomidou.mybatisplus.annotation.TableId;
+//import com.baomidou.mybatisplus.annotation.TableName;
+//import com.fasterxml.jackson.annotation.JsonBackReference;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.Hibernate;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name = "idx_fact", uniqueConstraints = {
+ @UniqueConstraint(name = "uc_fact_factcode", columnNames = {"factCode"})
+})
+@TableName("idx_fact")
+public class Fact extends BaseEntity implements Serializable {
+
+ @Id
+// @ApiModelProperty(value = "ID", hidden = true)
+// @TableField("fact_id")
+ @Column(name = "fact_id")
+ @TableId(value = "fact_id",type = IdType.ASSIGN_ID)
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+// @TableField("fact_code")
+ private String factCode;
+ private String factName;
+ private String factDescription;
+
+// @JsonBackReference
+// @OneToMany(mappedBy = "fact")
+// private List measures;
+//
+// @JsonBackReference
+// @OneToMany(mappedBy = "fact")
+// private List attributes;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
+ Fact fact = (Fact) o;
+ return id != null && Objects.equals(id, fact.id) && Objects.equals(factCode, fact.factCode);
+ }
+
+ @Override
+ public int hashCode() {
+ return getClass().hashCode();
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/FactAttribute.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/FactAttribute.java
new file mode 100644
index 0000000..961516c
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/FactAttribute.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.Hibernate;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name="idx_fact_attribute")
+public class FactAttribute extends BaseEntity implements Serializable {
+
+ @Id
+ @Column(name = "fact_attribute_id")
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID", hidden = true)
+ private Long id;
+ private String attributeCode;
+ private String attributeName;
+ private String attributeDescription;
+
+ @ManyToOne
+ @JoinColumn(name = "fact_id")
+ private Fact fact;
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
+ FactAttribute that = (FactAttribute) o;
+ return id != null && Objects.equals(id, that.id) &&
+ Objects.equals(attributeCode, that.attributeCode);
+ }
+
+ @Override
+ public int hashCode() {
+ return getClass().hashCode();
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Index.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Index.java
new file mode 100644
index 0000000..615fda9
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Index.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.Hibernate;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name="idx_indexes")
+public class Index extends BaseEntity implements Serializable {
+
+ @Id
+ @Column(name = "index_id")
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID", hidden = true)
+ private Long id;
+ private String indexCode;
+ private String indexName;
+ private String indexType;
+ private String indexCategory;
+ private String indexDescription;
+ private Boolean enabled;
+ private Boolean based;
+ private String indexFolderId;
+ private String indexCalculeType;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
+ Index index = (Index) o;
+ return id != null && Objects.equals(id, index.id) &&
+ Objects.equals(indexCode, index.indexCode);
+ }
+
+ @Override
+ public int hashCode() {
+ return getClass().hashCode();
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Measure.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Measure.java
new file mode 100644
index 0000000..ed07457
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Measure.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name="idx_measure")
+public class Measure extends BaseEntity implements Serializable {
+
+ @Id
+ @Column(name = "measure_id")
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID", hidden = true)
+ private Long id;
+ private String measureCode;
+ private String measureName;
+ private String measureDescription;
+ private String measureType;
+
+ @ManyToOne
+ @JoinColumn(name = "fact_id")
+ private Fact fact;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Measure obj = (Measure) o;
+ return Objects.equals(id, obj.id) && Objects.equals(measureCode, obj.measureCode) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, measureCode);
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Model.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Model.java
new file mode 100644
index 0000000..5baa074
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/domain/Model.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import priv.alawn.aladmin.base.BaseEntity;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @author Alawn
+ * @date 2018-11-22
+ */
+@Entity
+@Getter
+@Setter
+@Table(name="idx_model")
+public class Model extends BaseEntity implements Serializable {
+
+ @Id
+ @Column(name = "dimension_id")
+ @NotNull(groups = Update.class)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @ApiModelProperty(value = "ID", hidden = true)
+ private Long id;
+
+ private String dimensionCode;
+ private String dimensionName;
+ private String dimensionDescription;
+ private Boolean indexDimension;
+ private Boolean timeDimension;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Model obj = (Model) o;
+ return Objects.equals(id, obj.id) && Objects.equals(dimensionCode, obj.dimensionCode) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, dimensionCode);
+ }
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/mapper/FactMapper.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/mapper/FactMapper.java
new file mode 100644
index 0000000..c44ec73
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/mapper/FactMapper.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import priv.alawn.aladmin.modules.idx.domain.Fact;
+
+/**
+* @author Alawn
+* @date 2019-03-25
+*/
+
+@Mapper
+public interface FactMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/repository/FactRepository.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/repository/FactRepository.java
new file mode 100644
index 0000000..d548aac
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/repository/FactRepository.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.repository;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import priv.alawn.aladmin.modules.idx.domain.Fact;
+
+/**
+* @author Alawn
+* @date 2019-03-25
+*/
+public interface FactRepository extends JpaRepository, JpaSpecificationExecutor {
+}
\ No newline at end of file
diff --git a/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/rest/DimensionController.java b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/rest/DimensionController.java
new file mode 100644
index 0000000..d983e47
--- /dev/null
+++ b/aladmin-index/src/main/java/priv/alawn/aladmin/modules/idx/rest/DimensionController.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2019-2020 Alawn
+ *
+ * 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
+ *
+ * http://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.
+ */
+package priv.alawn.aladmin.modules.idx.rest;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import priv.alawn.aladmin.annotation.Log;
+import priv.alawn.aladmin.exception.BadRequestException;
+import priv.alawn.aladmin.modules.idx.domain.Fact;
+import priv.alawn.aladmin.modules.idx.service.FactService;
+
+/**
+* @author Alawn
+* @date 2019-03-25
+*/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "指标:维度")
+@RequestMapping("/api/idx/dim")
+public class DimensionController {
+
+ private final FactService factService;
+ private static final String ENTITY_NAME = "dept";
+
+ @Log("新增事实")
+ @ApiOperation("新增事实")
+ @PostMapping
+// @PreAuthorize("@perm.check('dept:add')")
+ public ResponseEntity