Browse Source

Merge branch 'dev_1.0.2' of http://git.qmth.com.cn/marking-tool/marking-paper-struct into dev_1.0.2

xiatian 10 months ago
parent
commit
46694bff73

+ 5 - 0
install/mysql/init/paper_struct_db.sql

@@ -130,6 +130,10 @@ CREATE TABLE `mps_paper_group` (
   `updater_id` bigint DEFAULT NULL,
   `number` int NOT NULL,
   `paper_id` bigint NOT NULL,
+  `double_enable` tinyint(1) DEFAULT '0' COMMENT '是否开启双评',
+  `double_rate` double DEFAULT NULL COMMENT '双评比例',
+  `arbitrate_threshold` double DEFAULT NULL COMMENT '仲裁阈值',
+  `arbitrate_method` varchar(16) COLLATE utf8_bin DEFAULT NULL COMMENT '仲裁方式(小题仲裁、分组仲裁)',
   PRIMARY KEY (`id`),
   UNIQUE KEY `IDX_PAPER_GROUP_01` (`paper_id`,`number`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
@@ -148,6 +152,7 @@ CREATE TABLE `mps_paper_group_unit` (
   `paper_id` bigint NOT NULL,
   `detail_number` int NOT NULL,
   `detail_unit_number` int NOT NULL,
+  `arbitrate_threshold` double DEFAULT NULL COMMENT '仲裁阈值',
   PRIMARY KEY (`id`),
   UNIQUE KEY `IDX_PAPER_GROUP_UNIT_01` (`paper_id`,`detail_number`,`detail_unit_number`),
   KEY `IDX_PAPER_GROUP_UNIT_02` (`group_id`)

+ 10 - 0
install/mysql/upgrade/1.0.2.sql

@@ -0,0 +1,10 @@
+use paper_struct_db;
+
+ALTER TABLE mps_paper_group
+    ADD COLUMN double_enable TINYINT(1) NULL DEFAULT '0' COMMENT '是否开启双评' AFTER paper_id,
+    ADD COLUMN double_rate DOUBLE NULL COMMENT '双评比例' AFTER double_enable,
+    ADD COLUMN arbitrate_threshold DOUBLE NULL COMMENT '仲裁阈值' AFTER double_rate,
+    ADD COLUMN arbitrate_method VARCHAR(16) NULL COMMENT '仲裁方式(小题仲裁、分组仲裁)' AFTER arbitrate_threshold;
+
+ALTER TABLE mps_paper_group_unit
+    ADD COLUMN arbitrate_threshold DOUBLE NULL COMMENT '仲裁阈值' AFTER detail_unit_number;

+ 53 - 3
src/main/java/cn/com/qmth/mps/bean/PaperGroup.java

@@ -1,25 +1,75 @@
 package cn.com.qmth.mps.bean;
 
-import java.util.List;
-
+import cn.com.qmth.mps.enums.ArbitrateMethod;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 public class PaperGroup {
+
 	@ApiModelProperty("分组序号")
 	private Integer number;
+
+	@ApiModelProperty(value = "是否开启双评")
+	private Boolean doubleEnable;
+
+	@ApiModelProperty(value = "双评比例")
+	private Double doubleRate;
+
+	@ApiModelProperty(value = "仲裁阈值")
+	private Double arbitrateThreshold;
+
+	@ApiModelProperty(value = "仲裁方式")
+	private ArbitrateMethod arbitrateMethod;
+
 	@ApiModelProperty("分组信息")
 	private List<PaperGroupUnit> groupUnits;
+
 	public Integer getNumber() {
 		return number;
 	}
+
 	public void setNumber(Integer number) {
 		this.number = number;
 	}
+
+	public Boolean getDoubleEnable() {
+		return doubleEnable;
+	}
+
+	public void setDoubleEnable(Boolean doubleEnable) {
+		this.doubleEnable = doubleEnable;
+	}
+
+	public Double getDoubleRate() {
+		return doubleRate;
+	}
+
+	public void setDoubleRate(Double doubleRate) {
+		this.doubleRate = doubleRate;
+	}
+
+	public Double getArbitrateThreshold() {
+		return arbitrateThreshold;
+	}
+
+	public void setArbitrateThreshold(Double arbitrateThreshold) {
+		this.arbitrateThreshold = arbitrateThreshold;
+	}
+
+	public ArbitrateMethod getArbitrateMethod() {
+		return arbitrateMethod;
+	}
+
+	public void setArbitrateMethod(ArbitrateMethod arbitrateMethod) {
+		this.arbitrateMethod = arbitrateMethod;
+	}
+
 	public List<PaperGroupUnit> getGroupUnits() {
 		return groupUnits;
 	}
+
 	public void setGroupUnits(List<PaperGroupUnit> groupUnits) {
 		this.groupUnits = groupUnits;
 	}
-	
 }

+ 16 - 1
src/main/java/cn/com/qmth/mps/bean/PaperGroupUnit.java

@@ -3,22 +3,37 @@ package cn.com.qmth.mps.bean;
 import io.swagger.annotations.ApiModelProperty;
 
 public class PaperGroupUnit {
+
 	@ApiModelProperty("大题号")
 	private Integer detailNumber;
+
 	@ApiModelProperty("小题号")
 	private Integer detailUnitNumber;
+
+	@ApiModelProperty(value = "仲裁阈值")
+	private Double arbitrateThreshold;
+
 	public Integer getDetailNumber() {
 		return detailNumber;
 	}
+
 	public void setDetailNumber(Integer detailNumber) {
 		this.detailNumber = detailNumber;
 	}
+
 	public Integer getDetailUnitNumber() {
 		return detailUnitNumber;
 	}
+
 	public void setDetailUnitNumber(Integer detailUnitNumber) {
 		this.detailUnitNumber = detailUnitNumber;
 	}
 
-	
+	public Double getArbitrateThreshold() {
+		return arbitrateThreshold;
+	}
+
+	public void setArbitrateThreshold(Double arbitrateThreshold) {
+		this.arbitrateThreshold = arbitrateThreshold;
+	}
 }

+ 56 - 5
src/main/java/cn/com/qmth/mps/entity/PaperGroupEntity.java

@@ -1,28 +1,79 @@
 package cn.com.qmth.mps.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
-
 import cn.com.qmth.mps.entity.base.AuditingEntity;
+import cn.com.qmth.mps.enums.ArbitrateMethod;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
 
 @TableName("mps_paper_group")
-public class PaperGroupEntity extends AuditingEntity{
+public class PaperGroupEntity extends AuditingEntity {
+
 	/**
-	 * 
+	 *
 	 */
 	private static final long serialVersionUID = -8843551391313294436L;
+
 	private Long paperId;
+
 	private Integer number;
+
+	@ApiModelProperty(value = "是否开启双评")
+	private Boolean doubleEnable;
+
+	@ApiModelProperty(value = "双评比例")
+	private Double doubleRate;
+
+	@ApiModelProperty(value = "仲裁阈值")
+	private Double arbitrateThreshold;
+
+	@ApiModelProperty(value = "仲裁方式")
+	private ArbitrateMethod arbitrateMethod;
+
 	public Integer getNumber() {
 		return number;
 	}
+
 	public void setNumber(Integer number) {
 		this.number = number;
 	}
+
 	public Long getPaperId() {
 		return paperId;
 	}
+
 	public void setPaperId(Long paperId) {
 		this.paperId = paperId;
 	}
-	
+
+	public Boolean getDoubleEnable() {
+		return doubleEnable;
+	}
+
+	public void setDoubleEnable(Boolean doubleEnable) {
+		this.doubleEnable = doubleEnable;
+	}
+
+	public Double getDoubleRate() {
+		return doubleRate;
+	}
+
+	public void setDoubleRate(Double doubleRate) {
+		this.doubleRate = doubleRate;
+	}
+
+	public Double getArbitrateThreshold() {
+		return arbitrateThreshold;
+	}
+
+	public void setArbitrateThreshold(Double arbitrateThreshold) {
+		this.arbitrateThreshold = arbitrateThreshold;
+	}
+
+	public ArbitrateMethod getArbitrateMethod() {
+		return arbitrateMethod;
+	}
+
+	public void setArbitrateMethod(ArbitrateMethod arbitrateMethod) {
+		this.arbitrateMethod = arbitrateMethod;
+	}
 }

+ 26 - 3
src/main/java/cn/com/qmth/mps/entity/PaperGroupUnitEntity.java

@@ -3,41 +3,64 @@ package cn.com.qmth.mps.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 
 import cn.com.qmth.mps.entity.base.AuditingEntity;
+import io.swagger.annotations.ApiModelProperty;
 
 @TableName("mps_paper_group_unit")
-public class PaperGroupUnitEntity extends AuditingEntity{
+public class PaperGroupUnitEntity extends AuditingEntity {
+
 	/**
-	 * 
+	 *
 	 */
 	private static final long serialVersionUID = 5657687276637032291L;
+
 	private Long paperId;
+
 	private Long groupId;
+
 	private Integer detailNumber;
+
 	private Integer detailUnitNumber;
+
+	@ApiModelProperty(value = "仲裁阈值")
+	private Double arbitrateThreshold;
+
 	public Long getPaperId() {
 		return paperId;
 	}
+
 	public void setPaperId(Long paperId) {
 		this.paperId = paperId;
 	}
+
 	public Long getGroupId() {
 		return groupId;
 	}
+
 	public void setGroupId(Long groupId) {
 		this.groupId = groupId;
 	}
+
 	public Integer getDetailNumber() {
 		return detailNumber;
 	}
+
 	public void setDetailNumber(Integer detailNumber) {
 		this.detailNumber = detailNumber;
 	}
+
 	public Integer getDetailUnitNumber() {
 		return detailUnitNumber;
 	}
+
 	public void setDetailUnitNumber(Integer detailUnitNumber) {
 		this.detailUnitNumber = detailUnitNumber;
 	}
 
-	
+	public Double getArbitrateThreshold() {
+		return arbitrateThreshold;
+	}
+
+	public void setArbitrateThreshold(Double arbitrateThreshold) {
+		this.arbitrateThreshold = arbitrateThreshold;
+	}
 }

+ 27 - 0
src/main/java/cn/com/qmth/mps/enums/ArbitrateMethod.java

@@ -0,0 +1,27 @@
+package cn.com.qmth.mps.enums;
+
+/**
+ * @Description: 仲裁方式枚举
+ * @Author: CaoZixuan
+ * @Date: 2024-08-14
+ */
+public enum ArbitrateMethod {
+    GROUP_ARBITRATE("分组仲裁", 0), QUESTION_ARBITRATE("小题仲裁", 1);
+
+    private final String name;
+
+    private final Integer value;
+
+    ArbitrateMethod(String name, Integer value) {
+        this.name = name;
+        this.value = value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public Integer getValue() {
+        return value;
+    }
+}

+ 1 - 1
src/main/java/cn/com/qmth/mps/service/PaperGroupUnitService.java

@@ -15,7 +15,7 @@ public interface PaperGroupUnitService  extends IService<PaperGroupUnitEntity> {
 
 	void removeByGroupId(Long groupId);
 
-	void saveUnit(PaperGroupEntity group, List<PaperGroupUnit> groupUnits);
+	void saveUnit(Long groupId, Long paperId, List<PaperGroupUnit> groupUnits);
 
 	Integer countByPaperId(Long paperId);
 

+ 82 - 28
src/main/java/cn/com/qmth/mps/service/impl/PaperGroupServiceImpl.java

@@ -1,13 +1,9 @@
 package cn.com.qmth.mps.service.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
+import cn.com.qmth.mps.enums.ArbitrateMethod;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -72,6 +68,10 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 		for (PaperGroupEntity e : es) {
 			PaperGroup vo = new PaperGroup();
 			vo.setNumber(e.getNumber());
+			vo.setDoubleEnable(e.getDoubleEnable());
+			vo.setDoubleRate(e.getDoubleRate());
+			vo.setArbitrateThreshold(e.getArbitrateThreshold());
+			vo.setArbitrateMethod(e.getArbitrateMethod());
 			map.put(e.getId(), vo);
 			ret.add(vo);
 		}
@@ -197,21 +197,54 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 	@Override
 	public void groupSave(PaperGroupDomain domain, User user) {
 
-		if (domain.getPaperId() == null) {
+		Long paperId = domain.getPaperId();
+		if (Objects.isNull(paperId)) {
 			throw new StatusException("试卷结构ID不能为空");
 		}
-		if (domain.getNumber() == null) {
+		Integer groupNumber = domain.getNumber();
+		if (Objects.isNull(groupNumber)) {
 			throw new StatusException("分组号不能为空");
 		}
 		if (CollectionUtils.isEmpty(domain.getGroupUnits())) {
 			throw new StatusException("分组信息不能为空");
 		}
+
+		Boolean doubleEnable = domain.getDoubleEnable();
+		if (Objects.isNull(doubleEnable)) {
+			throw new StatusException("是否开启双评未设置");
+		}
+		Double doubleRate = domain.getDoubleRate();
+		ArbitrateMethod arbitrateMethod = domain.getArbitrateMethod();
+		Double arbitrateThreshold = domain.getArbitrateThreshold();
+		if (doubleEnable) {
+			// 如果开启双评
+			if (Objects.isNull(doubleRate) || doubleRate < 0 || doubleRate > 1) {
+				throw new StatusException("双评比例未正确设置");
+			}
+			if (Objects.isNull(arbitrateMethod)) {
+				throw new StatusException("仲裁方式未设置");
+			}
+			if (ArbitrateMethod.GROUP_ARBITRATE.equals(arbitrateMethod) || 0 < arbitrateThreshold) {
+				throw new StatusException("仲裁阈值未正确设置");
+			}
+		}
+
 		for (PaperGroupUnit u : domain.getGroupUnits()) {
+			// 小题仲裁阈值
+			Double questionArbitrateThreshold = u.getArbitrateThreshold();
 			if (u.getDetailNumber() == null || u.getDetailUnitNumber() == null) {
 				throw new StatusException("大题号、小题号不能为空");
 			}
+			if (ArbitrateMethod.QUESTION_ARBITRATE.equals(arbitrateMethod)) {
+				if (Objects.isNull(questionArbitrateThreshold) || 0 < questionArbitrateThreshold) {
+					throw new StatusException("仲裁阈值未正确设置");
+				}
+			}
+			if (ArbitrateMethod.GROUP_ARBITRATE.equals(arbitrateMethod)){
+				u.setArbitrateThreshold(null);
+			}
 		}
-		PaperEntity paper = paperService.getById(domain.getPaperId());
+		PaperEntity paper = paperService.getById(paperId);
 		if (paper == null) {
 			throw new StatusException("未找到试卷结构");
 		}
@@ -222,28 +255,49 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 		if (!paper.getStructFinish()) {
 			throw new StatusException("试卷结构未提交,不能设置分组");
 		}
-		PaperGroupEntity g;
-		if(domain.getGroupId()!=null) {
-			g=this.getById(domain.getGroupId());
-			paperGroupUnitService.removeByGroupId(domain.getGroupId());
-		}else {
-			g = new PaperGroupEntity();
-			g.setPaperId(domain.getPaperId());
-		}
-		g.setNumber(domain.getNumber());
-		this.saveOrUpdate(g);
-		List<PaperDetail> pds = paperDetailService.getStructInfo(domain.getPaperId());
+		Long groupId = domain.getGroupId();
+		// 参数处理
+		if (!doubleEnable) {
+			// 未开启双评
+			doubleRate = null;
+			arbitrateThreshold = null;
+			arbitrateMethod = null;
+		} else {
+			if (ArbitrateMethod.QUESTION_ARBITRATE.equals(arbitrateMethod)) {
+				arbitrateThreshold = null;
+			}
+		}
+		if (Objects.nonNull(groupId)) {
+			// 编辑
+			paperGroupUnitService.removeByGroupId(groupId);
+			UpdateWrapper<PaperGroupEntity> paperGroupEntityUpdateWrapper = new UpdateWrapper<>();
+			paperGroupEntityUpdateWrapper.lambda().eq(PaperGroupEntity::getId, groupId)
+					.set(PaperGroupEntity::getNumber, groupNumber).set(PaperGroupEntity::getDoubleEnable, doubleEnable)
+					.set(PaperGroupEntity::getDoubleRate, doubleRate)
+					.set(PaperGroupEntity::getArbitrateThreshold, arbitrateThreshold)
+					.set(PaperGroupEntity::getArbitrateMethod, arbitrateMethod);
+			this.update(paperGroupEntityUpdateWrapper);
+		} else {
+			// 新增
+			PaperGroupEntity paperGroupEntity = new PaperGroupEntity();
+			paperGroupEntity.setPaperId(paperId);
+			paperGroupEntity.setNumber(groupNumber);
+			paperGroupEntity.setDoubleEnable(doubleEnable);
+			paperGroupEntity.setDoubleRate(doubleRate);
+			paperGroupEntity.setArbitrateMethod(arbitrateMethod);
+			paperGroupEntity.setArbitrateThreshold(arbitrateThreshold);
+			this.save(paperGroupEntity);
+			groupId = paperGroupEntity.getId();
+		}
+
+		List<PaperDetail> pds = paperDetailService.getStructInfo(paperId);
 		if (CollectionUtils.isEmpty(pds)) {
 			throw new StatusException("试卷结构小题信息为空");
 		}
 		checkStruct(pds, domain.getGroupUnits());
-		paperGroupUnitService.saveUnit(g, domain.getGroupUnits());
-		if (paperGroupUnitService.countByPaperId(domain.getPaperId())
-				.equals(paperDetailUnitService.countByPaperId(domain.getPaperId()))) {
-			paper.setGroupFinish(true);
-		}else {
-			paper.setGroupFinish(false);
-		}
+		paperGroupUnitService.saveUnit(groupId, paperId, domain.getGroupUnits());
+		paper.setGroupFinish(
+				paperGroupUnitService.countByPaperId(paperId).equals(paperDetailUnitService.countByPaperId(paperId)));
 		paperService.updateById(paper);
 	}
 

+ 25 - 21
src/main/java/cn/com/qmth/mps/service/impl/PaperGroupUnitServiceImpl.java

@@ -1,9 +1,6 @@
 package cn.com.qmth.mps.service.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
@@ -24,24 +21,26 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 
 	@Override
 	public Map<Long, List<PaperGroupUnit>> getGroupInfo(Long paperId) {
-		List<PaperGroupUnitEntity> list=getByPaperId(paperId);
-		if(CollectionUtils.isEmpty(list)) {
+		List<PaperGroupUnitEntity> list = getByPaperId(paperId);
+		if (CollectionUtils.isEmpty(list)) {
 			return null;
 		}
-		Map<Long, List<PaperGroupUnit>> ret=new HashMap<>();
-		for(PaperGroupUnitEntity e:list) {
-			List<PaperGroupUnit> tem=ret.get(e.getGroupId());
-			if(tem==null) {
-				tem=new ArrayList<>();
+		Map<Long, List<PaperGroupUnit>> ret = new HashMap<>();
+		for (PaperGroupUnitEntity e : list) {
+			List<PaperGroupUnit> tem = ret.get(e.getGroupId());
+			if (tem == null) {
+				tem = new ArrayList<>();
 				ret.put(e.getGroupId(), tem);
 			}
-			PaperGroupUnit vo=new PaperGroupUnit();
+			PaperGroupUnit vo = new PaperGroupUnit();
 			vo.setDetailNumber(e.getDetailNumber());
 			vo.setDetailUnitNumber(e.getDetailUnitNumber());
+			vo.setArbitrateThreshold(e.getArbitrateThreshold());
 			tem.add(vo);
 		}
 		return ret;
 	}
+
 	@Override
 	public List<PaperGroupUnitEntity> getByPaperId(Long paperId) {
 		QueryWrapper<PaperGroupUnitEntity> wrapper = new QueryWrapper<>();
@@ -51,29 +50,34 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 		lw.orderByAsc(PaperGroupUnitEntity::getDetailUnitNumber);
 		return this.list(wrapper);
 	}
+
 	@Transactional
 	@Override
-	public void removeByGroupId( Long groupId) {
+	public void removeByGroupId(Long groupId) {
 		QueryWrapper<PaperGroupUnitEntity> wrapper = new QueryWrapper<>();
 		LambdaQueryWrapper<PaperGroupUnitEntity> lw = wrapper.lambda();
 		lw.eq(PaperGroupUnitEntity::getGroupId, groupId);
 		this.remove(wrapper);
 	}
+
 	@Transactional
 	@Override
-	public void saveUnit(PaperGroupEntity group, List<PaperGroupUnit> groupUnits) {
-		List<PaperGroupUnitEntity> ret=new ArrayList<>();
-		for(PaperGroupUnit unit:groupUnits) {
-			PaperGroupUnitEntity e=new PaperGroupUnitEntity();
-			e.setPaperId(group.getPaperId());
-			e.setGroupId(group.getId());
+	public void saveUnit(Long groupId, Long paperId, List<PaperGroupUnit> groupUnits) {
+		List<PaperGroupUnitEntity> ret = new ArrayList<>();
+		for (PaperGroupUnit unit : groupUnits) {
+			PaperGroupUnitEntity e = new PaperGroupUnitEntity();
+			e.setPaperId(paperId);
+			e.setGroupId(groupId);
 			e.setDetailNumber(unit.getDetailNumber());
 			e.setDetailUnitNumber(unit.getDetailUnitNumber());
+			if (Objects.nonNull(unit.getArbitrateThreshold())){
+				e.setArbitrateThreshold(unit.getArbitrateThreshold());
+			}
 			ret.add(e);
 		}
 		this.saveBatch(ret);
 	}
-	
+
 	@Override
 	public Integer countByPaperId(Long paperId) {
 		QueryWrapper<PaperGroupUnitEntity> wrapper = new QueryWrapper<>();
@@ -81,7 +85,7 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 		lw.eq(PaperGroupUnitEntity::getPaperId, paperId);
 		return this.count(wrapper);
 	}
-	
+
 	@Transactional
 	@Override
 	public void clearByPaperId(Long paperId) {

+ 69 - 13
src/main/java/cn/com/qmth/mps/vo/paper/PaperGroupDomain.java

@@ -3,40 +3,96 @@ package cn.com.qmth.mps.vo.paper;
 import java.util.List;
 
 import cn.com.qmth.mps.bean.PaperGroupUnit;
+import cn.com.qmth.mps.enums.ArbitrateMethod;
 import io.swagger.annotations.ApiModelProperty;
 
 public class PaperGroupDomain {
+
 	@ApiModelProperty("分组ID")
 	private Long groupId;
+
 	@ApiModelProperty("试卷结构ID")
 	private Long paperId;
+
 	@ApiModelProperty("分组序号")
 	private Integer number;
+
+	@ApiModelProperty(value = "是否开启双评")
+	private Boolean doubleEnable;
+
+	@ApiModelProperty(value = "双评比例")
+	private Double doubleRate;
+
+	@ApiModelProperty(value = "仲裁阈值")
+	private Double arbitrateThreshold;
+
+	@ApiModelProperty(value = "仲裁方式")
+	private ArbitrateMethod arbitrateMethod;
+
 	@ApiModelProperty("分组信息")
 	private List<PaperGroupUnit> groupUnits;
+
+	public Long getGroupId() {
+		return groupId;
+	}
+
+	public void setGroupId(Long groupId) {
+		this.groupId = groupId;
+	}
+
+	public Long getPaperId() {
+		return paperId;
+	}
+
+	public void setPaperId(Long paperId) {
+		this.paperId = paperId;
+	}
+
 	public Integer getNumber() {
 		return number;
 	}
+
 	public void setNumber(Integer number) {
 		this.number = number;
 	}
-	public List<PaperGroupUnit> getGroupUnits() {
-		return groupUnits;
+
+	public Boolean getDoubleEnable() {
+		return doubleEnable;
 	}
-	public void setGroupUnits(List<PaperGroupUnit> groupUnits) {
-		this.groupUnits = groupUnits;
+
+	public void setDoubleEnable(Boolean doubleEnable) {
+		this.doubleEnable = doubleEnable;
 	}
-	public Long getPaperId() {
-		return paperId;
+
+	public Double getDoubleRate() {
+		return doubleRate;
 	}
-	public void setPaperId(Long paperId) {
-		this.paperId = paperId;
+
+	public void setDoubleRate(Double doubleRate) {
+		this.doubleRate = doubleRate;
 	}
-	public Long getGroupId() {
-		return groupId;
+
+	public Double getArbitrateThreshold() {
+		return arbitrateThreshold;
 	}
-	public void setGroupId(Long groupId) {
-		this.groupId = groupId;
+
+	public void setArbitrateThreshold(Double arbitrateThreshold) {
+		this.arbitrateThreshold = arbitrateThreshold;
+	}
+
+	public ArbitrateMethod getArbitrateMethod() {
+		return arbitrateMethod;
+	}
+
+	public void setArbitrateMethod(ArbitrateMethod arbitrateMethod) {
+		this.arbitrateMethod = arbitrateMethod;
+	}
+
+	public List<PaperGroupUnit> getGroupUnits() {
+		return groupUnits;
+	}
+
+	public void setGroupUnits(List<PaperGroupUnit> groupUnits) {
+		this.groupUnits = groupUnits;
 	}
-	
 }