Browse Source

考务规则、题卡规则管理

xiaof 4 years ago
parent
commit
3c6363b213
38 changed files with 814 additions and 59 deletions
  1. 158 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/bean/dto/CardRuleDto.java
  2. 37 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/bean/query/CardRuleParam.java
  3. 3 3
      digit-print-business/src/main/java/com/qmth/digit/print/business/bean/query/CourseParam.java
  4. 27 15
      digit-print-business/src/main/java/com/qmth/digit/print/business/entity/BasicCardRule.java
  5. 13 12
      digit-print-business/src/main/java/com/qmth/digit/print/business/entity/BasicExamRule.java
  6. 4 3
      digit-print-business/src/main/java/com/qmth/digit/print/business/entity/BasicTemplateOrg.java
  7. 6 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/mapper/BasicCardRuleMapper.java
  8. 5 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/mapper/BasicTemplateOrgMapper.java
  9. 13 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/BasicCardRuleService.java
  10. 3 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/BasicExamRuleService.java
  11. 9 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/BasicTemplateOrgService.java
  12. 83 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/BasicCardRuleServiceImpl.java
  13. 13 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/BasicExamRuleServiceImpl.java
  14. 35 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/BasicTemplateOrgServiceImpl.java
  15. 5 0
      digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/SysConfigServiceImpl.java
  16. 6 0
      digit-print-business/src/main/resources/db/init-data.sql
  17. 7 7
      digit-print-business/src/main/resources/db/init-table.sql
  18. 18 2
      digit-print-business/src/main/resources/mapper/BasicCardRuleMapper.xml
  19. 10 0
      digit-print-business/src/main/resources/mapper/BasicTemplateOrgMapper.xml
  20. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/BackupMethodEnum.java
  21. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ClassifyEnum.java
  22. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/DrawRuleEnum.java
  23. 31 0
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/EnumType.java
  24. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ExamNumberStyleEnum.java
  25. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ExamStatusEnum.java
  26. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/PaperTypeEnum.java
  27. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/PrintMethodEnum.java
  28. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/PrivilegeTypeEnum.java
  29. 56 0
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/RequiredFieldsEnum.java
  30. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ReviewStatusEnum.java
  31. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/RoleTypeEnum.java
  32. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/StorageLevelEnum.java
  33. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/StorageTypeEnum.java
  34. 1 1
      digit-print-common/src/main/java/com/qmth/digit/print/common/enums/TemplateTypeEnum.java
  35. 101 2
      digit-print/src/main/java/com/qmth/digit/print/api/BasicCardRuleController.java
  36. 53 1
      digit-print/src/main/java/com/qmth/digit/print/api/BasicExamRuleController.java
  37. 85 0
      digit-print/src/main/java/com/qmth/digit/print/api/EnumsController.java
  38. 20 1
      digit-print/src/main/java/com/qmth/digit/print/api/SysConfigController.java

+ 158 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/bean/dto/CardRuleDto.java

@@ -0,0 +1,158 @@
+package com.qmth.digit.print.business.bean.dto;
+
+import com.qmth.digit.print.business.entity.SysOrg;
+import com.qmth.digit.print.common.enums.ExamNumberStyleEnum;
+import com.qmth.digit.print.common.enums.PaperTypeEnum;
+
+import java.util.List;
+
+/**
+ * @Date: 2021/3/29.
+ */
+public class CardRuleDto {
+
+    private Long id;
+    private Long schoolId;
+    private String name;
+    private ExamNumberStyleEnum examNumberStyle;
+    private PaperTypeEnum paperType;
+    private Boolean examAbsent;
+    private Boolean writeSign;
+    private String requiredFields;
+    private String extendFields;
+    private String titleRule;
+    private String attention;
+    private String objectiveAttention;
+    private String subjectiveAttention;
+    private Boolean enable;
+    private String remark;
+    private List<SysOrg> orgs;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public ExamNumberStyleEnum getExamNumberStyle() {
+        return examNumberStyle;
+    }
+
+    public void setExamNumberStyle(ExamNumberStyleEnum examNumberStyle) {
+        this.examNumberStyle = examNumberStyle;
+    }
+
+    public PaperTypeEnum getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(PaperTypeEnum paperType) {
+        this.paperType = paperType;
+    }
+
+    public Boolean getExamAbsent() {
+        return examAbsent;
+    }
+
+    public void setExamAbsent(Boolean examAbsent) {
+        this.examAbsent = examAbsent;
+    }
+
+    public Boolean getWriteSign() {
+        return writeSign;
+    }
+
+    public void setWriteSign(Boolean writeSign) {
+        this.writeSign = writeSign;
+    }
+
+    public String getRequiredFields() {
+        return requiredFields;
+    }
+
+    public void setRequiredFields(String requiredFields) {
+        this.requiredFields = requiredFields;
+    }
+
+    public String getExtendFields() {
+        return extendFields;
+    }
+
+    public void setExtendFields(String extendFields) {
+        this.extendFields = extendFields;
+    }
+
+    public String getTitleRule() {
+        return titleRule;
+    }
+
+    public void setTitleRule(String titleRule) {
+        this.titleRule = titleRule;
+    }
+
+    public String getAttention() {
+        return attention;
+    }
+
+    public void setAttention(String attention) {
+        this.attention = attention;
+    }
+
+    public String getObjectiveAttention() {
+        return objectiveAttention;
+    }
+
+    public void setObjectiveAttention(String objectiveAttention) {
+        this.objectiveAttention = objectiveAttention;
+    }
+
+    public String getSubjectiveAttention() {
+        return subjectiveAttention;
+    }
+
+    public void setSubjectiveAttention(String subjectiveAttention) {
+        this.subjectiveAttention = subjectiveAttention;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public List<SysOrg> getOrgs() {
+        return orgs;
+    }
+
+    public void setOrgs(List<SysOrg> orgs) {
+        this.orgs = orgs;
+    }
+}

+ 37 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/bean/query/CardRuleParam.java

@@ -0,0 +1,37 @@
+package com.qmth.digit.print.business.bean.query;
+
+import com.qmth.digit.print.business.base.BasePage;
+
+/**
+ * @Date: 2021/3/23.
+ */
+public class CardRuleParam extends BasePage {
+
+    private Boolean enable;
+    private String name;
+    private Long createTime;
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+}

+ 3 - 3
digit-print-business/src/main/java/com/qmth/digit/print/business/bean/query/CourseParam.java

@@ -8,7 +8,7 @@ import com.qmth.digit.print.business.base.BasePage;
 public class CourseParam extends BasePage {
 
     private String courseCode;
-    private Long courseName;
+    private String courseName;
 
     public String getCourseCode() {
         return courseCode;
@@ -18,11 +18,11 @@ public class CourseParam extends BasePage {
         this.courseCode = courseCode;
     }
 
-    public Long getCourseName() {
+    public String getCourseName() {
         return courseName;
     }
 
-    public void setCourseName(Long courseName) {
+    public void setCourseName(String courseName) {
         this.courseName = courseName;
     }
 }

+ 27 - 15
digit-print-business/src/main/java/com/qmth/digit/print/business/entity/BasicCardRule.java

@@ -3,6 +3,8 @@ package com.qmth.digit.print.business.entity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.qmth.digit.print.business.base.BaseEntity;
+import com.qmth.digit.print.common.enums.ExamNumberStyleEnum;
+import com.qmth.digit.print.common.enums.PaperTypeEnum;
 
 import java.io.Serializable;
 
@@ -29,22 +31,22 @@ public class BasicCardRule extends BaseEntity implements Serializable {
      * PRINT-印刷条码,PASTE-粘贴条码,FILL-卡号填涂
      */
     @TableField("exam_number_style")
-    private String examNumberStyle;
+    private ExamNumberStyleEnum examNumberStyle;
     /**
      * PRINT-印刷条码,FILL-卡号填涂
      */
     @TableField("paper_type")
-    private String paperType;
+    private PaperTypeEnum paperType;
     /**
      * 0-禁用,1-启用
      */
     @TableField("exam_absent")
-    private Integer examAbsent;
+    private Boolean examAbsent;
     /**
      * 0-禁用,1-启用
      */
     @TableField("write_sign")
-    private Integer writeSign;
+    private Boolean writeSign;
     /**
      * 必选字段
      */
@@ -77,12 +79,15 @@ public class BasicCardRule extends BaseEntity implements Serializable {
     /**
      * 0-禁用,1-启用
      */
-    private Integer enable;
+    private Boolean enable;
     /**
      * 备注
      */
     private String remark;
 
+    @TableField(exist = false)
+    private Long[] orgIds;
+
 
     public Long getSchoolId() {
         return schoolId;
@@ -100,35 +105,35 @@ public class BasicCardRule extends BaseEntity implements Serializable {
         this.name = name;
     }
 
-    public String getExamNumberStyle() {
+    public ExamNumberStyleEnum getExamNumberStyle() {
         return examNumberStyle;
     }
 
-    public void setExamNumberStyle(String examNumberStyle) {
+    public void setExamNumberStyle(ExamNumberStyleEnum examNumberStyle) {
         this.examNumberStyle = examNumberStyle;
     }
 
-    public String getPaperType() {
+    public PaperTypeEnum getPaperType() {
         return paperType;
     }
 
-    public void setPaperType(String paperType) {
+    public void setPaperType(PaperTypeEnum paperType) {
         this.paperType = paperType;
     }
 
-    public Integer getExamAbsent() {
+    public Boolean getExamAbsent() {
         return examAbsent;
     }
 
-    public void setExamAbsent(Integer examAbsent) {
+    public void setExamAbsent(Boolean examAbsent) {
         this.examAbsent = examAbsent;
     }
 
-    public Integer getWriteSign() {
+    public Boolean getWriteSign() {
         return writeSign;
     }
 
-    public void setWriteSign(Integer writeSign) {
+    public void setWriteSign(Boolean writeSign) {
         this.writeSign = writeSign;
     }
 
@@ -180,11 +185,11 @@ public class BasicCardRule extends BaseEntity implements Serializable {
         this.subjectiveAttention = subjectiveAttention;
     }
 
-    public Integer getEnable() {
+    public Boolean getEnable() {
         return enable;
     }
 
-    public void setEnable(Integer enable) {
+    public void setEnable(Boolean enable) {
         this.enable = enable;
     }
 
@@ -196,4 +201,11 @@ public class BasicCardRule extends BaseEntity implements Serializable {
         this.remark = remark;
     }
 
+    public Long[] getOrgIds() {
+        return orgIds;
+    }
+
+    public void setOrgIds(Long[] orgIds) {
+        this.orgIds = orgIds;
+    }
 }

+ 13 - 12
digit-print-business/src/main/java/com/qmth/digit/print/business/entity/BasicExamRule.java

@@ -3,6 +3,7 @@ package com.qmth.digit.print.business.entity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.qmth.digit.print.business.base.BaseEntity;
+import com.qmth.digit.print.common.enums.PrintMethodEnum;
 
 import java.io.Serializable;
 
@@ -34,22 +35,22 @@ public class BasicExamRule extends BaseEntity implements Serializable {
     /**
      * 0-禁用,1-启用
      */
-    private Integer review;
+    private Boolean review;
     /**
      * 0-禁用,1-启用
      */
     @TableField("include_paper")
-    private Integer includePaper;
+    private Boolean includePaper;
     /**
      * 0-禁用,1-启用
      */
     @TableField("custom_card")
-    private Integer customCard;
+    private Boolean customCard;
     /**
      * AUTO-自动,MANUAL-手动
      */
     @TableField("print_method")
-    private String printMethod;
+    private PrintMethodEnum printMethod;
 
     public Long getSchoolId() {
         return schoolId;
@@ -75,35 +76,35 @@ public class BasicExamRule extends BaseEntity implements Serializable {
         this.extendFields = extendFields;
     }
 
-    public Integer getReview() {
+    public Boolean getReview() {
         return review;
     }
 
-    public void setReview(Integer review) {
+    public void setReview(Boolean review) {
         this.review = review;
     }
 
-    public Integer getIncludePaper() {
+    public Boolean getIncludePaper() {
         return includePaper;
     }
 
-    public void setIncludePaper(Integer includePaper) {
+    public void setIncludePaper(Boolean includePaper) {
         this.includePaper = includePaper;
     }
 
-    public Integer getCustomCard() {
+    public Boolean getCustomCard() {
         return customCard;
     }
 
-    public void setCustomCard(Integer customCard) {
+    public void setCustomCard(Boolean customCard) {
         this.customCard = customCard;
     }
 
-    public String getPrintMethod() {
+    public PrintMethodEnum getPrintMethod() {
         return printMethod;
     }
 
-    public void setPrintMethod(String printMethod) {
+    public void setPrintMethod(PrintMethodEnum printMethod) {
         this.printMethod = printMethod;
     }
 

+ 4 - 3
digit-print-business/src/main/java/com/qmth/digit/print/business/entity/BasicTemplateOrg.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.digit.print.business.base.BaseEntity;
+import com.qmth.digit.print.common.enums.TemplateTypeEnum;
 
 import java.io.Serializable;
 
@@ -25,7 +26,7 @@ public class BasicTemplateOrg extends BaseEntity implements Serializable {
     /**
      * 模板类型:GENERIC-通卡模板,VARIABLE-变量印品模板,ORDINARY-普通印品模板,CARD_RULE-题卡规则
      */
-    private String type;
+    private TemplateTypeEnum type;
     /**
      * 通卡模板ID
      */
@@ -37,11 +38,11 @@ public class BasicTemplateOrg extends BaseEntity implements Serializable {
     @TableField("org_id")
     private Long orgId;
 
-    public String getType() {
+    public TemplateTypeEnum getType() {
         return type;
     }
 
-    public void setType(String type) {
+    public void setType(TemplateTypeEnum type) {
         this.type = type;
     }
 

+ 6 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/mapper/BasicCardRuleMapper.java

@@ -1,7 +1,12 @@
 package com.qmth.digit.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.digit.print.business.bean.dto.CardRuleDto;
+import com.qmth.digit.print.business.bean.query.CardRuleParam;
 import com.qmth.digit.print.business.entity.BasicCardRule;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +18,5 @@ import com.qmth.digit.print.business.entity.BasicCardRule;
  */
 public interface BasicCardRuleMapper extends BaseMapper<BasicCardRule> {
 
+    IPage<CardRuleDto> listPage(Page<CardRuleDto> page, @Param("param") CardRuleParam param);
 }

+ 5 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/mapper/BasicTemplateOrgMapper.java

@@ -2,6 +2,10 @@ package com.qmth.digit.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.digit.print.business.entity.BasicTemplateOrg;
+import com.qmth.digit.print.business.entity.SysOrg;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.qmth.digit.print.business.entity.BasicTemplateOrg;
  */
 public interface BasicTemplateOrgMapper extends BaseMapper<BasicTemplateOrg> {
 
+    List<SysOrg> listByTypeAndTemplateId(@Param("type") String type, @Param("templateId") Long templateId);
 }

+ 13 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/BasicCardRuleService.java

@@ -1,8 +1,14 @@
 package com.qmth.digit.print.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.digit.print.business.bean.dto.CardRuleDto;
+import com.qmth.digit.print.business.bean.query.BlurryParam;
+import com.qmth.digit.print.business.bean.query.CardRuleParam;
 import com.qmth.digit.print.business.entity.BasicCardRule;
 
+import java.util.List;
+
 /**
  * <p>
  * 题卡规则 服务类
@@ -13,4 +19,11 @@ import com.qmth.digit.print.business.entity.BasicCardRule;
  */
 public interface BasicCardRuleService extends IService<BasicCardRule> {
 
+    IPage<CardRuleDto> list(CardRuleParam param);
+
+    List<BasicCardRule> list(BlurryParam param);
+
+    boolean enable(BasicCardRule cardRule);
+
+    boolean saveCardRule(BasicCardRule cardRule);
 }

+ 3 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/BasicExamRuleService.java

@@ -13,4 +13,7 @@ import com.qmth.digit.print.business.entity.BasicExamRule;
  */
 public interface BasicExamRuleService extends IService<BasicExamRule> {
 
+    BasicExamRule getBySchoolId(Long schoolId);
+
+    boolean saveExamRule(BasicExamRule examRule);
 }

+ 9 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/BasicTemplateOrgService.java

@@ -1,7 +1,11 @@
 package com.qmth.digit.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.digit.print.business.entity.BasicCardRule;
 import com.qmth.digit.print.business.entity.BasicTemplateOrg;
+import com.qmth.digit.print.business.entity.SysOrg;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,9 @@ import com.qmth.digit.print.business.entity.BasicTemplateOrg;
  */
 public interface BasicTemplateOrgService extends IService<BasicTemplateOrg> {
 
+    List<SysOrg> listByTypeAndTemplateId(String type, Long templateId);
+
+    void removeByRuleId(Long id);
+
+    void saveBatch(BasicCardRule cardRule);
 }

+ 83 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/BasicCardRuleServiceImpl.java

@@ -1,10 +1,26 @@
 package com.qmth.digit.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.digit.print.business.bean.dto.CardRuleDto;
+import com.qmth.digit.print.business.bean.query.BlurryParam;
+import com.qmth.digit.print.business.bean.query.CardRuleParam;
 import com.qmth.digit.print.business.entity.BasicCardRule;
+import com.qmth.digit.print.business.entity.SysOrg;
 import com.qmth.digit.print.business.mapper.BasicCardRuleMapper;
 import com.qmth.digit.print.business.service.BasicCardRuleService;
+import com.qmth.digit.print.business.service.BasicTemplateOrgService;
+import com.qmth.digit.print.common.enums.ExceptionResultEnum;
+import com.qmth.digit.print.common.enums.TemplateTypeEnum;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -17,4 +33,71 @@ import org.springframework.stereotype.Service;
 @Service
 public class BasicCardRuleServiceImpl extends ServiceImpl<BasicCardRuleMapper, BasicCardRule> implements BasicCardRuleService {
 
+    @Autowired
+    private BasicTemplateOrgService basicTemplateOrgService;
+
+    @Override
+    public IPage<CardRuleDto> list(CardRuleParam param) {
+        Page<CardRuleDto> page = new Page<>(param.getPageNumber(), param.getPageSize());
+        IPage<CardRuleDto> cardRuleDtoIPage = this.baseMapper.listPage(page, param);
+        if (cardRuleDtoIPage.getRecords().size() > 0) {
+            cardRuleDtoIPage.getRecords().forEach(m -> {
+                //查询适用学院
+                List<SysOrg> sysOrgs = basicTemplateOrgService.listByTypeAndTemplateId(TemplateTypeEnum.CARD_RULE.name(), m.getId());
+                m.setOrgs(sysOrgs);
+            });
+        }
+        return cardRuleDtoIPage;
+    }
+
+    @Override
+    public List<BasicCardRule> list(BlurryParam param) {
+        QueryWrapper<BasicCardRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicCardRule::getSchoolId, param.getSchoolId()).like(BasicCardRule::getName, param.getParam());
+        return this.list(queryWrapper);
+    }
+
+    @Override
+    public boolean enable(BasicCardRule cardRule) {
+        // todo 校验规则是否有使用
+        UpdateWrapper<BasicCardRule> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(BasicCardRule::getEnable, cardRule.getEnable()).eq(BasicCardRule::getId, cardRule.getId());
+        return this.update(updateWrapper);
+    }
+
+    @Transactional
+    @Override
+    public boolean saveCardRule(BasicCardRule cardRule) {
+        // todo 校验是否有必选字段已使用
+        QueryWrapper<BasicCardRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicCardRule::getSchoolId, cardRule.getSchoolId()).eq(BasicCardRule::getName, cardRule.getName());
+        BasicCardRule basicCardRule = this.getOne(queryWrapper);
+        boolean isSuccess;
+        // 新增
+        if (Objects.isNull(basicCardRule.getId())) {
+            if (basicCardRule != null) {
+                throw ExceptionResultEnum.ERROR.exception("题卡规则名称已存在");
+            }
+            cardRule.setCreateTime(System.currentTimeMillis());
+            isSuccess = this.save(cardRule);
+        }
+        // 修改
+        {
+            if (basicCardRule != null && basicCardRule.getId() != cardRule.getId()) {
+                throw ExceptionResultEnum.ERROR.exception("题卡规则名称已存在");
+            }
+
+            cardRule.setUpdateTime(System.currentTimeMillis());
+
+            //删除权限
+            basicTemplateOrgService.removeByRuleId(cardRule.getId());
+            isSuccess = this.updateById(cardRule);
+
+        }
+
+        // 新增权限
+        basicTemplateOrgService.saveBatch(cardRule);
+
+        return isSuccess;
+    }
 }

+ 13 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/BasicExamRuleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.digit.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.digit.print.business.entity.BasicExamRule;
 import com.qmth.digit.print.business.mapper.BasicExamRuleMapper;
@@ -17,4 +18,16 @@ import org.springframework.stereotype.Service;
 @Service
 public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, BasicExamRule> implements BasicExamRuleService {
 
+    @Override
+    public BasicExamRule getBySchoolId(Long schoolId) {
+        QueryWrapper<BasicExamRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicExamRule::getSchoolId, schoolId);
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    public boolean saveExamRule(BasicExamRule examRule) {
+        // todo 校验是否有必选字段已使用
+        return this.saveOrUpdate(examRule);
+    }
 }

+ 35 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/BasicTemplateOrgServiceImpl.java

@@ -1,11 +1,20 @@
 package com.qmth.digit.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.digit.print.business.entity.BasicCardRule;
+import com.qmth.digit.print.business.entity.BasicExamRule;
 import com.qmth.digit.print.business.entity.BasicTemplateOrg;
+import com.qmth.digit.print.business.entity.SysOrg;
 import com.qmth.digit.print.business.mapper.BasicTemplateOrgMapper;
 import com.qmth.digit.print.business.service.BasicTemplateOrgService;
+import com.qmth.digit.print.common.enums.TemplateTypeEnum;
 import org.springframework.stereotype.Service;
 
+import java.awt.geom.QuadCurve2D;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 适用学院(题卡规则、模板适用学院) 服务实现类
@@ -17,4 +26,30 @@ import org.springframework.stereotype.Service;
 @Service
 public class BasicTemplateOrgServiceImpl extends ServiceImpl<BasicTemplateOrgMapper, BasicTemplateOrg> implements BasicTemplateOrgService {
 
+    @Override
+    public List<SysOrg> listByTypeAndTemplateId(String type, Long templateId) {
+        return this.baseMapper.listByTypeAndTemplateId(type, templateId);
+    }
+
+    @Override
+    public void removeByRuleId(Long id) {
+        UpdateWrapper<BasicTemplateOrg> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(BasicTemplateOrg::getRuleId, id);
+        this.remove(updateWrapper);
+    }
+
+    @Override
+    public void saveBatch(BasicCardRule cardRule) {
+        List<BasicTemplateOrg> list = new ArrayList<>();
+        for (Long orgId : cardRule.getOrgIds()) {
+            BasicTemplateOrg basicTemplateOrg = new BasicTemplateOrg();
+            basicTemplateOrg.setType(TemplateTypeEnum.CARD_RULE);
+            basicTemplateOrg.setRuleId(cardRule.getId());
+            basicTemplateOrg.setOrgId(orgId);
+            basicTemplateOrg.setCreateId(cardRule.getCreateId());
+            basicTemplateOrg.setCreateTime(System.currentTimeMillis());
+            list.add(basicTemplateOrg);
+        }
+        this.saveBatch(list);
+    }
 }

+ 5 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/SysConfigServiceImpl.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.digit.print.business.entity.SysConfig;
 import com.qmth.digit.print.business.mapper.SysConfigMapper;
 import com.qmth.digit.print.business.service.SysConfigService;
+import com.qmth.digit.print.common.enums.ExceptionResultEnum;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 /**
@@ -20,6 +22,9 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig
 
     @Override
     public String getByKey(String key) {
+        if (StringUtils.isBlank(key)) {
+            throw ExceptionResultEnum.ERROR.exception("key不能为空");
+        }
         QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(SysConfig::getKey, key);
         SysConfig sysConfig = this.baseMapper.selectOne(queryWrapper);

+ 6 - 0
digit-print-business/src/main/resources/db/init-data.sql

@@ -0,0 +1,6 @@
+truncate table `sys_config`;
+
+INSERT INTO `sys_config` VALUES (1, 'sys.user.initPassword', '初始密码', '123456', 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (2, 'sys.warning.days', '预警天数', '3', 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (3, 'sys.code.enable', '是否启用短信验证码', 'true', 1, NULL, NULL, NULL);
+

+ 7 - 7
digit-print-business/src/main/resources/db/init-table.sql

@@ -11,7 +11,7 @@
  Target Server Version : 50717
  File Encoding         : 65001
 
- Date: 26/03/2021 17:08:05
+ Date: 29/03/2021 17:45:56
 */
 
 SET NAMES utf8mb4;
@@ -413,7 +413,7 @@ CREATE TABLE `sys_config`  (
   `update_id` bigint(10) NULL DEFAULT NULL,
   `update_time` bigint(13) NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '参数表' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '参数表' ROW_FORMAT = Dynamic;
 
 -- ----------------------------
 -- Table structure for sys_org
@@ -422,16 +422,16 @@ DROP TABLE IF EXISTS `sys_org`;
 CREATE TABLE `sys_org`  (
   `id` bigint(10) NOT NULL AUTO_INCREMENT,
   `school_id` bigint(10) NOT NULL COMMENT '学校ID',
-  `ode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构代码',
+  `code` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构代码',
   `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构名称',
-  `parent_id` bigint(10) NOT NULL COMMENT '上级机构ID',
+  `parent_id` bigint(10) NULL DEFAULT NULL COMMENT '上级机构ID',
   `enable` tinyint(1) NOT NULL COMMENT '0-禁用,1-启用',
   `create_id` bigint(1) NULL DEFAULT NULL COMMENT '创建人',
   `create_time` bigint(13) NULL DEFAULT NULL COMMENT '创建时间',
   `update_id` bigint(10) NULL DEFAULT NULL COMMENT '修改人',
   `update_time` bigint(13) NULL DEFAULT NULL COMMENT '修改时间',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '学校组织架构' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '学校组织架构' ROW_FORMAT = Dynamic;
 
 -- ----------------------------
 -- Table structure for sys_privilege
@@ -468,7 +468,7 @@ CREATE TABLE `sys_role`  (
   `update_id` bigint(10) NULL DEFAULT NULL COMMENT '修改人',
   `update_time` bigint(13) NULL DEFAULT NULL COMMENT '修改时间',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;
 
 -- ----------------------------
 -- Table structure for sys_role_course
@@ -498,7 +498,7 @@ CREATE TABLE `sys_role_privilege`  (
   `update_id` bigint(10) NULL DEFAULT NULL,
   `update_time` bigint(13) NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1375368893133520899 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic;
 
 -- ----------------------------
 -- Table structure for sys_user

+ 18 - 2
digit-print-business/src/main/resources/mapper/BasicCardRuleMapper.xml

@@ -27,8 +27,24 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,
-        school_id, name, exam_number_style, paper_type, exam_absent, write_sign, required_fields, extend_fields, title_rule, attention, objective_attention, subjective_attention, enable, remark, create_id, create_time, update_id, update_time
+        select id, school_id, name, exam_number_style, paper_type, exam_absent, write_sign, required_fields, extend_fields, title_rule, attention, objective_attention, subjective_attention, enable, remark, create_id, create_time, update_id, update_time from basic_card_rule
     </sql>
+    <select id="listPage" resultMap="BaseResultMap">
+        <include refid="Base_Column_List"></include>
+        <where>
+            <if test="param.schoolId != null and param.schoolId != ''">
+                and school_id = #{param.schoolId}
+            </if>
+            <if test="param.enable != null and param.enable != ''">
+                and enable = #{param.enable}
+            </if>
+            <if test="param.name != null and param.name != ''">
+                and name like concat('%',#{param.name},'%')
+            </if>
+            <if test="param.createTime != null and param.createTime != ''">
+                and create_time = #{param.createTime}
+            </if>
+        </where>
+    </select>
 
 </mapper>

+ 10 - 0
digit-print-business/src/main/resources/mapper/BasicTemplateOrgMapper.xml

@@ -15,5 +15,15 @@
         id,
         type, rule_id, org_id
     </sql>
+    <select id="listByTypeAndTemplateId" resultType="com.qmth.digit.print.business.entity.SysOrg">
+        SELECT
+            a.code, a.name
+        FROM
+            sys_org a
+                JOIN
+            basic_template_org b ON a.id = b.org_id AND b.type = #{type}
+        WHERE
+            b.rule_id = #{templateId}
+    </select>
 
 </mapper>

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/BackupMethodEnum.java

@@ -26,7 +26,7 @@ public enum BackupMethodEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (BackupMethodEnum value : BackupMethodEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ClassifyEnum.java

@@ -27,7 +27,7 @@ public enum ClassifyEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (ClassifyEnum value : ClassifyEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/DrawRuleEnum.java

@@ -26,7 +26,7 @@ public enum DrawRuleEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (DrawRuleEnum value : DrawRuleEnum.values()) {
             EnumResult result = new EnumResult();

+ 31 - 0
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/EnumType.java

@@ -0,0 +1,31 @@
+package com.qmth.digit.print.common.enums;
+
+/**
+ * @Date: 2021/3/29.
+ */
+public enum EnumType {
+
+    BACKUP_METHOD("备份方式"),
+    CLASSIFY("模板类型"),
+    DRAW_RULE("抽卷规则"),
+    EXAM_NUMBER_STYLE("考号版式"),
+    EXAM_STATUS("命题状态类型"),
+    PAPER_TYPE("AB卷版式"),
+    PRINT_METHOD("印刷方式"),
+    PRIVILEGE_TYPE("菜单类型"),
+    REQUIRED_FIELDS("考务必选字段"),
+    REVIEW_STATUS("审核状态类型"),
+    ROLE_TYPE("内置角色类型"),
+    STORAGE_LEVEL("附件存储级别"),
+    STORAGE_TYPE("附件存储方式"),
+    TEMPLATE_TYPE("模板类型");
+
+    EnumType(String desc) {
+    }
+
+    private String desc;
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ExamNumberStyleEnum.java

@@ -27,7 +27,7 @@ public enum ExamNumberStyleEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (ExamNumberStyleEnum value : ExamNumberStyleEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ExamStatusEnum.java

@@ -28,7 +28,7 @@ public enum ExamStatusEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (ExamStatusEnum value : ExamStatusEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/PaperTypeEnum.java

@@ -26,7 +26,7 @@ public enum PaperTypeEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (PaperTypeEnum value : PaperTypeEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/PrintMethodEnum.java

@@ -26,7 +26,7 @@ public enum PrintMethodEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (PrintMethodEnum value : PrintMethodEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/PrivilegeTypeEnum.java

@@ -26,7 +26,7 @@ public enum PrivilegeTypeEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (PrivilegeTypeEnum value : PrivilegeTypeEnum.values()) {
             EnumResult result = new EnumResult();

+ 56 - 0
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/RequiredFieldsEnum.java

@@ -0,0 +1,56 @@
+package com.qmth.digit.print.common.enums;
+
+import com.qmth.digit.print.common.enums.result.EnumResult;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 考务必选字段
+ * @Date: 2021/3/29.
+ */
+public enum RequiredFieldsEnum {
+
+    STUDENT_CODE("studentCode", "学号"),
+    STUDENT_NAME("studentName","姓名"),
+    COURSE_CODE("courseCode","课程代码"),
+    COURSE_NAME("courseName","课程名称"),
+    EXAM_PLACE("examPlace","考点"),
+    EXAM_ROOM("examRoom","考场"),
+    EXAM_DATE("examDate","考试日期"),
+    EXAM_TIME("examTime","考试时间"),
+    PAPER_NUMBER("paperNumber","试卷编号");
+
+    private String code;
+    private String desc;
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    RequiredFieldsEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+
+    /**
+     * @return
+     */
+    public static List<EnumResult> listTypes() {
+        List<EnumResult> list = new ArrayList<>();
+        for (RequiredFieldsEnum value : RequiredFieldsEnum.values()) {
+            EnumResult result = new EnumResult();
+            result.setName(value.name());
+            result.setOrdinal(value.ordinal());
+            result.setCode(value.getCode());
+            result.setDesc(value.getDesc());
+            list.add(result);
+        }
+        return list;
+    }
+}

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/ReviewStatusEnum.java

@@ -26,7 +26,7 @@ public enum ReviewStatusEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (ReviewStatusEnum value : ReviewStatusEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/RoleTypeEnum.java

@@ -32,7 +32,7 @@ public enum RoleTypeEnum {
      * @param hasAdmin 是否需要管理员
      * @return
      */
-    private static List<EnumResult> listTypes(boolean hasAdmin) {
+    public static List<EnumResult> listTypes(boolean hasAdmin) {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (RoleTypeEnum value : RoleTypeEnum.values()) {
             if (!hasAdmin && "ADMIN".equals(value.name())) {

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/StorageLevelEnum.java

@@ -27,7 +27,7 @@ public enum StorageLevelEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (StorageLevelEnum value : StorageLevelEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/StorageTypeEnum.java

@@ -26,7 +26,7 @@ public enum StorageTypeEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (StorageTypeEnum value : StorageTypeEnum.values()) {
             EnumResult result = new EnumResult();

+ 1 - 1
digit-print-common/src/main/java/com/qmth/digit/print/common/enums/TemplateTypeEnum.java

@@ -28,7 +28,7 @@ public enum TemplateTypeEnum {
     /**
      * @return
      */
-    private static List<EnumResult> listTypes() {
+    public static List<EnumResult> listTypes() {
         List<EnumResult> list = new ArrayList<EnumResult>();
         for (TemplateTypeEnum value : TemplateTypeEnum.values()) {
             EnumResult result = new EnumResult();

+ 101 - 2
digit-print/src/main/java/com/qmth/digit/print/api/BasicCardRuleController.java

@@ -1,10 +1,30 @@
 package com.qmth.digit.print.api;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.digit.print.business.bean.ApiUser;
+import com.qmth.digit.print.business.bean.dto.CardRuleDto;
+import com.qmth.digit.print.business.bean.query.BlurryParam;
+import com.qmth.digit.print.business.bean.query.CardRuleParam;
+import com.qmth.digit.print.business.entity.BasicCardRule;
+import com.qmth.digit.print.business.service.BasicCardRuleService;
+import com.qmth.digit.print.business.util.RequestUtils;
+import com.qmth.digit.print.common.util.Result;
+import com.qmth.digit.print.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
 /**
  * <p>
  * 题卡规则 前端控制器
@@ -13,9 +33,88 @@ import org.springframework.web.bind.annotation.RestController;
  * @author xf
  * @since 2021-03-23
  */
+@Api(tags = "题卡规则Controller")
 @RestController
-@RequestMapping("/basicCardRule")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/card_rule")
+@Aac(auth = BOOL.FALSE)
 public class BasicCardRuleController {
 
+    @Autowired
+    private BasicCardRuleService basicCardRuleService;
+
+    /**
+     * 查询
+     *
+     * @param request
+     * @param param
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Result list(HttpServletRequest request, CardRuleParam param) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        param.setSchoolId(apiUser.getSchoolId());
+        IPage<CardRuleDto> cardRuleDtoIPage = basicCardRuleService.list(param);
+        return ResultUtil.ok(cardRuleDtoIPage);
+    }
+
+    /**
+     * 模糊查询
+     *
+     * @param request
+     * @param param
+     * @return
+     */
+    @ApiOperation(value = "模糊查询")
+    @RequestMapping(value = "/query", method = RequestMethod.GET)
+    public Result list(HttpServletRequest request, BlurryParam param) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        param.setSchoolId(apiUser.getSchoolId());
+        List<BasicCardRule> cardRules = basicCardRuleService.list(param);
+        return ResultUtil.ok(cardRules);
+    }
+
+    /**
+     * 查询单个
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "查询单个")
+    @RequestMapping(value = "/get_one", method = RequestMethod.GET)
+    public Result getOne(Long id) {
+        BasicCardRule cardRule = basicCardRuleService.getById(id);
+        return ResultUtil.ok(cardRule);
+    }
+
+    /**
+     * 新增/修改
+     * @param request
+     * @param cardRule
+     * @return
+     */
+    @ApiOperation(value = "新增/修改")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public Result save(HttpServletRequest request, @RequestBody BasicCardRule cardRule){
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        cardRule.setSchoolId(apiUser.getSchoolId());
+        cardRule.setCreateId(cardRule.getId() == null ? apiUser.getUserData().getId() : null);
+        cardRule.setUpdateId(cardRule.getId() != null ? apiUser.getUserData().getId() : null);
+        boolean isSuccess = basicCardRuleService.saveCardRule(cardRule);
+        return ResultUtil.ok(isSuccess);
+    }
+
+    /**
+     * 启用/禁用
+     *
+     * @param cardRule
+     * @return
+     */
+    @ApiOperation(value = "启用/禁用")
+    @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    public Result enable(@RequestBody BasicCardRule cardRule) {
+        boolean isSuccess = basicCardRuleService.enable(cardRule);
+        return ResultUtil.ok(isSuccess);
+    }
 }
 

+ 53 - 1
digit-print/src/main/java/com/qmth/digit/print/api/BasicExamRuleController.java

@@ -1,10 +1,26 @@
 package com.qmth.digit.print.api;
 
 
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.digit.print.business.bean.ApiUser;
+import com.qmth.digit.print.business.entity.BasicExamRule;
+import com.qmth.digit.print.business.service.BasicExamRuleService;
+import com.qmth.digit.print.business.util.RequestUtils;
+import com.qmth.digit.print.common.util.Result;
+import com.qmth.digit.print.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  * 考务规则 前端控制器
@@ -13,9 +29,45 @@ import org.springframework.web.bind.annotation.RestController;
  * @author xf
  * @since 2021-03-23
  */
+@Api(tags = "考务规则Controller")
 @RestController
-@RequestMapping("/basicExamRule")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/exam_rule")
+@Aac(auth = BOOL.FALSE)
 public class BasicExamRuleController {
 
+    @Autowired
+    private BasicExamRuleService basicExamRuleService;
+
+    /**
+     * 查询
+     *
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Result list(HttpServletRequest request) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        BasicExamRule examRule = basicExamRuleService.getBySchoolId(apiUser.getSchoolId());
+        return ResultUtil.ok(examRule);
+    }
+
+    /**
+     * 新增/修改
+     *
+     * @param request
+     * @param examRule
+     * @return
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.GET)
+    public Result save(HttpServletRequest request, @RequestBody BasicExamRule examRule) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        examRule.setSchoolId(apiUser.getSchoolId());
+        examRule.setCreateId(examRule.getId() == null ? apiUser.getUserData().getId() : null);
+        examRule.setUpdateId(examRule.getId() != null ? apiUser.getUserData().getId() : null);
+        boolean isSuccess = basicExamRuleService.saveExamRule(examRule);
+        return ResultUtil.ok(isSuccess);
+    }
+
 }
 

+ 85 - 0
digit-print/src/main/java/com/qmth/digit/print/api/EnumsController.java

@@ -0,0 +1,85 @@
+package com.qmth.digit.print.api;
+
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.digit.print.common.enums.*;
+import com.qmth.digit.print.common.enums.result.EnumResult;
+import io.swagger.annotations.Api;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 枚举类型查询接口
+ *
+ * @Date: 2021/3/29.
+ */
+@Api(tags = "枚举类型Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/get_enums")
+@Aac(auth = BOOL.FALSE)
+public class EnumsController {
+
+    /**
+     * 查询
+     *
+     * @param type
+     * @return
+     */
+    @RequestMapping(method = RequestMethod.GET)
+    public List<EnumResult> list(String type) {
+        if (StringUtils.isBlank(type)) {
+            throw ExceptionResultEnum.ERROR.exception("类型不能为空");
+        }
+
+        if (type.equals(EnumType.BACKUP_METHOD.name())) {
+            //备份方式
+            return BackupMethodEnum.listTypes();
+        } else if (type.equals(EnumType.CLASSIFY.name())) {
+            //模板类型
+            return ClassifyEnum.listTypes();
+        } else if (type.equals(EnumType.DRAW_RULE.name())) {
+            // 抽卷规则
+            return DrawRuleEnum.listTypes();
+        } else if (type.equals(EnumType.EXAM_NUMBER_STYLE.name())) {
+            //考号版式
+            return ExamNumberStyleEnum.listTypes();
+        } else if (type.equals(EnumType.EXAM_STATUS.name())) {
+            //命题状态类型
+            return ExamStatusEnum.listTypes();
+        } else if (type.equals(EnumType.PAPER_TYPE.name())) {
+            //AB卷版式
+            return PaperTypeEnum.listTypes();
+        } else if (type.equals(EnumType.PRINT_METHOD.name())) {
+            //印刷方式
+            return PrintMethodEnum.listTypes();
+        } else if (type.equals(EnumType.PRIVILEGE_TYPE.name())) {
+            //菜单类型
+            return PrivilegeTypeEnum.listTypes();
+        } else if (type.equals(EnumType.REQUIRED_FIELDS.name())) {
+            //考务必选字段
+            return RequiredFieldsEnum.listTypes();
+        } else if (type.equals(EnumType.REVIEW_STATUS.name())) {
+            //审核状态类型
+            return ReviewStatusEnum.listTypes();
+        } else if (type.equals(EnumType.ROLE_TYPE.name())) {
+            //内置角色类型
+            return RoleTypeEnum.listTypes(false);
+        } else if (type.equals(EnumType.STORAGE_LEVEL.name())) {
+            //附件存储级别
+            return StorageLevelEnum.listTypes();
+        } else if (type.equals(EnumType.STORAGE_TYPE.name())) {
+            //附件存储方式
+            return StorageTypeEnum.listTypes();
+        } else if (type.equals(EnumType.TEMPLATE_TYPE.name())) {
+            return TemplateTypeEnum.listTypes();
+            //模板类型
+        } else {
+            return null;
+        }
+    }
+}

+ 20 - 1
digit-print/src/main/java/com/qmth/digit/print/api/SysConfigController.java

@@ -1,7 +1,15 @@
 package com.qmth.digit.print.api;
 
 
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.digit.print.business.service.SysConfigService;
+import com.qmth.digit.print.common.util.Result;
+import com.qmth.digit.print.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -13,9 +21,20 @@ import org.springframework.web.bind.annotation.RestController;
  * @author xf
  * @since 2021-03-23
  */
+@Api(tags = "参数Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/sys_config")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/sys_config")
+@Aac(auth = BOOL.FALSE)
 public class SysConfigController {
 
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    @ApiOperation(value = "根据key查询")
+    @RequestMapping("/get_one")
+    public Result getOne(String key) {
+        String value = sysConfigService.getByKey(key);
+        return ResultUtil.ok(value);
+    }
 }