Sfoglia il codice sorgente

项目列表接口

xiatian 6 anni fa
parent
commit
4d508f6bc5

+ 56 - 1
examcloud-core-reports-api-provider/src/main/java/cn/com/qmth/examcloud/core/reports/api/provider/controller/ProjectController.java

@@ -1,13 +1,68 @@
 package cn.com.qmth.examcloud.core.reports.api.provider.controller;
 
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.core.reports.base.bean.AddProjectReq;
+import cn.com.qmth.examcloud.core.reports.base.bean.ProjectBean;
+import cn.com.qmth.examcloud.core.reports.base.bean.QueryProjectPageReq;
+import cn.com.qmth.examcloud.core.reports.base.bean.UpdateProjectReq;
+import cn.com.qmth.examcloud.core.reports.base.enums.DataOrigin;
+import cn.com.qmth.examcloud.core.reports.service.ProjectService;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 
 @RestController
+@Api(tags = "项目列表")
 @RequestMapping("${$rmp.ctr.reports}/" + "project")
 public class ProjectController extends ControllerSupport {
-
+	@Autowired
+	private ProjectService projectService;
+	
+    @PostMapping("/add")
+    @ApiOperation(value = "新增项目")
+    public Long addProject(@RequestBody @Valid AddProjectReq req) {
+    	if(req.getDataOrigin().equals(DataOrigin.SYNC)&&(req.getExamIds()==null||req.getExamIds().size()==0)) {
+    		throw new StatusException("1000001", "请选择考试");
+    	}
+    	if(req.getDataOrigin().equals(DataOrigin.IMPORT)) {
+    		throw new StatusException("1000002", "暂不支持导入");
+    	}
+    	User user=getAccessUser();
+        return projectService.addProject(req,user.getRootOrgId());
+    }
+    @PostMapping("/update")
+    @ApiOperation(value = "修改项目")
+    public void updateProject(@RequestBody @Valid UpdateProjectReq req) {
+    	User user=getAccessUser();
+        projectService.updateProject(req,user.getRootOrgId());
+    }
+    @PostMapping("/enable")
+    @ApiOperation(value = "启用禁用")
+    public void updateEnable(@RequestParam(required = true)@NotBlank(message = "请选择项目") @ApiParam(value = "项目Id集合") String ids,
+    		@RequestParam(required = true)  @ApiParam(value = "启用/禁用") Boolean enable) {
+    	User user=getAccessUser();
+        projectService.updateEnable(ids, enable, user.getRootOrgId());
+    }
+    @PostMapping("page/{pageNo}/{pageSize}")
+    @ApiOperation(value = "项目列表分页查询")
+    public PageInfo<ProjectBean> queryPage(@RequestBody QueryProjectPageReq req,
+                                        @PathVariable @ApiParam(value = "pageNo = 1,2,3...") Integer pageNo, @PathVariable Integer pageSize) {
+    	User user=getAccessUser();
+    	return projectService.queryPage(req, pageNo, pageSize,user.getRootOrgId());
+    }
 
 }

+ 105 - 0
examcloud-core-reports-base/src/main/java/cn/com/qmth/examcloud/core/reports/base/bean/AddProjectReq.java

@@ -0,0 +1,105 @@
+package cn.com.qmth.examcloud.core.reports.base.bean;
+
+import java.util.List;
+
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import cn.com.qmth.examcloud.core.reports.base.enums.AnalyseType;
+import cn.com.qmth.examcloud.core.reports.base.enums.DataOrigin;
+import io.swagger.annotations.ApiModelProperty;
+
+public class AddProjectReq implements JsonSerializable {
+
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -5807098559991360206L;
+
+	// 项目名
+	@NotBlank(message = "项目名称不能为空")
+	@Length(min = 1, max = 100, message = "项目名称长度需要在1和100之间")
+    @ApiModelProperty(value = "项目名称")
+	private String name;
+
+	// 分析类型
+	@NotNull(message = "分析类型不能为空")
+    @ApiModelProperty(value = "分析类型")
+	@Enumerated(EnumType.STRING)
+	private AnalyseType analyseType;
+
+	// 数据来源
+	@NotNull(message = "数据来源不能为空")
+    @ApiModelProperty(value = "数据来源")
+	@Enumerated(EnumType.STRING)
+	private DataOrigin dataOrigin;
+
+	// 样本数量
+	@NotNull(message = "样本数量不能为空")
+    @ApiModelProperty(value = "样本数量")
+	private Integer sampleCount;
+
+	// 所选考试id
+	private List<Long> examIds;
+
+	// 备注
+	@Length(min = 0, max = 100, message = "备注长度需要在0和100之间")
+	private String remarks;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public AnalyseType getAnalyseType() {
+		return analyseType;
+	}
+
+	public void setAnalyseType(AnalyseType analyseType) {
+		this.analyseType = analyseType;
+	}
+
+	public DataOrigin getDataOrigin() {
+		return dataOrigin;
+	}
+
+	public void setDataOrigin(DataOrigin dataOrigin) {
+		this.dataOrigin = dataOrigin;
+	}
+
+	public Integer getSampleCount() {
+		return sampleCount;
+	}
+
+	public void setSampleCount(Integer sampleCount) {
+		this.sampleCount = sampleCount;
+	}
+
+
+	public List<Long> getExamIds() {
+		return examIds;
+	}
+
+	public void setExamIds(List<Long> examIds) {
+		this.examIds = examIds;
+	}
+
+	public String getRemarks() {
+		return remarks;
+	}
+
+	public void setRemarks(String remarks) {
+		this.remarks = remarks;
+	}
+	
+	
+}

+ 180 - 0
examcloud-core-reports-base/src/main/java/cn/com/qmth/examcloud/core/reports/base/bean/ProjectBean.java

@@ -0,0 +1,180 @@
+package cn.com.qmth.examcloud.core.reports.base.bean;
+
+import java.util.List;
+
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import cn.com.qmth.examcloud.core.reports.base.enums.AnalyseType;
+import cn.com.qmth.examcloud.core.reports.base.enums.DataOrigin;
+import cn.com.qmth.examcloud.core.reports.base.enums.ReportStatus;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ProjectBean implements JsonSerializable {
+
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -5807098559991360206L;
+	
+	@ApiModelProperty(value = "项目id")
+	private Long id;
+	@ApiModelProperty(value = "rootOrgId")
+	private Long rootOrgId;
+	@ApiModelProperty(value = "及格线")
+	private Double passScore;
+	@ApiModelProperty(value = "满分分数")
+	private Double totalScore;
+	@ApiModelProperty(value = "分数段分段详情")
+	private List<Double> partitionDetails;
+	@ApiModelProperty(value = "分段数量")
+	private Integer partitionCount;
+    @ApiModelProperty(value = "项目名称")
+	private String name;
+    @ApiModelProperty(value = "分析类型")
+	@Enumerated(EnumType.STRING)
+	private AnalyseType analyseType;
+    @ApiModelProperty(value = "分析类型名称")
+	private String analyseTypeName;
+    @ApiModelProperty(value = "报表状态")
+	@Enumerated(EnumType.STRING)
+	private ReportStatus reportStatus;
+    @ApiModelProperty(value = "报表状态名称")
+	private String reportStatusName;
+    @ApiModelProperty(value = "数据来源")
+	@Enumerated(EnumType.STRING)
+	private DataOrigin dataOrigin;
+    @ApiModelProperty(value = "数据来源名称")
+	private String dataOriginName;
+    @ApiModelProperty(value = "样本数量")
+	private Integer sampleCount;
+    @ApiModelProperty(value = "课程数量")
+	private Integer courseCount;
+    @ApiModelProperty(value = "中心数量")
+	private Integer orgCount;
+    @ApiModelProperty(value = "所选考试id")
+	private List<Long> examIds;
+    @ApiModelProperty(value = "备注")
+	private String remarks;
+    @ApiModelProperty(value = "启用禁用")
+	private Boolean enable;
+	public Long getId() {
+		return id;
+	}
+	public void setId(Long id) {
+		this.id = id;
+	}
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+	public Double getPassScore() {
+		return passScore;
+	}
+	public void setPassScore(Double passScore) {
+		this.passScore = passScore;
+	}
+	public Double getTotalScore() {
+		return totalScore;
+	}
+	public void setTotalScore(Double totalScore) {
+		this.totalScore = totalScore;
+	}
+	public List<Double> getPartitionDetails() {
+		return partitionDetails;
+	}
+	public void setPartitionDetails(List<Double> partitionDetails) {
+		this.partitionDetails = partitionDetails;
+	}
+	public Integer getPartitionCount() {
+		return partitionCount;
+	}
+	public void setPartitionCount(Integer partitionCount) {
+		this.partitionCount = partitionCount;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public AnalyseType getAnalyseType() {
+		return analyseType;
+	}
+	public void setAnalyseType(AnalyseType analyseType) {
+		this.analyseType = analyseType;
+	}
+	public ReportStatus getReportStatus() {
+		return reportStatus;
+	}
+	public void setReportStatus(ReportStatus reportStatus) {
+		this.reportStatus = reportStatus;
+	}
+	public DataOrigin getDataOrigin() {
+		return dataOrigin;
+	}
+	public void setDataOrigin(DataOrigin dataOrigin) {
+		this.dataOrigin = dataOrigin;
+	}
+	public Integer getSampleCount() {
+		return sampleCount;
+	}
+	public void setSampleCount(Integer sampleCount) {
+		this.sampleCount = sampleCount;
+	}
+	public Integer getCourseCount() {
+		return courseCount;
+	}
+	public void setCourseCount(Integer courseCount) {
+		this.courseCount = courseCount;
+	}
+	public Integer getOrgCount() {
+		return orgCount;
+	}
+	public void setOrgCount(Integer orgCount) {
+		this.orgCount = orgCount;
+	}
+	public List<Long> getExamIds() {
+		return examIds;
+	}
+	public void setExamIds(List<Long> examIds) {
+		this.examIds = examIds;
+	}
+	public String getRemarks() {
+		return remarks;
+	}
+	public void setRemarks(String remarks) {
+		this.remarks = remarks;
+	}
+	public Boolean getEnable() {
+		return enable;
+	}
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+	public String getAnalyseTypeName() {
+		return analyseTypeName;
+	}
+	public void setAnalyseTypeName(String analyseTypeName) {
+		this.analyseTypeName = analyseTypeName;
+	}
+	public String getReportStatusName() {
+		return reportStatusName;
+	}
+	public void setReportStatusName(String reportStatusName) {
+		this.reportStatusName = reportStatusName;
+	}
+	public String getDataOriginName() {
+		return dataOriginName;
+	}
+	public void setDataOriginName(String dataOriginName) {
+		this.dataOriginName = dataOriginName;
+	}
+
+	
+	
+}

+ 69 - 0
examcloud-core-reports-base/src/main/java/cn/com/qmth/examcloud/core/reports/base/bean/QueryProjectPageReq.java

@@ -0,0 +1,69 @@
+package cn.com.qmth.examcloud.core.reports.base.bean;
+
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import cn.com.qmth.examcloud.core.reports.base.enums.AnalyseType;
+import cn.com.qmth.examcloud.core.reports.base.enums.DataOrigin;
+import io.swagger.annotations.ApiModelProperty;
+
+public class QueryProjectPageReq implements JsonSerializable {
+
+
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -845826847340443744L;
+	// 项目id
+    @ApiModelProperty(value = "项目id")
+	private Long id;
+	// 项目名
+    @ApiModelProperty(value = "项目名称")
+	private String name;
+
+	// 分析类型
+    @ApiModelProperty(value = "分析类型")
+	@Enumerated(EnumType.STRING)
+	private AnalyseType analyseType;
+
+	// 数据来源
+    @ApiModelProperty(value = "数据来源")
+	@Enumerated(EnumType.STRING)
+	private DataOrigin dataOrigin;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public AnalyseType getAnalyseType() {
+		return analyseType;
+	}
+
+	public void setAnalyseType(AnalyseType analyseType) {
+		this.analyseType = analyseType;
+	}
+
+	public DataOrigin getDataOrigin() {
+		return dataOrigin;
+	}
+
+	public void setDataOrigin(DataOrigin dataOrigin) {
+		this.dataOrigin = dataOrigin;
+	}
+
+	
+}

+ 60 - 0
examcloud-core-reports-base/src/main/java/cn/com/qmth/examcloud/core/reports/base/bean/UpdateProjectReq.java

@@ -0,0 +1,60 @@
+package cn.com.qmth.examcloud.core.reports.base.bean;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import io.swagger.annotations.ApiModelProperty;
+
+public class UpdateProjectReq implements JsonSerializable {
+
+
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -6517778374791797274L;
+
+	// 项目id
+	@NotNull(message = "项目id不能为空")
+    @ApiModelProperty(value = "项目id")
+	private Long id;
+	// 项目名
+	@NotBlank(message = "项目名称不能为空")
+	@Length(min = 1, max = 100, message = "项目名称长度需要在1和100之间")
+    @ApiModelProperty(value = "项目名称")
+	private String name;
+
+
+	// 备注
+	@Length(min = 0, max = 100, message = "备注长度需要在0和100之间")
+	private String remarks;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getRemarks() {
+		return remarks;
+	}
+
+	public void setRemarks(String remarks) {
+		this.remarks = remarks;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	
+}

+ 10 - 3
examcloud-core-reports-dao/src/main/java/cn/com/qmth/examcloud/core/reports/dao/ProjectRepo.java

@@ -1,10 +1,17 @@
 package cn.com.qmth.examcloud.core.reports.dao;
 
+import java.util.List;
+
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
 
 import cn.com.qmth.examcloud.core.reports.dao.entity.ProjectEntity;
 
-
-public interface ProjectRepo extends JpaRepository<ProjectEntity,Long>{
-
+public interface ProjectRepo extends JpaRepository<ProjectEntity, Long>,
+		JpaSpecificationExecutor<ProjectEntity> {
+	@Modifying
+	@Query(value = "update ec_r_project set enable = ?3 where id in(?1) and root_org_id=?2 ", nativeQuery = true)
+	int updateEnable(List<Long> ids, Long rootOrgId, Boolean enable);
 }

+ 11 - 0
examcloud-core-reports-dao/src/main/java/cn/com/qmth/examcloud/core/reports/dao/entity/ProjectEntity.java

@@ -67,6 +67,9 @@ public class ProjectEntity extends IdEntity {
     //及格分数
     private Double passScore;
     
+    //满分分数
+    private Double totalScore;
+    
     //分数段数量
     private Integer partitionCount;
     
@@ -184,6 +187,14 @@ public class ProjectEntity extends IdEntity {
 	public void setPartitionDetails(String partitionDetails) {
 		this.partitionDetails = partitionDetails;
 	}
+
+	public Double getTotalScore() {
+		return totalScore;
+	}
+
+	public void setTotalScore(Double totalScore) {
+		this.totalScore = totalScore;
+	}
     
     
 }

+ 10 - 1
examcloud-core-reports-service/src/main/java/cn/com/qmth/examcloud/core/reports/service/ProjectService.java

@@ -1,6 +1,15 @@
 package cn.com.qmth.examcloud.core.reports.service;
 
-public interface ProjectService {
+import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
+import cn.com.qmth.examcloud.core.reports.base.bean.AddProjectReq;
+import cn.com.qmth.examcloud.core.reports.base.bean.ProjectBean;
+import cn.com.qmth.examcloud.core.reports.base.bean.QueryProjectPageReq;
+import cn.com.qmth.examcloud.core.reports.base.bean.UpdateProjectReq;
 
+public interface ProjectService {
 
+	public Long addProject(AddProjectReq req,Long rootOrgId);
+	public void updateProject(UpdateProjectReq req,Long rootOrgId);
+	public void updateEnable(String ids,Boolean enable,Long rootOrgId);
+	public PageInfo<ProjectBean> queryPage(QueryProjectPageReq req,Integer pageNo,Integer pageSize,Long rootOrgId);
 }

+ 165 - 0
examcloud-core-reports-service/src/main/java/cn/com/qmth/examcloud/core/reports/service/impl/ProjectServiceImpl.java

@@ -1,7 +1,172 @@
 package cn.com.qmth.examcloud.core.reports.service.impl;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.persistence.criteria.Predicate;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.google.common.collect.Lists;
+
+import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
+import cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.core.reports.base.bean.AddProjectReq;
+import cn.com.qmth.examcloud.core.reports.base.bean.ProjectBean;
+import cn.com.qmth.examcloud.core.reports.base.bean.QueryProjectPageReq;
+import cn.com.qmth.examcloud.core.reports.base.bean.UpdateProjectReq;
+import cn.com.qmth.examcloud.core.reports.base.enums.AnalyseType;
+import cn.com.qmth.examcloud.core.reports.base.enums.DataOrigin;
+import cn.com.qmth.examcloud.core.reports.base.enums.ReportStatus;
+import cn.com.qmth.examcloud.core.reports.dao.ProjectRepo;
+import cn.com.qmth.examcloud.core.reports.dao.entity.ProjectEntity;
 import cn.com.qmth.examcloud.core.reports.service.ProjectService;
+import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 
+@Service
 public class ProjectServiceImpl implements ProjectService {
+	@Autowired
+	private ProjectRepo projectRepo;
+
+	@Transactional
+	@Override
+	public Long addProject(AddProjectReq req,Long rootOrgId) {
+		ProjectEntity pe=new ProjectEntity();
+		BeanUtils.copyProperties(req, pe);
+		pe.setRootOrgId(rootOrgId);
+		pe.setEnable(true);
+		pe.setReportStatus(ReportStatus.NONE);
+		pe.setExamIds(StringUtils.join(req.getExamIds().toArray(), ","));
+		projectRepo.save(pe);
+		return pe.getId();
+	}
+
+	@Transactional
+	@Override
+	public void updateProject(UpdateProjectReq req,Long rootOrgId) {
+		ProjectEntity pe = GlobalHelper.getEntity(projectRepo, req.getId(), ProjectEntity.class);
+		if(pe==null) {
+			throw new StatusException("1000001", "项目不存在");
+		}
+		if(!rootOrgId.equals(pe.getRootOrgId())) {
+			throw new StatusException("1000002", "RootOrgId不一致");
+		}
+		pe.setName(req.getName());
+		pe.setRemarks(req.getRemarks());
+		projectRepo.save(pe);
+	}
+	@Transactional
+	@Override
+	public void updateEnable(String ids, Boolean enable,Long rootOrgId) {
+		List<Long> idList = Arrays.asList(ids.split(",")).stream().map(str -> Long.parseLong(str))
+                .collect(Collectors.toList());
+		projectRepo.updateEnable(idList, rootOrgId, enable);
+	}
+	private String toSqlSearchPattern(String column) {
+		if (StringUtils.isBlank(column)) {
+			return "%";
+		} else {
+			column = column.trim().replaceAll("\\s", "%");
+			column = "%" + column + "%";
+			return column;
+		}
+	}
+	@Override
+	public PageInfo<ProjectBean> queryPage(QueryProjectPageReq req, Integer pageNo, Integer pageSize,Long rootOrgId) {
+		Long id=req.getId();
+		String name=req.getName();
+		AnalyseType analyseType=req.getAnalyseType();
+		DataOrigin dataOrigin=req.getDataOrigin();
+		Specification<ProjectEntity> specification = (root, query, cb) -> {
+			List<Predicate> predicates = new ArrayList<>();
+			predicates.add(cb.equal(root.get("rootOrgId"), rootOrgId));
+
+			if (null != id) {
+				predicates.add(cb.equal(root.get("id"), id));
+			}
+			if (null != analyseType) {
+				predicates.add(cb.equal(root.get("analyseType"), analyseType));
+			}
+			if (null != dataOrigin) {
+				predicates.add(cb.equal(root.get("dataOrigin"), dataOrigin));
+			}
+			if (StringUtils.isNotEmpty(name)) {
+				predicates.add(cb.like(root.get("name"), toSqlSearchPattern(name)));
+			}
+
+			return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+		};
+
+		PageRequest pageRequest = PageRequest.of(pageNo-1, pageSize,
+				new Sort(Direction.DESC, "id"));
+
+		Page<ProjectEntity> projects = projectRepo.findAll(specification, pageRequest);
+
+		List<ProjectBean> ret = Lists.newArrayList();
+
+		for (ProjectEntity cur : projects) {
+			ProjectBean bean = new ProjectBean();
+			BeanUtils.copyProperties(cur, bean);
+			bean.setAnalyseTypeName(getAnalyseTypeName(bean.getAnalyseType()));
+			bean.setDataOriginName(getDataOriginName(bean.getDataOrigin()));
+			bean.setReportStatusName(getReportStatusName(bean.getReportStatus()));
+			if(StringUtils.isNotBlank(cur.getExamIds())) {
+				List<Long> temList = Arrays.asList(cur.getExamIds().split(",")).stream().map(str -> Long.parseLong(str))
+		                .collect(Collectors.toList());
+				bean.setExamIds(temList);
+			}
+			if(StringUtils.isNotBlank(cur.getPartitionDetails())) {
+				List<Double> temList = Arrays.asList(cur.getPartitionDetails().split(",")).stream().map(str -> Double.parseDouble(str))
+		                .collect(Collectors.toList());
+				bean.setPartitionDetails(temList);
+			}
+			ret.add(bean);
+		}
+		return new PageInfo<ProjectBean>(projects, ret);
+	}
+	private String getAnalyseTypeName(AnalyseType e) {
+		if(e.equals(AnalyseType.SINGLE)) {
+			return "单项分析";
+		}
+		if(e.equals(AnalyseType.TREND)) {
+			return "趋势分析";
+		}
+		return "";
+	}
+	private String getDataOriginName(DataOrigin e) {
+		if(e.equals(DataOrigin.SYNC)) {
+			return "同步";
+		}
+		if(e.equals(DataOrigin.IMPORT)) {
+			return "导入";
+		}
+		return "";
+	}
+	private String getReportStatusName(ReportStatus e) {
+		if(e.equals(ReportStatus.NONE)) {
+			return "未计算";
+		}
+		if(e.equals(ReportStatus.COMPUTING)) {
+			return "计算中";
+		}
+		if(e.equals(ReportStatus.SUCCESS)) {
+			return "计算成功";
+		}
+		if(e.equals(ReportStatus.FAIL)) {
+			return "计算失败";
+		}
+		return "";
+	}
 
 }

+ 1 - 1
examcloud-core-reports-starter/src/main/java/cn/com/qmth/examcloud/core/reports/starter/config/Swagger2.java

@@ -19,7 +19,7 @@ public class Swagger2 {
 	@Bean
 	public Docket createRestApi() {
 		return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
-				.apis(RequestHandlerSelectors.basePackage("cn.com.qmth.examcloud.core.basic.api"))
+				.apis(RequestHandlerSelectors.basePackage("cn.com.qmth.examcloud.core.reports.api"))
 				.paths(PathSelectors.any()).build();
 	}