Эх сурвалжийг харах

考试-学习中心数值分析表保存接口

xiatian 6 жил өмнө
parent
commit
735dc6dbf5

+ 0 - 1
examcloud-core-reports-api-provider/pom.xml

@@ -18,5 +18,4 @@
 			<version>${examcloud.version}</version>
 		</dependency>
 	</dependencies>
-
 </project>

+ 42 - 0
examcloud-core-reports-api-provider/src/main/java/cn/com/qmth/examcloud/core/reports/api/provider/ExamOrgReportCloudServiceProvider.java

@@ -0,0 +1,42 @@
+package cn.com.qmth.examcloud.core.reports.api.provider;
+
+import org.examcloud.core.reports.api.ExamOrgReportCloudService;
+import org.examcloud.core.reports.api.request.SaveExamOrgReportListReq;
+import org.examcloud.core.reports.api.response.SaveExamOrgReportListResp;
+import org.springframework.beans.factory.annotation.Autowired;
+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 cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.core.reports.service.ExamOrgReportService;
+import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@RestController
+@Api(tags = "考试-学习中心数值接口")
+@RequestMapping("${$rmp.cloud.reports}"+"examOrgReport")
+public class ExamOrgReportCloudServiceProvider extends ControllerSupport implements ExamOrgReportCloudService {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -2138703572207468208L;
+	
+	@Autowired
+	private ExamOrgReportService examOrgReportService;
+
+	@ApiOperation(value = "批量保存")
+    @PostMapping("/saveList")
+	@Override
+	public SaveExamOrgReportListResp saveExamOrgReportList(@RequestBody SaveExamOrgReportListReq req) {
+		if(req.getBeans()==null||req.getBeans().size()==0) {
+			throw new StatusException("1000001", "数据为空");
+		}
+		examOrgReportService.saveExamOrgReportList(req.getBeans());
+		return new SaveExamOrgReportListResp();
+	}
+
+}

+ 10 - 0
examcloud-core-reports-dao/src/main/java/cn/com/qmth/examcloud/core/reports/dao/ExamOrgReportRepo.java

@@ -0,0 +1,10 @@
+package cn.com.qmth.examcloud.core.reports.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import cn.com.qmth.examcloud.core.reports.dao.entity.ExamOrgReportEntity;
+
+public interface ExamOrgReportRepo extends JpaRepository<ExamOrgReportEntity, Long>,
+		JpaSpecificationExecutor<ExamOrgReportEntity> {
+}

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

@@ -0,0 +1,134 @@
+package cn.com.qmth.examcloud.core.reports.dao.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.Index;
+import javax.persistence.Table;
+import javax.validation.constraints.NotNull;
+
+import cn.com.qmth.examcloud.core.reports.dao.entity.share.IdEntity;
+
+
+@Entity
+@Table(name = "ec_r_course_data_report",indexes = {
+		@Index(name = "IDX_R_COURSE_DATA_REPORT_01", columnList = "projectId,rootOrgId,courseId", unique = true),
+		@Index(name = "IDX_R_COURSE_DATA_REPORT_02", columnList = "projectId", unique = false),
+		@Index(name = "IDX_R_COURSE_DATA_REPORT_03", columnList = "rootOrgId", unique = false),
+		@Index(name = "IDX_R_COURSE_DATA_REPORT_04", columnList = "courseId", unique = false)})
+public class CourseDataReportEntity extends IdEntity {
+
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 8626023407766283369L;
+
+	//项目id
+	@NotNull
+    private Long projectId;
+	//rootOrgId
+    @NotNull
+    private Long rootOrgId;
+    //考试id
+    @NotNull
+    private Long examId;
+    //考试名称
+    @NotNull
+    private String examName;
+    //考试code
+    @NotNull
+    private String examCode;
+    //中心id
+    @NotNull
+    private Long orgId;
+    //中心名称
+    @NotNull
+    private String orgName;
+    //中心code
+    @NotNull
+    private String orgCode;
+    //报名人数
+    @NotNull
+    private Long signCount;
+    //实考人数
+    @NotNull
+    private Long participantCount;
+    //及格人数
+    @NotNull
+    private Long passCount;
+    //分段人数数据
+    @NotNull
+    private String partitionData;
+	public Long getProjectId() {
+		return projectId;
+	}
+	public void setProjectId(Long projectId) {
+		this.projectId = projectId;
+	}
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+	public Long getExamId() {
+		return examId;
+	}
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+	public String getExamName() {
+		return examName;
+	}
+	public void setExamName(String examName) {
+		this.examName = examName;
+	}
+	public String getExamCode() {
+		return examCode;
+	}
+	public void setExamCode(String examCode) {
+		this.examCode = examCode;
+	}
+	public Long getOrgId() {
+		return orgId;
+	}
+	public void setOrgId(Long orgId) {
+		this.orgId = orgId;
+	}
+	public String getOrgName() {
+		return orgName;
+	}
+	public void setOrgName(String orgName) {
+		this.orgName = orgName;
+	}
+	public String getOrgCode() {
+		return orgCode;
+	}
+	public void setOrgCode(String orgCode) {
+		this.orgCode = orgCode;
+	}
+	public Long getSignCount() {
+		return signCount;
+	}
+	public void setSignCount(Long signCount) {
+		this.signCount = signCount;
+	}
+	public Long getParticipantCount() {
+		return participantCount;
+	}
+	public void setParticipantCount(Long participantCount) {
+		this.participantCount = participantCount;
+	}
+	public Long getPassCount() {
+		return passCount;
+	}
+	public void setPassCount(Long passCount) {
+		this.passCount = passCount;
+	}
+	public String getPartitionData() {
+		return partitionData;
+	}
+	public void setPartitionData(String partitionData) {
+		this.partitionData = partitionData;
+	}
+    
+}

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

@@ -0,0 +1,135 @@
+package cn.com.qmth.examcloud.core.reports.dao.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.Index;
+import javax.persistence.Table;
+import javax.validation.constraints.NotNull;
+
+import cn.com.qmth.examcloud.core.reports.dao.entity.share.IdEntity;
+
+
+@Entity
+@Table(name = "ec_r_exam_org_report",indexes = {
+		@Index(name = "IDX_R_EXAM_ORG_REPORT_01", columnList = "projectId,rootOrgId,examId,orgId", unique = true),
+		@Index(name = "IDX_R_EXAM_ORG_REPORT_02", columnList = "projectId", unique = false),
+		@Index(name = "IDX_R_EXAM_ORG_REPORT_03", columnList = "rootOrgId", unique = false),
+		@Index(name = "IDX_R_EXAM_ORG_REPORT_04", columnList = "examId", unique = false),
+		@Index(name = "IDX_R_EXAM_ORG_REPORT_05", columnList = "orgId", unique = false)})
+public class ExamOrgReportEntity extends IdEntity {
+
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 8626023407766283369L;
+
+	//项目id
+	@NotNull
+    private Long projectId;
+	//rootOrgId
+    @NotNull
+    private Long rootOrgId;
+    //考试id
+    @NotNull
+    private Long examId;
+    //考试名称
+    @NotNull
+    private String examName;
+    //考试code
+    @NotNull
+    private String examCode;
+    //中心id
+    @NotNull
+    private Long orgId;
+    //中心名称
+    @NotNull
+    private String orgName;
+    //中心code
+    @NotNull
+    private String orgCode;
+    //报名人数
+    @NotNull
+    private Long signCount;
+    //实考人数
+    @NotNull
+    private Long participantCount;
+    //及格人数
+    @NotNull
+    private Long passCount;
+    //分段人数数据
+    @NotNull
+    private String partitionData;
+	public Long getProjectId() {
+		return projectId;
+	}
+	public void setProjectId(Long projectId) {
+		this.projectId = projectId;
+	}
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+	public Long getExamId() {
+		return examId;
+	}
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+	public String getExamName() {
+		return examName;
+	}
+	public void setExamName(String examName) {
+		this.examName = examName;
+	}
+	public String getExamCode() {
+		return examCode;
+	}
+	public void setExamCode(String examCode) {
+		this.examCode = examCode;
+	}
+	public Long getOrgId() {
+		return orgId;
+	}
+	public void setOrgId(Long orgId) {
+		this.orgId = orgId;
+	}
+	public String getOrgName() {
+		return orgName;
+	}
+	public void setOrgName(String orgName) {
+		this.orgName = orgName;
+	}
+	public String getOrgCode() {
+		return orgCode;
+	}
+	public void setOrgCode(String orgCode) {
+		this.orgCode = orgCode;
+	}
+	public Long getSignCount() {
+		return signCount;
+	}
+	public void setSignCount(Long signCount) {
+		this.signCount = signCount;
+	}
+	public Long getParticipantCount() {
+		return participantCount;
+	}
+	public void setParticipantCount(Long participantCount) {
+		this.participantCount = participantCount;
+	}
+	public Long getPassCount() {
+		return passCount;
+	}
+	public void setPassCount(Long passCount) {
+		this.passCount = passCount;
+	}
+	public String getPartitionData() {
+		return partitionData;
+	}
+	public void setPartitionData(String partitionData) {
+		this.partitionData = partitionData;
+	}
+    
+}

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

@@ -3,6 +3,7 @@ package cn.com.qmth.examcloud.core.reports.dao.entity;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
+import javax.persistence.Index;
 import javax.persistence.Table;
 import javax.validation.constraints.NotNull;
 
@@ -13,7 +14,8 @@ import cn.com.qmth.examcloud.core.reports.dao.entity.share.IdEntity;
 
 
 @Entity
-@Table(name = "ec_r_project")
+@Table(name = "ec_r_project",indexes = {
+		@Index(name = "IDX_R_PROJECT_01", columnList = "rootOrgId", unique = false)})
 public class ProjectEntity extends IdEntity {
 
 

+ 10 - 0
examcloud-core-reports-service/pom.xml

@@ -17,6 +17,16 @@
 			<artifactId>examcloud-core-reports-dao</artifactId>
 			<version>${examcloud.version}</version>
 		</dependency>
+		<dependency>
+            <groupId>cn.com.qmth.examcloud.rpc</groupId>
+            <artifactId>examcloud-core-reports-api-client</artifactId>
+            <version>${examcloud.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.com.qmth.examcloud.rpc</groupId>
+            <artifactId>examcloud-global-api</artifactId>
+            <version>${examcloud.version}</version>
+        </dependency>
 	</dependencies>
 
 </project>

+ 10 - 0
examcloud-core-reports-service/src/main/java/cn/com/qmth/examcloud/core/reports/service/ExamOrgReportService.java

@@ -0,0 +1,10 @@
+package cn.com.qmth.examcloud.core.reports.service;
+
+import java.util.List;
+
+import org.examcloud.core.reports.api.bean.ExamOrgReportBean;
+
+public interface ExamOrgReportService {
+
+	public void saveExamOrgReportList(List<ExamOrgReportBean> beans);
+}

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

@@ -0,0 +1,36 @@
+package cn.com.qmth.examcloud.core.reports.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.examcloud.core.reports.api.bean.ExamOrgReportBean;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import cn.com.qmth.examcloud.core.reports.dao.ExamOrgReportRepo;
+import cn.com.qmth.examcloud.core.reports.dao.entity.ExamOrgReportEntity;
+import cn.com.qmth.examcloud.core.reports.service.ExamOrgReportService;
+
+@Service
+public class ExamOrgReportServiceImpl implements ExamOrgReportService {
+	@Autowired
+	private ExamOrgReportRepo examOrgReportRepo;
+
+	@Transactional
+	@Override
+	public void saveExamOrgReportList(List<ExamOrgReportBean> beans) {
+		List<ExamOrgReportEntity> list=new ArrayList<ExamOrgReportEntity>();
+		for(ExamOrgReportBean bean:beans) {
+			ExamOrgReportEntity e=new ExamOrgReportEntity();
+			BeanUtils.copyProperties(bean, e);
+			e.setPartitionData(StringUtils.join(bean.getPartitionData().toArray(), ","));
+			list.add(e);
+		}
+		examOrgReportRepo.saveAll(list);
+	}
+
+
+}