From c59052947d1433dce19d53e3e15ae17c4d3bf838 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E5=AE=B6=E4=B8=9C?= <1654135867@qq.com>
Date: Tue, 7 May 2024 15:28:55 +0800
Subject: [PATCH] =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=9B=BE=E8=B0=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/course/SeCourseList.vue | 21 +-
.../modules/SeCoursechapterPointModal.vue | 6 +-
.../src/views/know/SeKonwList.vue | 8 +-
.../src/views/know/modules/SeKonwForm.vue | 41 +--
.../course/controller/SeCourseController.java | 238 ++++++++++++++++++
.../jeecg/modules/course/entity/SeCourse.java | 2 +
.../modules/course/mapper/SeCourseMapper.java | 3 +
.../course/service/ISeCourseService.java | 1 +
.../service/impl/SeCourseServiceImpl.java | 5 +
.../modules/demo/know/entity/SeKonw.java | 75 +++---
.../controller/KnowcourseController.java | 49 ++++
.../knowcourse/mapper/KnowcourseMapper.java | 18 ++
.../service/IKnowcourseService.java | 10 +
.../service/impl/KnowcourseServiceImpl.java | 30 +++
14 files changed, 444 insertions(+), 63 deletions(-)
diff --git a/ant-design-vue-jeecg/src/views/course/SeCourseList.vue b/ant-design-vue-jeecg/src/views/course/SeCourseList.vue
index df16a0e..f65ecc4 100644
--- a/ant-design-vue-jeecg/src/views/course/SeCourseList.vue
+++ b/ant-design-vue-jeecg/src/views/course/SeCourseList.vue
@@ -120,8 +120,10 @@
课程标准
学时分配
-
- 添加知识点
+
+ 生成图谱
+
{
+/* this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'img', 'depid', 'majorid', 'category', 'nature', 'programid', 'name', 'code', 'semester', 'credit', 'classhours', 'theoryhours', 'practicehours', 'experimenthours', 'otherhours', 'weeks', 'assessmenttype', 'assessmentway', 'advancedplacement', 'teacher', 'maker', 'writer', 'teachingandoffice', 'verifier', 'teacherway', 'teachermethod', 'assessmentrules', 'contentdistribution', 'achievement'))
- })
+ }) */
},
close() {
this.$emit('close');
diff --git a/ant-design-vue-jeecg/src/views/know/SeKonwList.vue b/ant-design-vue-jeecg/src/views/know/SeKonwList.vue
index e19f9fc..5748a72 100644
--- a/ant-design-vue-jeecg/src/views/know/SeKonwList.vue
+++ b/ant-design-vue-jeecg/src/views/know/SeKonwList.vue
@@ -170,15 +170,15 @@
dataIndex: 'code'
},
{
- title:'定义',
+ title:'知识点来源',
align:"center",
- dataIndex: 'miaoshu'
+ dataIndex: 'knowfrom_dictText'
},
- {
+ /* {
title:'添加人',
align:"center",
dataIndex: 'inrealname'
- },
+ }, */
{
title: '操作',
dataIndex: 'action',
diff --git a/ant-design-vue-jeecg/src/views/know/modules/SeKonwForm.vue b/ant-design-vue-jeecg/src/views/know/modules/SeKonwForm.vue
index 0aab4e5..0c21900 100644
--- a/ant-design-vue-jeecg/src/views/know/modules/SeKonwForm.vue
+++ b/ant-design-vue-jeecg/src/views/know/modules/SeKonwForm.vue
@@ -5,28 +5,32 @@
-
+
-
-
-
+
+
+
+
+
+
-
-
-
+
-
-
+
-
-
+
+
@@ -55,7 +59,7 @@
data () {
return {
model:{
- },
+ },
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
@@ -66,12 +70,9 @@
},
confirmLoading: false,
validatorRules: {
- name: [
- { required: true, message: '请输入知识点名称!'},
- ],
- miaoshu: [
- { required: true, message: '请输入定义!'},
- ],
+ name: [
+ { required: true, message: '请输入知识点名称!'},
+ ],
},
url: {
add: "/konw/seKonw/add",
@@ -86,7 +87,7 @@
},
},
created () {
- //备份model原始值
+ //备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
@@ -110,7 +111,7 @@
method = 'post';
}else{
httpurl+=this.url.edit;
- method = 'put';
+ method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/controller/SeCourseController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/controller/SeCourseController.java
index c7e9989..56bf21d 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/controller/SeCourseController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/controller/SeCourseController.java
@@ -19,11 +19,17 @@ import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.course.entity.SeChapter;
import org.jeecg.modules.course.entity.SeCourse;
import org.jeecg.modules.course.entity.SeCourseobjectives;
+import org.jeecg.modules.course.mapper.SeChapterMapper;
import org.jeecg.modules.course.service.*;
import org.jeecg.modules.demo.know.entity.SeKonw;
import org.jeecg.modules.demo.know.service.ISeKonwService;
import org.jeecg.modules.demo.knowcourse.entity.Knowcourse;
+import org.jeecg.modules.demo.knowcourse.mapper.KnowcourseMapper;
import org.jeecg.modules.demo.knowcourse.service.IKnowcourseService;
+import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup;
+import org.jeecg.modules.demo.seknowgroup.service.ISeKnowGroupService;
+import org.jeecg.modules.demo.sekonwrelationshipmain.entity.SeKonwRelationshipMain;
+import org.jeecg.modules.demo.sekonwrelationshipmain.service.ISeKonwRelationshipMainService;
import org.jeecg.modules.ex.utils.SelectRole;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.system.service.ISysUserService;
@@ -48,6 +54,19 @@ import java.util.*;
@Slf4j
public class SeCourseController extends JeecgController {
+ @Autowired
+ KnowcourseMapper knowcourseMapper;
+
+ @Autowired
+ private ISeKonwRelationshipMainService seKonwRelationshipMainService;
+
+ @Autowired
+ private ISeKnowGroupService seKnowGroupService;
+
+ @Autowired
+ private SeChapterMapper seChapterMapper;
+
+
@Autowired
private ISeCourseService seCourseService;
@Autowired
@@ -312,6 +331,7 @@ public class SeCourseController extends JeecgController knowcourses1 = knowcourseService.list(queryWrapper1);
for (Knowcourse knowcourse : knowcourses1) {
knowcourses.add(knowcourse);
+ System.out.println(knowcourse);
}
}
}
@@ -641,6 +661,224 @@ public class SeCourseController extends JeecgController章-->节-->知识点的结构的图谱数据。
+ * @param request
+ * @return 提示性信息
+ */
+ @AutoLog(value = "用于生成图谱")
+ @ApiOperation(value = "生成图谱", notes = "生成图谱")
+ @GetMapping(value = "/cretegroup")
+ public Result> cretegroup(String id) {
+ //在知识图谱表填写一条数据
+ cretegroupinfo(id);
+ //将课程表中的是否已经生成图谱(iscreategroup)的状态改成Y
+ updateiscreategroup(id);
+ //将课程抽象成知识点并存储到知识点表中
+ classtoknow(id);
+ //开始将章节抽象成知识点存储到知识点表
+ chaptertoknoe(id);
+ //开始组装前后知识点
+ creteprenet(id);
+ return Result.ok("图谱生成成功!");
+ }
+
+
+
+ /****
+ * 在知识图谱表填写一条数据。
+ * @param request
+ * @return 提示性信息
+ */
+ @AutoLog(value = "将课程表中的是否已经生成图谱(iscreategroup)的状态改成Y")
+ @ApiOperation(value = "将课程表中的是否已经生成图谱(iscreategroup)的状态改成Y", notes = "将课程表中的是否已经生成图谱(iscreategroup)的状态改成Y")
+ public void cretegroupinfo(String id) {
+ //根据传回的id查询课程名称
+ SeCourse seCourse = seCourseService.getById(id);
+ SeKnowGroup seKnowGroup = new SeKnowGroup();
+ seKnowGroup.setCourseid(id);
+ seKnowGroup.setName(seCourse.getName());
+ seKnowGroup.setKnowPoint(seCourse.getName());
+ seKnowGroupService.save(seKnowGroup);
+ }
+
+ /****
+ * 将课程表中的是否已经生成图谱(iscreategroup)的状态改成Y
+ * @param request
+ * @return 提示性信息
+ */
+ @AutoLog(value = "在知识图谱表填写一条数据")
+ @ApiOperation(value = "在知识图谱表填写一条数据", notes = "在知识图谱表填写一条数据")
+ public void updateiscreategroup(String id) {
+ SeCourse seCourse = seCourseService.getById(id);
+ seCourse.setIscreategroup("Y");
+ seCourseService.updateById(seCourse);
+ }
+
+ /****
+ * 将课程抽象成知识点并存储到知识点表中
+ * @param request
+ * @return 提示性信息
+ */
+ @AutoLog(value = "将课程抽象成知识点并存储到知识点表中")
+ @ApiOperation(value = "将课程抽象成知识点并存储到知识点表中", notes = "将课程抽象成知识点并存储到知识点表中")
+ public void classtoknow(String id) {
+ SeCourse seCourse = seCourseService.getById(id);
+ SeKonw seKonw = new SeKonw();
+ seKonw.setName(seCourse.getName());
+ seKonw.setCode("课程:"+seCourse.getCode());
+ //这里的数据自数据字典cck其中1代表的是课程表
+ seKonw.setKnowfrom("1");
+ seKonw.setFromid(id);
+ seKonw.setCourseid(id);
+ seKonwService.save(seKonw);
+
+ }
+
+
+ /****
+ * 将课程抽象成知识点并存储到知识点表中
+ * @param request
+ * @return 提示性信息
+ */
+ @AutoLog(value = "将章节抽象成知识点存储到知识点表")
+ @ApiOperation(value = "将章节抽象成知识点存储到知识点表", notes = "将章节抽象成知识点存储到知识点表")
+ public void chaptertoknoe(String id) {
+ SeCourse seCourse = seCourseService.getById(id);
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("courseid", id);
+ List chapterList = seChapterMapper.selectList(queryWrapper);
+ for (int i=0;i queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("courseid", id).eq("pid","0");
+ List chapterList = seChapterMapper.selectList(queryWrapper);
+ if (!chapterList.isEmpty()){
+ for (int i=0;i queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("courseid", id).eq("pid","0");
+ List chapterListz = seChapterMapper.selectList(queryWrapper);
+ if (!chapterListz.isEmpty()){
+ for (int i=0;i queryWrapperj = new QueryWrapper<>();
+ queryWrapperj.eq("courseid", id).eq("pid",chapterListz.get(i).getId());
+ List chapterListj = seChapterMapper.selectList(queryWrapperj);
+ if (!chapterListj.isEmpty()) {
+ for (int j = 0; j < chapterListj.size(); j++) {
+ SeKonwRelationshipMain seKonwRelationshipMain = new SeKonwRelationshipMain();
+ //这里的数据自数据字典cck其中2代表的是章节表
+ seKonwRelationshipMain.setPerFrom("2");
+ seKonwRelationshipMain.setPerName(chapterListz.get(i).getName());
+ seKonwRelationshipMain.setPerKowId(chapterListz.get(i).getId());
+ seKonwRelationshipMain.setPerColor("rgba(254, 241, 0, 1)");
+ seKonwRelationshipMain.setNextFrom("2");
+ seKonwRelationshipMain.setNextName(chapterListj.get(j).getName());
+ seKonwRelationshipMain.setNextKnowId(chapterListj.get(j).getId());
+ seKonwRelationshipMain.setNextColor("rgba(10, 138, 244, 1)");
+ seKonwRelationshipMainService.save(seKonwRelationshipMain);
+ }
+ }
+ }
+ }
+
+ }
+
+ //用于在创建前知识点和后知识点的过程中创建章-节这一层的知识点关系
+ public void cretjieknow(String id){
+ //开始组装课程-章结构知识点关系
+ SeCourse seCourse = seCourseService.getById(id);
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("courseid", id).eq("pid","0");
+ List chapterListz = seChapterMapper.selectList(queryWrapper);
+ if (!chapterListz.isEmpty()){
+ for (int i=0;i queryWrapperj = new QueryWrapper<>();
+ queryWrapperj.eq("courseid", id).eq("pid",chapterListz.get(i).getId());
+ List chapterListj = seChapterMapper.selectList(queryWrapperj);
+ if (!chapterListj.isEmpty()) {
+ for (int j = 0; j < chapterListj.size(); j++) {
+ QueryWrapper queryWrapperk = new QueryWrapper<>();
+ queryWrapperk.eq("uintid", chapterListj.get(j).getId());
+ List knowcourseList = knowcourseMapper.selectList(queryWrapperk);
+ if (!knowcourseList.isEmpty()){
+ for (int c=0;c {
@Select("select id from se_course where name = #{a} ")
String getcourse(String a);
+
+ @Select("SELECT * FROM se_course WHERE id==#{id}")
+ SeCourse getByIdcou(String id);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/ISeCourseService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/ISeCourseService.java
index a5d64c5..8b6c47b 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/ISeCourseService.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/ISeCourseService.java
@@ -21,4 +21,5 @@ public interface ISeCourseService extends IService {
String getcourse(String a);
+ SeCourse getByIdcou(String id);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/impl/SeCourseServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/impl/SeCourseServiceImpl.java
index bb3e677..bd47728 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/impl/SeCourseServiceImpl.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/course/service/impl/SeCourseServiceImpl.java
@@ -36,4 +36,9 @@ public class SeCourseServiceImpl extends ServiceImpl i
public String getcourse(String a) {
return seCourseMapper.getcourse(a);
}
+
+ @Override
+ public SeCourse getByIdcou(String id) {
+ return seCourseMapper.getByIdcou(id);
+ }
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/entity/SeKonw.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/entity/SeKonw.java
index ee2d0a0..c05306b 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/entity/SeKonw.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/entity/SeKonw.java
@@ -31,46 +31,57 @@ import lombok.experimental.Accessors;
public class SeKonw implements Serializable {
private static final long serialVersionUID = 1L;
- /**主键*/
- @TableId(type = IdType.ASSIGN_ID)
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
- private String id;
- /**创建人*/
+ private java.lang.String id;
+ /**创建人*/
@ApiModelProperty(value = "创建人")
- private String createBy;
- /**创建日期*/
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private java.lang.String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "创建日期")
- private Date createTime;
- /**更新人*/
+ private java.util.Date createTime;
+ /**更新人*/
@ApiModelProperty(value = "更新人")
- private String updateBy;
- /**更新日期*/
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private java.lang.String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新日期")
- private Date updateTime;
- /**所属部门*/
+ private java.util.Date updateTime;
+ /**所属部门*/
@ApiModelProperty(value = "所属部门")
- private String sysOrgCode;
- /**知识点名称*/
- @Excel(name = "知识点名称", width = 15)
+ private java.lang.String sysOrgCode;
+ /**知识点名称*/
+ @Excel(name = "知识点名称", width = 15)
@ApiModelProperty(value = "知识点名称")
- private String name;
- /**知识点代码*/
- @Excel(name = "知识点代码", width = 15)
+ private java.lang.String name;
+ /**知识点代码*/
+ @Excel(name = "知识点代码", width = 15)
@ApiModelProperty(value = "知识点代码")
- private String code;
- /**描述*/
- @Excel(name = "定义", width = 15)
- @ApiModelProperty(value = "定义")
- private String miaoshu;
- /**简介*/
- @Excel(name = "简介", width = 15)
+ private java.lang.String code;
+ /**简介*/
+ @Excel(name = "简介", width = 15)
@ApiModelProperty(value = "简介")
- private String info;
+ private java.lang.String info;
+ /**定义*/
+ @Excel(name = "定义", width = 15)
+ @ApiModelProperty(value = "定义")
+ private java.lang.String miaoshu;
/**添加人真实名称*/
- @ApiModelProperty(value = "添加人")
- private String inrealname;
+ @Excel(name = "添加人真实名称", width = 15)
+ @ApiModelProperty(value = "添加人真实名称")
+ private java.lang.String inrealname;
+ /**知识点来源*/
+ @Excel(name = "知识点来源", width = 15, dicCode = "cck")
+ @Dict(dicCode = "cck")
+ @ApiModelProperty(value = "知识点来源")
+ private java.lang.String knowfrom;
+
+ @ApiModelProperty(value = "来源表ID")
+ private java.lang.String fromid;
+ @ApiModelProperty(value = "来源表ID")
+ private java.lang.String courseid;
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/controller/KnowcourseController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/controller/KnowcourseController.java
index a0952e0..ef06a18 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/controller/KnowcourseController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/controller/KnowcourseController.java
@@ -407,6 +407,55 @@ public class KnowcourseController extends JeecgController tableData (SeCourseobjectives seCourseobjectives,
+ HttpServletRequest request) {
+ //获取课程ID
+ String courseid = request.getParameter("id");
+ //组装数据
+ /*首先根据课程ID获取Knowcourse的数据*/
+ List knowcourse = knowcourseService.getlist(courseid);
+ Double chapterusedxs =0.0;
+ Double utilsusedxs =0.0;
+ Double utilzxs = 0.0;
+ /*根据章节id查询需要的章,并且把knowcourse这个list里面的章的id替换成章的名称,
+ 最后的kcmuzb这个字段替换成章的学时*/
+ for (int i = 0;i {
void updatexs(Double bl, String mbid);
+ @Select("select name from se_chapter where id = #{chapterid}")
+ String getchaptername(String chapterid);
+
+ @Select("select totalclasshours from se_chapter where id = #{chapterid}")
+ Double getchapterxs(String chapterid);
+
+ @Select("select name from se_chapter where id = #{untilid}")
+ String getuntilname(String untilid);
+
+ @Select("SELECT SUM(xs) FROM knowcourse WHERE chapterid =#{chapterid}")
+ Double getchapterusedxs(String chapterid);
+
+ @Select("SELECT SUM(xs) FROM knowcourse WHERE uintid =#{untilid}")
+ Double getutilsusedxs(String untilid);
+
+ @Select("SELECT totalclasshours FROM se_chapter WHERE id =#{untilid}")
+ Double getutilzxs(String untilid);
+
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/IKnowcourseService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/IKnowcourseService.java
index ea26b16..5f4eac9 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/IKnowcourseService.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/IKnowcourseService.java
@@ -26,4 +26,14 @@ public interface IKnowcourseService extends IService {
List getlist(String courseid);
void updatexs(Double bl, String mbid);
+ String getchaptername(String chapterid);
+
+ Double getchapterxs(String chapterid);
+ String getuntilname(String untilid);
+
+ Double getchapterusedxs(String chapterid);
+
+ Double getutilsusedxs(String untilid);
+
+ Double getutilzxs(String untilid);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/impl/KnowcourseServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/impl/KnowcourseServiceImpl.java
index be57651..93d6864 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/impl/KnowcourseServiceImpl.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/knowcourse/service/impl/KnowcourseServiceImpl.java
@@ -50,5 +50,35 @@ public class KnowcourseServiceImpl extends ServiceImpl