Browse Source

Merge remote-tracking branch 'origin/dev-1.13.0' into dev-1.13.0

Airhead 6 years ago
parent
commit
6c7b71c7a9

+ 4 - 0
pom.xml

@ -134,6 +134,10 @@
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.yihu.ehr</groupId>
            <artifactId>commons-data-mysql</artifactId>
        </dependency>
    </dependencies>
    <build>

+ 98 - 0
src/main/java/com/yihu/quota/controller/OlapDimensionController.java

@ -0,0 +1,98 @@
package com.yihu.quota.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.constants.ApiVersion;
import com.yihu.ehr.util.rest.Envelop;
import com.yihu.quota.model.jpa.olap.OlapDimension;
import com.yihu.quota.model.jpa.olap.OlapDimensionMember;
import com.yihu.quota.service.olap.OlapDimensionMemberService;
import com.yihu.quota.service.olap.OlapDimensionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.net.URLDecoder;
import java.util.List;
/**
 * Created by wxw on 2018/9/7.
 * @author wxw
 */
@RestController
@RequestMapping(ApiVersion.Version1_0)
@Api(value = "OlapDimensionController", description = "OLAP-维度表", tags = {"OLAP-维度表"})
public class OlapDimensionController extends BaseController {
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private OlapDimensionService olapDimensionService;
    @Autowired
    private OlapDimensionMemberService olapDimensionMemberService;
    @RequestMapping(value = "/olap/searchOlapDimension", method = RequestMethod.GET)
    @ApiOperation(value = "根据查询条件查询,具有分页功能;filters='id=1'")
    public Envelop searchOlapDimension(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+dict")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "size", required = false) int size,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
            @RequestParam(value = "page", required = false) int page) throws Exception {
        Envelop envelop = new Envelop();
        List<OlapDimension> search = olapDimensionService.search(fields, filters, sorts, page, size);
        if (null != search && search.size() > 0) {
            for (OlapDimension dimension : search) {
                List<OlapDimensionMember> list = olapDimensionMemberService.search("dimensionId=" + dimension.getId());
                if (null != list && list.size() > 0) {
                    dimension.setOlapDimensionMembers(list);
                }
            }
        }
        envelop.setSuccessFlg(true);
        envelop.setDetailModelList(search);
        return envelop;
    }
    @RequestMapping(value = "/olap/saveOrUpdateOlapDimension", method = RequestMethod.POST)
    @ApiOperation(value = "添加或修改操作")
    public Envelop saveOlapDimension(
            @ApiParam(name = "model", value = "json数据模型", defaultValue = "")
            @RequestParam String model) throws Exception {
        Envelop envelop = new Envelop();
        OlapDimension dimension = objectMapper.readValue(URLDecoder.decode(model, "UTF-8"), OlapDimension.class);
        if (null == dimension.getId()) {
            // 新增
            Integer id = olapDimensionService.saveOlapDimension(dimension);
            if (null != id) {
                envelop.setSuccessFlg(true);
            }
        } else {
            olapDimensionService.save(dimension);
            envelop.setSuccessFlg(true);
        }
        return envelop;
    }
    @RequestMapping(value = "/olap/deleteOlapDimensionById", method = RequestMethod.DELETE)
    @ApiOperation(value = "根据id删除")
    public Envelop deleteOlapDimensionById(
            @ApiParam(name = "id", value = "编号", defaultValue = "")
            @RequestParam(value = "id") Integer id) throws Exception {
        Envelop envelop = new Envelop();
        olapDimensionService.deleteOlapDimension(id);
        envelop.setSuccessFlg(true);
        return envelop;
    }
}

+ 82 - 0
src/main/java/com/yihu/quota/controller/OlapDimensionMemberController.java

@ -0,0 +1,82 @@
package com.yihu.quota.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.constants.ApiVersion;
import com.yihu.ehr.util.rest.Envelop;
import com.yihu.quota.model.jpa.olap.OlapDimensionMember;
import com.yihu.quota.service.olap.OlapDimensionMemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.net.URLDecoder;
import java.util.List;
/**
 * Created by wxw on 2018/9/7.
 * @author wxw
 */
@RestController
@RequestMapping(ApiVersion.Version1_0)
@Api(value = "OlapDimensionMemberController", description = "OLAP-维度成员表", tags = {"OLAP-维度成员表"})
public class OlapDimensionMemberController extends BaseController {
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private OlapDimensionMemberService olapDimensionMemberService;
    @RequestMapping(value = "/olap/searchOlapDimensionMenber", method = RequestMethod.GET)
    @ApiOperation(value = "根据查询条件查询,具有分页功能;filters='id=1'")
    public Envelop searchOlapDimension(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+level")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "size", required = false) int size,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
            @RequestParam(value = "page", required = false) int page) throws Exception {
        Envelop envelop = new Envelop();
        List<OlapDimensionMember> search = olapDimensionMemberService.search(fields, filters, sorts, page, size);
        envelop.setSuccessFlg(true);
        envelop.setDetailModelList(search);
        return envelop;
    }
    @RequestMapping(value = "/olap/saveOrUpdateOlapDimensionMember", method = RequestMethod.POST)
    @ApiOperation(value = "添加或修改操作")
    public Envelop saveOlapDimension(
            @ApiParam(name = "model", value = "json数据模型", defaultValue = "")
            @RequestParam String model) throws Exception {
        Envelop envelop = new Envelop();
        OlapDimensionMember dimensionMember = objectMapper.readValue(URLDecoder.decode(model, "UTF-8"), OlapDimensionMember.class);
        if (null == dimensionMember.getId()) {
            // 新增
            olapDimensionMemberService.save(dimensionMember);
            envelop.setSuccessFlg(true);
        } else {
            olapDimensionMemberService.save(dimensionMember);
            envelop.setSuccessFlg(true);
        }
        return envelop;
    }
    @RequestMapping(value = "/olap/deleteOlapDMById", method = RequestMethod.DELETE)
    @ApiOperation(value = "根据id删除")
    public Envelop deleteOlapDMById(
            @ApiParam(name = "id", value = "编号", defaultValue = "")
            @RequestParam(value = "id") Integer id) throws Exception {
        Envelop envelop = new Envelop();
        olapDimensionMemberService.delete(id);
        envelop.setSuccessFlg(true);
        return envelop;
    }
}

+ 10 - 0
src/main/java/com/yihu/quota/dao/olap/OlapDimensionDao.java

@ -0,0 +1,10 @@
package com.yihu.quota.dao.jpa.olap;
import com.yihu.quota.model.jpa.olap.OlapDimension;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wxw on 2018/9/7.
 */
public interface OlapDimensionDao extends PagingAndSortingRepository<OlapDimension, Integer> {
}

+ 18 - 0
src/main/java/com/yihu/quota/dao/olap/OlapDimensionMemberDao.java

@ -0,0 +1,18 @@
package com.yihu.quota.dao.jpa.olap;
import com.yihu.quota.model.jpa.olap.OlapDimensionMember;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
/**
 * Created by wxw on 2018/9/7.
 * @author wxw
 */
public interface OlapDimensionMemberDao extends PagingAndSortingRepository<OlapDimensionMember, Integer> {
    @Modifying
    @Query("delete from OlapDimensionMember where dimensionId = :dimensionId")
    void deleteByDimensionId(@Param("dimensionId") Integer dimensionId);
}

+ 83 - 0
src/main/java/com/yihu/quota/model/jpa/olap/OlapDimension.java

@ -0,0 +1,83 @@
package com.yihu.quota.model.jpa.olap;
import javax.persistence.*;
import java.util.List;
/**
 * Created by wxw on 2018/9/7.
 * @author wxw
 */
@Entity
@Table(name = "olap_dimension")
public class OlapDimension {
    private Integer id;
    private String name;
    private String code;
    private Integer type;
    private String dict;
    private String algorithm;
    // 临时字段
    private List<OlapDimensionMember> olapDimensionMembers;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getDict() {
        return dict;
    }
    public void setDict(String dict) {
        this.dict = dict;
    }
    public String getAlgorithm() {
        return algorithm;
    }
    public void setAlgorithm(String algorithm) {
        this.algorithm = algorithm;
    }
    @Transient
    public List<OlapDimensionMember> getOlapDimensionMembers() {
        return olapDimensionMembers;
    }
    public void setOlapDimensionMembers(List<OlapDimensionMember> olapDimensionMembers) {
        this.olapDimensionMembers = olapDimensionMembers;
    }
}

+ 61 - 0
src/main/java/com/yihu/quota/model/jpa/olap/OlapDimensionMember.java

@ -0,0 +1,61 @@
package com.yihu.quota.model.jpa.olap;
import javax.persistence.*;
/**
 * Created by wxw on 2018/9/7.
 * @author wxw
 */
@Entity
@Table(name = "olap_dimension_member")
public class OlapDimensionMember {
    private Integer id;
    private String name;
    private String code;
    private Integer dimensionId;
    private Integer level;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "dimension_id")
    public Integer getDimensionId() {
        return dimensionId;
    }
    public void setDimensionId(Integer dimensionId) {
        this.dimensionId = dimensionId;
    }
    public Integer getLevel() {
        return level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
}

+ 16 - 0
src/main/java/com/yihu/quota/service/olap/OlapDimensionMemberService.java

@ -0,0 +1,16 @@
package com.yihu.quota.service.olap;
import com.yihu.ehr.query.BaseJpaService;
import com.yihu.quota.dao.jpa.olap.OlapDimensionMemberDao;
import com.yihu.quota.model.jpa.olap.OlapDimensionMember;
import org.springframework.stereotype.Service;
/**
 * Created by wxw on 2018/9/7.
 * @author wxw
 */
@Service
public class OlapDimensionMemberService extends BaseJpaService<OlapDimensionMember, OlapDimensionMemberDao> {
}

+ 37 - 0
src/main/java/com/yihu/quota/service/olap/OlapDimensionService.java

@ -0,0 +1,37 @@
package com.yihu.quota.service.olap;
import com.yihu.ehr.query.BaseJpaService;
import com.yihu.quota.dao.jpa.olap.OlapDimensionDao;
import com.yihu.quota.dao.jpa.olap.OlapDimensionMemberDao;
import com.yihu.quota.model.jpa.olap.OlapDimension;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * Created by wxw on 2018/9/7.
 */
@Service
public class OlapDimensionService extends BaseJpaService<OlapDimension, OlapDimensionDao> {
    @Autowired
    private OlapDimensionDao olapDimensionDao;
    @Autowired
    private OlapDimensionMemberDao olapDimensionMemberDao;
    /**
     * 保存接口
     * @param olapDimension
     * @return 保存之后的id
     */
    public Integer saveOlapDimension(OlapDimension olapDimension) {
        olapDimension = olapDimensionDao.save(olapDimension);
        return olapDimension.getId();
    }
    public void deleteOlapDimension(Integer id) {
        olapDimensionDao.delete(id);
        // 同时删掉隶属于该维度的成员
        olapDimensionMemberDao.deleteByDimensionId(id);
    }
}