he2802 4 lat temu
rodzic
commit
6695d552e3
19 zmienionych plików z 549 dodań i 21 usunięć
  1. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseBusinessVo.java
  2. 6 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeAddBo.java
  3. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeBusinessAddBo.java
  4. 40 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeBusinessEditBo.java
  5. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeBusinessQueryBo.java
  6. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeEditBo.java
  7. 14 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeQueryBo.java
  8. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamPaperQueryBo.java
  9. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamKnowledgeBusiness.java
  10. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamKnowledgeBusinessMapper.java
  11. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamKnowledgeMapper.java
  12. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamKnowledgeBusinessService.java
  13. 101 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamKnowledgeBusinessServiceImpl.java
  14. 40 15
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamKnowledgeServiceImpl.java
  15. 3 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamPaperServiceImpl.java
  16. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamKnowledgeBusinessVo.java
  17. 11 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamKnowledgeVo.java
  18. 17 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamKnowledgeBusinessMapper.xml
  19. 66 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamKnowledgeMapper.xml

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseBusinessVo.java

@@ -63,4 +63,13 @@ public class CourseBusinessVo {
 	@Excel(name = "项目名称")
 	@ApiModelProperty("项目名称")
 	private String projectName;
+
+	/** 科目名称 */
+	@Excel(name = "科目名称")
+	@ApiModelProperty("科目名称")
+	private String courseSubjectName;
+
+	@Excel(name = "科目id")
+	@ApiModelProperty("科目id")
+	private Integer courseSubjectId;
 }

+ 6 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeAddBo.java

@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -20,7 +20,7 @@ public class ExamKnowledgeAddBo {
 
     /** 知识点名称 */
     @ApiModelProperty("知识点名称")
-    private String knowledgeName;
+    private String[] knowledgeName;
     /** 0 禁用 1启用 */
     @ApiModelProperty("0 禁用 1启用")
     private Integer status;
@@ -33,4 +33,8 @@ public class ExamKnowledgeAddBo {
     /** 编码ZSD */
     @ApiModelProperty("编码ZSD")
     private String encoder;
+
+    /** 适用业务层级 */
+    @ApiModelProperty("适用业务层级")
+    private List<ExamKnowledgeBusinessAddBo> examKnowledgeBusinessAddBoList;
 }

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeBusinessAddBo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 知识点添加对象 exam_knowledge_business
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+@Data
+@ApiModel("知识点添加对象")
+public class ExamKnowledgeBusinessAddBo {
+
+    /** 业务ID */
+    @ApiModelProperty("业务ID")
+    private Long businessId;
+    /** 科目ID */
+    @ApiModelProperty("科目ID")
+    private Long subjectId;
+    /** 知识点ID */
+    @ApiModelProperty("知识点ID")
+    private Long knowledgeId;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+}

+ 40 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeBusinessEditBo.java

@@ -0,0 +1,40 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 知识点编辑对象 exam_knowledge_business
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+@Data
+@ApiModel("知识点编辑对象")
+public class ExamKnowledgeBusinessEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 业务ID */
+    @ApiModelProperty("业务ID")
+    private Long businessId;
+
+    /** 科目ID */
+    @ApiModelProperty("科目ID")
+    private Long subjectId;
+
+    /** 知识点ID */
+    @ApiModelProperty("知识点ID")
+    private Long knowledgeId;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeBusinessQueryBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.exam.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 知识点分页查询对象 exam_knowledge_business
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("知识点分页查询对象")
+public class ExamKnowledgeBusinessQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 业务ID */
+	@ApiModelProperty("业务ID")
+	private Long businessId;
+	/** 科目ID */
+	@ApiModelProperty("科目ID")
+	private Long subjectId;
+	/** 知识点ID */
+	@ApiModelProperty("知识点ID")
+	private Long knowledgeId;
+}

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeEditBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -38,4 +39,8 @@ public class ExamKnowledgeEditBo {
     @ApiModelProperty("编码ZSD")
     private String encoder;
 
+    /** 适用业务层级 */
+    @ApiModelProperty("适用业务层级")
+    private List<ExamKnowledgeBusinessAddBo> examKnowledgeBusinessAddBoList;
+
 }

+ 14 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamKnowledgeQueryBo.java

@@ -1,11 +1,13 @@
 package com.zhongzheng.modules.exam.bo;
 
+import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -41,8 +43,19 @@ public class ExamKnowledgeQueryBo extends BaseEntity {
 	private String knowledgeName;
 	/** 0 禁用 1启用 */
 	@ApiModelProperty("0 禁用 1启用")
-	private Integer status;
+	private List<Integer> status;
 	/** 编码ZSD */
 	@ApiModelProperty("编码ZSD")
 	private String encoder;
+
+
+	@ApiModelProperty("科目id")
+	private Integer courseSubjectId;
+
+
+	@ApiModelProperty("教育类型id")
+	private Integer educationId;
+
+	@ApiModelProperty("业务层次ID")
+	private String businessId;
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamPaperQueryBo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -41,7 +42,7 @@ public class ExamPaperQueryBo extends BaseEntity {
 	private String paperName;
 	/** 0 禁用 1启用 */
 	@ApiModelProperty("0 禁用 1启用")
-	private Integer status;
+	private List<Integer> status;
 	/** 编码SJ */
 	@ApiModelProperty("编码SJ")
 	private String encoder;

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamKnowledgeBusiness.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.exam.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 知识点对象 exam_knowledge_business
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("exam_knowledge_business")
+public class ExamKnowledgeBusiness implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** 业务ID */
+    private Long businessId;
+    /** 科目ID */
+    private Long subjectId;
+    /** 知识点ID */
+    private Long knowledgeId;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamKnowledgeBusinessMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.exam.mapper;
+
+import com.zhongzheng.modules.exam.domain.ExamKnowledgeBusiness;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 知识点Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+public interface ExamKnowledgeBusinessMapper extends BaseMapper<ExamKnowledgeBusiness> {
+
+}

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamKnowledgeMapper.java

@@ -1,7 +1,11 @@
 package com.zhongzheng.modules.exam.mapper;
 
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeQueryBo;
 import com.zhongzheng.modules.exam.domain.ExamKnowledge;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.exam.vo.ExamKnowledgeVo;
+
+import java.util.Collection;
 
 /**
  * 知识点Mapper接口
@@ -11,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ExamKnowledgeMapper extends BaseMapper<ExamKnowledge> {
 
+    Collection<ExamKnowledgeVo> queryList(ExamKnowledgeQueryBo bo);
 }

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamKnowledgeBusinessService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.exam.service;
+
+import com.zhongzheng.modules.exam.domain.ExamKnowledgeBusiness;
+import com.zhongzheng.modules.exam.vo.ExamKnowledgeBusinessVo;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessAddBo;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 知识点Service接口
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+public interface IExamKnowledgeBusinessService extends IService<ExamKnowledgeBusiness> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ExamKnowledgeBusinessVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<ExamKnowledgeBusinessVo> queryList(ExamKnowledgeBusinessQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入知识点
+	 * @param bo 知识点新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ExamKnowledgeBusinessAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改知识点
+	 * @param bo 知识点编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ExamKnowledgeBusinessEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 101 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamKnowledgeBusinessServiceImpl.java

@@ -0,0 +1,101 @@
+package com.zhongzheng.modules.exam.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessAddBo;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessQueryBo;
+import com.zhongzheng.modules.exam.bo.ExamKnowledgeBusinessEditBo;
+import com.zhongzheng.modules.exam.domain.ExamKnowledgeBusiness;
+import com.zhongzheng.modules.exam.mapper.ExamKnowledgeBusinessMapper;
+import com.zhongzheng.modules.exam.vo.ExamKnowledgeBusinessVo;
+import com.zhongzheng.modules.exam.service.IExamKnowledgeBusinessService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 知识点Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+@Service
+public class ExamKnowledgeBusinessServiceImpl extends ServiceImpl<ExamKnowledgeBusinessMapper, ExamKnowledgeBusiness> implements IExamKnowledgeBusinessService {
+
+    @Override
+    public ExamKnowledgeBusinessVo queryById(Long id){
+        ExamKnowledgeBusiness db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, ExamKnowledgeBusinessVo.class);
+    }
+
+    @Override
+    public List<ExamKnowledgeBusinessVo> queryList(ExamKnowledgeBusinessQueryBo bo) {
+        LambdaQueryWrapper<ExamKnowledgeBusiness> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getBusinessId() != null, ExamKnowledgeBusiness::getBusinessId, bo.getBusinessId());
+        lqw.eq(bo.getSubjectId() != null, ExamKnowledgeBusiness::getSubjectId, bo.getSubjectId());
+        lqw.eq(bo.getKnowledgeId() != null, ExamKnowledgeBusiness::getKnowledgeId, bo.getKnowledgeId());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ExamKnowledgeBusinessVo> entity2Vo(Collection<ExamKnowledgeBusiness> collection) {
+        List<ExamKnowledgeBusinessVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ExamKnowledgeBusinessVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ExamKnowledgeBusiness> page = (Page<ExamKnowledgeBusiness>)collection;
+            Page<ExamKnowledgeBusinessVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ExamKnowledgeBusinessAddBo bo) {
+        ExamKnowledgeBusiness add = BeanUtil.toBean(bo, ExamKnowledgeBusiness.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ExamKnowledgeBusinessEditBo bo) {
+        ExamKnowledgeBusiness update = BeanUtil.toBean(bo, ExamKnowledgeBusiness.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ExamKnowledgeBusiness entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 40 - 15
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamKnowledgeServiceImpl.java

@@ -2,19 +2,24 @@ package com.zhongzheng.modules.exam.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.exam.bo.*;
+import com.zhongzheng.modules.exam.domain.ExamKnowledgeBusiness;
+import com.zhongzheng.modules.exam.service.IExamKnowledgeBusinessService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
-import com.zhongzheng.modules.exam.bo.ExamKnowledgeAddBo;
-import com.zhongzheng.modules.exam.bo.ExamKnowledgeQueryBo;
-import com.zhongzheng.modules.exam.bo.ExamKnowledgeEditBo;
 import com.zhongzheng.modules.exam.domain.ExamKnowledge;
 import com.zhongzheng.modules.exam.mapper.ExamKnowledgeMapper;
 import com.zhongzheng.modules.exam.vo.ExamKnowledgeVo;
 import com.zhongzheng.modules.exam.service.IExamKnowledgeService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -30,6 +35,10 @@ import java.util.stream.Collectors;
 @Service
 public class ExamKnowledgeServiceImpl extends ServiceImpl<ExamKnowledgeMapper, ExamKnowledge> implements IExamKnowledgeService {
 
+    @Autowired
+    private IExamKnowledgeBusinessService examKnowledgeBusinessService;
+
+
     @Override
     public ExamKnowledgeVo queryById(Long knowledgeId){
         ExamKnowledge db = this.baseMapper.selectById(knowledgeId);
@@ -38,11 +47,7 @@ public class ExamKnowledgeServiceImpl extends ServiceImpl<ExamKnowledgeMapper, E
 
     @Override
     public List<ExamKnowledgeVo> queryList(ExamKnowledgeQueryBo bo) {
-        LambdaQueryWrapper<ExamKnowledge> lqw = Wrappers.lambdaQuery();
-        lqw.like(StrUtil.isNotBlank(bo.getKnowledgeName()), ExamKnowledge::getKnowledgeName, bo.getKnowledgeName());
-        lqw.eq(bo.getStatus() != null, ExamKnowledge::getStatus, bo.getStatus());
-        lqw.eq(StrUtil.isNotBlank(bo.getEncoder()), ExamKnowledge::getEncoder, bo.getEncoder());
-        return entity2Vo(this.list(lqw));
+        return entity2Vo(baseMapper.queryList(bo));
     }
 
     /**
@@ -51,12 +56,12 @@ public class ExamKnowledgeServiceImpl extends ServiceImpl<ExamKnowledgeMapper, E
     * @param collection 实体类集合
     * @return
     */
-    private List<ExamKnowledgeVo> entity2Vo(Collection<ExamKnowledge> collection) {
+    private List<ExamKnowledgeVo> entity2Vo(Collection<ExamKnowledgeVo> collection) {
         List<ExamKnowledgeVo> voList = collection.stream()
                 .map(any -> BeanUtil.toBean(any, ExamKnowledgeVo.class))
                 .collect(Collectors.toList());
         if (collection instanceof Page) {
-            Page<ExamKnowledge> page = (Page<ExamKnowledge>)collection;
+            Page<ExamKnowledgeVo> page = (Page<ExamKnowledgeVo>)collection;
             Page<ExamKnowledgeVo> pageVo = new Page<>();
             BeanUtil.copyProperties(page,pageVo);
             pageVo.addAll(voList);
@@ -66,12 +71,23 @@ public class ExamKnowledgeServiceImpl extends ServiceImpl<ExamKnowledgeMapper, E
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean insertByAddBo(ExamKnowledgeAddBo bo) {
-        ExamKnowledge add = BeanUtil.toBean(bo, ExamKnowledge.class);
-        validEntityBeforeSave(add);
-        add.setCreateTime(DateUtils.getNowTime());
-        add.setUpdateTime(DateUtils.getNowTime());
-        return this.save(add);
+        for (String s : bo.getKnowledgeName()) {
+            ExamKnowledge examKnowledge = BeanUtil.toBean(bo, ExamKnowledge.class);
+            examKnowledge.setKnowledgeName(s);
+            examKnowledge.setEncoder(ServletUtils.getEncoded("ZSD"));
+            examKnowledge.setCreateTime(DateUtils.getNowTime());
+            examKnowledge.setUpdateTime(DateUtils.getNowTime());
+            boolean save = this.save(examKnowledge);
+            for (ExamKnowledgeBusinessAddBo examKnowledgeBusinessAddBo : bo.getExamKnowledgeBusinessAddBoList()) {
+                examKnowledgeBusinessAddBo.setKnowledgeId(examKnowledge.getKnowledgeId());
+                examKnowledgeBusinessAddBo.setUpdateTime(DateUtils.getNowTime());
+                examKnowledgeBusinessAddBo.setCreateTime(DateUtils.getNowTime());
+                Boolean aBoolean = examKnowledgeBusinessService.insertByAddBo(examKnowledgeBusinessAddBo);
+            }
+        }
+        return true;
     }
 
     @Override
@@ -79,6 +95,15 @@ public class ExamKnowledgeServiceImpl extends ServiceImpl<ExamKnowledgeMapper, E
         ExamKnowledge update = BeanUtil.toBean(bo, ExamKnowledge.class);
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
+        LambdaQueryWrapper<ExamKnowledgeBusiness> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ExamKnowledgeBusiness::getKnowledgeId,bo.getKnowledgeId());
+        boolean remove = examKnowledgeBusinessService.remove(lqw);
+        for (ExamKnowledgeBusinessAddBo examKnowledgeBusinessAddBo : bo.getExamKnowledgeBusinessAddBoList()) {
+            examKnowledgeBusinessAddBo.setKnowledgeId(bo.getKnowledgeId());
+            examKnowledgeBusinessAddBo.setUpdateTime(DateUtils.getNowTime());
+            examKnowledgeBusinessAddBo.setCreateTime(DateUtils.getNowTime());
+            Boolean aBoolean = examKnowledgeBusinessService.insertByAddBo(examKnowledgeBusinessAddBo);
+        }
         return this.updateById(update);
     }
 

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamPaperServiceImpl.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.exam.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -40,7 +41,7 @@ public class ExamPaperServiceImpl extends ServiceImpl<ExamPaperMapper, ExamPaper
     public List<ExamPaperVo> queryList(ExamPaperQueryBo bo) {
         LambdaQueryWrapper<ExamPaper> lqw = Wrappers.lambdaQuery();
         lqw.like(StrUtil.isNotBlank(bo.getPaperName()), ExamPaper::getPaperName, bo.getPaperName());
-        lqw.eq(bo.getStatus() != null, ExamPaper::getStatus, bo.getStatus());
+        lqw.in(bo.getStatus() != null, ExamPaper::getStatus, bo.getStatus());
         lqw.eq(StrUtil.isNotBlank(bo.getEncoder()), ExamPaper::getEncoder, bo.getEncoder());
         return entity2Vo(this.list(lqw));
     }
@@ -69,6 +70,7 @@ public class ExamPaperServiceImpl extends ServiceImpl<ExamPaperMapper, ExamPaper
     public Boolean insertByAddBo(ExamPaperAddBo bo) {
         ExamPaper add = BeanUtil.toBean(bo, ExamPaper.class);
         validEntityBeforeSave(add);
+        bo.setEncoder(ServletUtils.getEncoded("SJ"));
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         return this.save(add);

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamKnowledgeBusinessVo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.exam.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 知识点视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-10-19
+ */
+@Data
+@ApiModel("知识点视图对象")
+public class ExamKnowledgeBusinessVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 业务ID */
+	@Excel(name = "业务ID")
+	@ApiModelProperty("业务ID")
+	private Long businessId;
+	/** 科目ID */
+	@Excel(name = "科目ID")
+	@ApiModelProperty("科目ID")
+	private Long subjectId;
+	/** 知识点ID */
+	@Excel(name = "知识点ID")
+	@ApiModelProperty("知识点ID")
+	private Long knowledgeId;
+}

+ 11 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamKnowledgeVo.java

@@ -2,11 +2,13 @@ package com.zhongzheng.modules.exam.vo;
 
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.course.vo.CourseBusinessVo;
+import com.zhongzheng.modules.course.vo.CourseSubjectVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -36,4 +38,12 @@ public class ExamKnowledgeVo {
 	@Excel(name = "编码ZSD")
 	@ApiModelProperty("编码ZSD")
 	private String encoder;
+
+	/** 业务层次 */
+	@Excel(name = "业务层次")
+	@ApiModelProperty("业务层次")
+	private List<CourseBusinessVo> courseBusinessList;
+
+
+
 }

+ 17 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamKnowledgeBusinessMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.exam.mapper.ExamKnowledgeBusinessMapper">
+
+    <resultMap type="com.zhongzheng.modules.exam.domain.ExamKnowledgeBusiness" id="ExamKnowledgeBusinessResult">
+        <result property="id" column="id"/>
+        <result property="businessId" column="business_id"/>
+        <result property="subjectId" column="subject_id"/>
+        <result property="knowledgeId" column="knowledge_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 66 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamKnowledgeMapper.xml

@@ -13,5 +13,71 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="encoder" column="encoder"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.exam.vo.ExamKnowledgeVo" id="ExamKnowledgeVoResult">
+        <result property="knowledgeId" column="knowledge_id"/>
+        <result property="knowledgeName" column="knowledge_name"/>
+        <result property="status" column="status"/>
+        <result property="encoder" column="encoder"/>
+        <association property="courseBusinessList" javaType="java.util.List" resultMap="CourseBusinessVoResult" />
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.course.vo.CourseBusinessVo" id="CourseBusinessVoResult">
+        <result property="businessName" column="business_name"/>
+        <result property="remark" column="remark"/>
+        <result property="projectId" column="project_id"/>
+        <result property="schoolYear" column="school_year"/>
+        <result property="status" column="status"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="educationId" column="education_id"/>
+        <result property="courseSubjectName" column="subject_name"/>
+    </resultMap>
+
+
+    <select id="queryList" parameterType="com.zhongzheng.modules.exam.bo.ExamKnowledgeQueryBo" resultMap="ExamKnowledgeVoResult">
+        SELECT
+            k.*,
+            q.*
+        FROM
+            exam_knowledge k
+                LEFT JOIN (
+                SELECT
+                    b.knowledge_id as k_id,
+                    b.business_id,
+                    b.subject_id,
+                    s.business_name,
+                    j.subject_name,
+                    e.education_name,
+                    e.id AS education_id,
+                    p.project_name
+                FROM
+                    exam_knowledge_business b
+                        LEFT JOIN course_business s ON s.id = b.business_id
+                        LEFT JOIN course_subject j ON j.id = b.subject_id
+                        LEFT JOIN course_project_type p ON s.project_id = p.id
+                        LEFT JOIN course_education_type e ON p.education_id = e.id
+            ) q ON q.k_id = k.knowledge_id
+        <if test="status != null and status.size()!=0 ">
+            AND k.status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="educationId != null and educationId !=0 ">
+            AND q.education_id = #{educationId}
+        </if>
+
+        <if test="courseSubjectId != null and courseSubjectId !=0 ">
+            AND q.subject_id = #{courseSubjectId}
+        </if>
+
+        <if test="businessId != null and businessId !=0 ">
+            AND q.business_id = #{businessId}
+        </if>
 
+        <if test="knowledgeName != null and knowledgeName !=0 ">
+            AND k.knowledge_name like concat('%', #{knowledgeName}, '%')
+        </if>
+    </select>
 </mapper>