Merge remote-tracking branch 'origin/dev_2307' into dev

dev
zhc077 1 year ago
commit ca5794eac0
  1. 2
      ant-design-vue-jeecg/src/views/cms/admin/modules/CmsArticleForm.vue
  2. 101
      ant-design-vue-jeecg/src/views/py/PyAddProject.vue
  3. 21
      ant-design-vue-jeecg/src/views/seknowgroup/SeKnowGroupList.vue
  4. 598
      ant-design-vue-jeecg/src/views/seknowgroup/atlas/js/main1.js
  5. 2
      jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  6. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/mapper/SeKonwMapper.java
  7. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/service/ISeKonwService.java
  8. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/know/service/impl/SeKonwServiceImpl.java
  9. 77
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/controller/SeKnowGroupController.java
  10. 11
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/entity/Exports.java
  11. 10
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/entity/NodeList.java
  12. 9
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/entity/NodeName.java
  13. 13
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/mapper/SeKnowGroupMapper.java
  14. 10
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/service/ISeKnowGroupService.java
  15. 24
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/seknowgroup/service/impl/SeKnowGroupServiceImpl.java
  16. 2
      jeecg-boot/jeecg-boot-module-system/src/main/resources/logback-spring.xml

@ -27,7 +27,7 @@
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="content"> <a-form-model-item label="内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="content">
<j-editor style="width: 100%" v-model="model.content" /> <j-editor style="width: 100%;" v-model="model.content" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>

@ -1,19 +1,21 @@
<template> <template>
<a-card>
<el-page-header @back="goBack" cellpadding="30px" style="margin-bottom: 30px;"> </el-page-header>
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<el-page-header @back="goBack" cellpadding="30px"> </el-page-header> <!-- <el-page-header @back="goBack" cellpadding="30px"> </el-page-header> -->
<a-form :form="form" cellpadding="30px"> <a-form :form="form" cellpadding="30px" style="width: 80%; margin: 0 auto;">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="专业代号" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="专业代号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="专业代号" readonly v-model="code"></a-input> <a-input placeholder="专业代号" readonly v-model="code"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="所属学院" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="所属学院" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-select-depart v-decorator="['collegeId', validatorRules.collegeId]"/> <j-select-depart v-decorator="['collegeId', validatorRules.collegeId]"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="所属专业" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="所属专业" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag <j-dict-select-tag
type="list" type="list"
@ -25,12 +27,12 @@
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="版本" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="版本" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['version', validatorRules.version]" placeholder="请输入版本"></a-input> <a-input v-decorator="['version', validatorRules.version]" placeholder="请输入版本"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="主干学科" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="主干学科" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input <a-input
v-decorator="['mainSubject', validatorRules.mainSubject]" v-decorator="['mainSubject', validatorRules.mainSubject]"
@ -38,7 +40,7 @@
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="专业方向" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="专业方向" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input <a-input
v-decorator="['majorDirection', validatorRules.majorDirection]" v-decorator="['majorDirection', validatorRules.majorDirection]"
@ -46,7 +48,7 @@
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <!-- <a-col :span="24">
<a-form-item label="核心课程" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="核心课程" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-textarea <a-textarea
v-decorator="['coreCourse', validatorRules.coreCourse]" v-decorator="['coreCourse', validatorRules.coreCourse]"
@ -63,8 +65,8 @@
placeholder="请输入实践性教学环节" placeholder="请输入实践性教学环节"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :span="24"> <a-col :span="8">
<a-form-item label="学制" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="学制" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag type="list" v-decorator="['eduTime', validatorRules.eduTime]" dictCode="eduTime" <j-dict-select-tag type="list" v-decorator="['eduTime', validatorRules.eduTime]" dictCode="eduTime"
placeholder="请选择学制"/> placeholder="请选择学制"/>
@ -84,7 +86,7 @@
</a-select>--> </a-select>-->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="学位" :labelCol="labelCol" :wrapperCol="wrapperCol" > <a-form-item label="学位" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<j-dict-select-tag <j-dict-select-tag
type="list" type="list"
@ -95,12 +97,12 @@
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="学分" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="学分" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['credit', {}]" placeholder="请输入学分" oninput="if (value.length>100){value=value.slice(0,100);alert('最大输入长度100位')}"></a-input> <a-input v-decorator="['credit', {}]" placeholder="请输入学分" oninput="if (value.length>100){value=value.slice(0,100);alert('最大输入长度100位')}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="8">
<a-form-item label="修学年限" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="修学年限" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag <j-dict-select-tag
type="list" type="list"
@ -124,8 +126,28 @@
</a-select>--> </a-select>-->
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="24">
<a-form-item label="核心课程" :labelCol="labelCol1" :wrapperCol="wrapperCol1">
<a-textarea
v-decorator="['coreCourse', validatorRules.coreCourse]"
rows="4"
placeholder="请输入核心课程"
/>
</a-form-item>
</a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="教学进程安排表" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="实践教学" :labelCol="labelCol1" :wrapperCol="wrapperCol1">
<a-textarea
v-decorator="['practiceTeach', validatorRules.practiceTeach]"
rows="4"
placeholder="请输入实践性教学环节"
/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="教学进程安排表" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
<!-- <j-markdown-editor v-decorator="['fulltt']" id="fulltt"></j-markdown-editor>--> <!-- <j-markdown-editor v-decorator="['fulltt']" id="fulltt"></j-markdown-editor>-->
<j-editor style="width: 100%" v-decorator="['fulltt',{trigger:'input'}]"/> <j-editor style="width: 100%" v-decorator="['fulltt',{trigger:'input'}]"/>
</a-form-item> </a-form-item>
@ -135,12 +157,13 @@
<!-- 修改 --> <!-- 修改 -->
<!-- modify by zhc 10.27 --> <!-- modify by zhc 10.27 -->
<div> <div class="centerbox">
<el-button type="primary" size="small" @click="handleOk" class="el-right">确定</el-button> <el-button type="primary" size="small" @click="handleOk" class="el-right">确定</el-button>
<el-button type="primary" size="small" @click="handleOk" class="el-right">暂存</el-button> <el-button type="primary" size="small" @click="handleOk" class="el-right">暂存</el-button>
<el-button type="danger" @click="open" size="small" class="el-right">关闭</el-button> <el-button type="danger" @click="open" size="small" class="el-right">关闭</el-button>
</div> </div>
</a-spin> </a-spin>
</a-card>
</template> </template>
@ -170,15 +193,38 @@ export default {
width: 1200, width: 1200,
visible: false, visible: false,
model: {}, model: {},
// labelCol: {
// xs: {span: 24},
// sm: {span: 5}
// },
// wrapperCol: {
// xs: {span: 24},
// sm: {span: 16}
// },
labelCol: { labelCol: {
xs: {span: 24}, xs: {span: 24},
sm: {span: 5} sm: {span: 6,offset:3 }
}, },
wrapperCol: { wrapperCol: {
xs: {span: 24}, xs: {span: 24},
sm: {span: 16} sm: {span: 15}
},
labelCol1: {
xs: {span: 24},
sm: {span: 2,offset:1 }
},
wrapperCol1: {
xs: {span: 24},
sm: {span: 21}
},
labelCol2: {
xs: {span: 24},
sm: {span: 3}
},
wrapperCol2: {
xs: {span: 24},
sm: {span: 21}
}, },
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
majorCode: { majorCode: {
@ -434,12 +480,15 @@ export default {
// .button-container { // .button-container {
// margin-left: 100px; // margin-left: 100px;
// } // }
.el-left{ // .el-left{
float: right; // float: right;
margin:10px // margin:10px
} // }
.el-right{ // .el-right{
float: right; // float: right;
margin:10px // margin:10px
// }
.centerbox{
text-align: center;
} }
</style> </style>

@ -172,15 +172,22 @@
}, },
methods: { methods: {
zsAtlsa(record) { zsAtlsa(record) {
let routeData = this.$router.resolve({ path: '/atlas', query: { name: 1 } }); // getAction('/seknowgroup/seKnowGroup/zzzztp', {id: record.id}).then((res) => {
// if (res.success) {
window.open(routeData.href, '_blank'); // //
// this.$router.push({ // e.exports.nodes=[{name:""},{name:""}]
// path: '/src/views/seknowgroup/SeKnowAtlasList', // e.exports.links=[{source:"",target:"",value:.75}]
// query: { // console.log("=================================================")
// "id": 1 // console.log(e.exports.nodes)
// console.log("=================================================")
// } else {
// this.$message.warning(res.message);
// } // }
// }) // })
let routeData = this.$router.resolve({ path: '/atlas', query: { id: record.id } });
window.open(routeData.href, '_blank');
}, },
initDictConfig(){ initDictConfig(){
}, },

@ -7,6 +7,7 @@ export let threeMainFunction = function(e) {
} }
function o() { function o() {
for (var e, t = 0; t < n.length; t++) { for (var e, t = 0; t < n.length; t++) {
for (var o = n[t], a = !0, s = 1; s < o.length; s++) { for (var o = n[t], a = !0, s = 1; s < o.length; s++) {
var i = o[s]; var i = o[s];
@ -16,12 +17,12 @@ export let threeMainFunction = function(e) {
} }
return e return e
} }
var a = {}, var a = {},
r = { r = {
0: 0 0: 0
}, },
n = []; n = [];
function u(t) { function u(t) {
if (a[t]) return a[t].exports; if (a[t]) return a[t].exports;
var o = a[t] = { var o = a[t] = {
@ -31,18 +32,21 @@ export let threeMainFunction = function(e) {
}; };
return e[t].call(o.exports, o, o.exports, u), o.l = !0, o.exports return e[t].call(o.exports, o, o.exports, u), o.l = !0, o.exports
} }
u.m = e, u.c = a, u.d = function(e, t, o) { u.m = e, u.c = a, u.d = function(e, t, o) {
u.o(e, t) || Object.defineProperty(e, t, { u.o(e, t) || Object.defineProperty(e, t, {
enumerable: !0, enumerable: !0,
get: o get: o
}) })
}, u.r = function(e) { },
u.r = function(e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
value: "Module" value: "Module"
}), Object.defineProperty(e, "__esModule", { }), Object.defineProperty(e, "__esModule", {
value: !0 value: !0
}) })
}, u.t = function(e, t) { },
u.t = function(e, t) {
if (1 & t && (e = u(e)), 8 & t) return e; if (1 & t && (e = u(e)), 8 & t) return e;
if (4 & t && "object" == typeof e && e && e.__esModule) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e;
var o = Object.create(null); var o = Object.create(null);
@ -54,25 +58,31 @@ export let threeMainFunction = function(e) {
return e[t] return e[t]
}.bind(null, a)); }.bind(null, a));
return o return o
}, u.n = function(e) { },
u.n = function(e) {
var t = e && e.__esModule ? function() { var t = e && e.__esModule ? function() {
return e.default return e.default
} : function() { } : function() {
return e return e
}; };
return u.d(t, "a", t), t return u.d(t, "a", t), t
}, u.o = function(e, t) { },
u.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t) return Object.prototype.hasOwnProperty.call(e, t)
}, u.p = ""; },
u.p = "";
var s = window.webpackJsonp = window.webpackJsonp || [], var s = window.webpackJsonp = window.webpackJsonp || [],
i = s.push.bind(s); i = s.push.bind(s);
s.push = t, s = s.slice(); s.push = t, s = s.slice();
for (var c = 0; c < s.length; c++) t(s[c]); for (var c = 0; c < s.length; c++) t(s[c]);
var l = i; var l = i;
n.push([4, 1]), o() n.push([4, 1]), o()
}([, , , , function(e, t, o) { }
([, , , , function(e, t, o)
{
e.exports = o(5) e.exports = o(5)
}, function(e, t, o) { },
function(e, t, o) {
"use strict"; "use strict";
o.r(t); o.r(t);
var a = o(2), var a = o(2),
@ -224,549 +234,39 @@ export let threeMainFunction = function(e) {
}; };
M(S) M(S)
})() })()
}, function(e) {
e.exports = {
nodes: [{
name: "软件项目管理"
}, {
name: "软件项目管理基本概念"
}, {
name: "项目整体管理"
}, {
name: "项目范围管理"
}, {
name: "项目进度管理"
}, {
name: "项目进度管理"
}, {
name: "项目资源与采购管理"
}, {
name: "项目相关方与沟通管理"
}, {
name: "项目质量管理"
}, {
name: "项目风险管理"
}, {
name: "项目(知识点)"
}, {
name: "项目管理(知识点)"
}, {
name: "软件项目管理(知识点)"
}, {
name: "项目组织(知识点)"
}, {
name: "制定项目章程(知识点)"
}, {
name: "制定项目管理计划(知识点)"
}, {
name: "指导与管理项目工作(知识点)"
}, {
name: "监控项目工作(知识点)"
}, {
name: "实施整体变更控制(知识点)"
}, {
name: "结束项目或阶段(知识点)"
}, {
name: "规划范围管理"
}, {
name: "定义范围"
}, {
name: "创建WBS"
}, {
name: "确认范围"
}, {
name: "控制范围"
}, {
name: "规划进度管理"
}, {
name: "定义活动"
}, {
name: "估算活动(知识点)"
}, {
name: "制定进度计划(知识点)"
}, {
name: "控制进度(知识点)"
}, {
name: "规划成本管理(知识点)"
}, {
name: "估算成本(知识点)"
}, {
name: "控制成本(知识点)"
}, {
name: "规划资源管理(知识点)"
}, {
name: "获取资源(知识点)"
}, {
name: "建设团队"
}, {
name: "管理团队(知识点)"
}, {
name: "控制资源(知识点)"
}, {
name: "采购管理(知识点)"
}, {
name: "识别相关方(知识点)"
}, {
name: "相关方管理(知识点)"
}, {
name: "规划沟通管理(知识点)"
}, {
name: "管理沟通(知识点)"
}, {
name: "监督沟通(知识点)"
}, {
name: "规划质量管理(知识点)"
}, {
name: "管理质量(知识点)"
}, {
name: "控制质量(知识点)"
}, {
name: "规划风险管理(知识点)"
}, {
name: "识别与控制风险(知识点)"
}, {
name: "项目(知识点)"
}, {
name: "项目管理(知识点)"
}, {
name: "项目管理知识体系(知识点)"
}, {
name: "软件项目管理(知识点)"
}, {
name: "组织结构类型(知识点)"
}, {
name: "PMO的角色和职责(知识点)"
}, {
name: "项目经理的定义与职责(知识点)"
}, {
name: "项目经理所需的能力(知识点)"
}, {
name: "制定项目章程(知识点)"
}, {
name: "制定项目管理计划(知识点)"
}, {
name: "指导与管理项目工作(知识点)"
}, {
name: "监控项目工作(知识点)"
}, {
name: "实施整体变更控制(知识点)"
}, {
name: "结束项目或阶段(知识点)"
}, {
name: "规划范围管理(知识点)"
}, {
name: "定义范围(知识点)"
}, {
name: "创建WBS(知识点)"
}, {
name: "确认范围(知识点)"
}, {
name: "控制范围(知识点)"
}, {
name: "规划进度管理(知识点)"
}, {
name: "定义活动(知识点)"
}, {
name: "估算活动(知识点)"
}, {
name: "制定进度计划(知识点)"
}, {
name: "控制进度(知识点)"
}, {
name: "规划成本管理(知识点)"
}, {
name: "估算成本(知识点)"
}, {
name: "控制成本(知识点)"
}, {
name: "规划资源管理(知识点)"
}, {
name: "获取资源(知识点)"
}, {
name: "建设团队(知识点)"
}, {
name: "管理团队(知识点)"
}, {
name: "控制资源(知识点)"
}, {
name: "采购管理(知识点)"
}, {
name: "识别相关方(知识点)"
}, {
name: "相关方管理(知识点)"
}, {
name: "规划沟通管理(知识点)"
}, {
name: "管理沟通(知识点)"
}, {
name: "监督沟通(知识点)"
}, {
name: "规划质量管理(知识点)"
}, {
name: "管理质量(知识点)"
}, {
name: "控制质量(知识点)"
}, {
name: "规划风险管理(知识点)"
}, {
name: "识别与控制风险(知识点)"
}],
links: [{
source: "软件项目管理",
target: "软件项目管理基本概念",
value: .75
}, {
source: "软件项目管理",
target: "项目整体管理",
value: .1
}, {
source: "软件项目管理",
target: "项目范围管理",
value: .05
}, {
source: "软件项目管理",
target: "项目进度管理",
value: .05
}, {
source: "软件项目管理",
target: "项目成本管理",
value: .05
}, {
source: "软件项目管理",
target: "项目资源与采购管理",
value: .0167781913
}, {
source: "软件项目管理",
target: "项目相关方与沟通管理",
value: .3502949852
}, {
source: "软件项目管理",
target: "项目质量管理",
value: .0006434116
}, {
source: "软件项目管理",
target: "项目风险管理",
value: .0073746312
}, {
source: "软件项目管理基本概念",
target: "项目(知识点)",
value: .0006434116
}, {
source: "软件项目管理基本概念",
target: "项目管理(知识点)",
value: 216053e-10
}, {
source: "软件项目管理基本概念",
target: "软件项目管理(知识点)",
value: .0006434116
}, {
source: "软件项目管理基本概念",
target: "项目组织",
value: .6452802359
}, {
source: "软件项目管理基本概念",
target: "项目经理",
value: .0006434116
}, {
source: "项目整体管理",
target: "制定项目章程(知识点)",
value: 11182e-10
}, {
source: "项目整体管理",
target: "制定项目管理计划(知识点)",
value: .0006434116
}, {
source: "项目整体管理",
target: "指导与管理项目工作(知识点)",
value: .0006434116
}, {
source: "项目整体管理",
target: "监控项目工作(知识点)",
value: .0010334566
}, {
source: "项目整体管理",
target: "实施整体变更控制(知识点)",
value: .0006434116
}, {
source: "项目整体管理",
target: "结束项目或阶段(知识点)",
value: .0010622637
}, {
source: "项目范围管理",
target: "规划范围管理(知识点)",
value: .2857142857
}, {
source: "项目范围管理",
target: "定义范围(知识点)",
value: .864745011
}, {
source: "项目范围管理",
target: "创建WBS(知识点)",
value: .0006434116
}, {
source: "项目范围管理",
target: "确认范围(知识点)",
value: .0160450734
}, {
source: "项目范围管理",
target: "控制范围(知识点)",
value: .0006434116
}, {
source: "项目成本管理",
target: "规划成本管理(知识点)",
value: .1125970066
}, {
source: "项目成本管理",
target: "估算成本(知识点)",
value: .0006434116
}, {
source: "项目成本管理",
target: "控制成本(知识点)",
value: .0012991962
}, {
source: "项目资源与采购管理",
target: "规划资源管理(知识点)",
value: .0006434116
}, {
source: "项目资源与采购管理",
target: "获取资源(知识点)",
value: .6968641114
}, {
source: "项目资源与采购管理",
target: " 建设团队(知识点)",
value: .7909090909
}, {
source: "项目资源与采购管理",
target: "管理团队(知识点)",
value: .0006434116
}, {
source: "项目资源与采购管理",
target: "控制资源(知识点)",
value: .1909090909
}, {
source: "项目资源与采购管理",
target: "采购管理(知识点)",
value: .1909090909
}, {
source: "项目相关方与沟通管理",
target: "识别相关方(知识点)",
value: .5
}, {
source: "项目相关方与沟通管理",
target: "相关方管理(知识点)",
value: .5
}, {
source: "项目相关方与沟通管理",
target: "规划沟通管理(知识点)",
value: .0161576704
}, {
source: "项目相关方与沟通管理",
target: "管理沟通(知识点)",
value: .0006434116
}, {
source: "项目相关方与沟通管理",
target: "监督沟通(知识点)",
value: .0016956676
}, {
source: "项目质量管理",
target: "规划质量管理(知识点)",
value: .0006434116
}, {
source: "项目质量管理",
target: "管理质量(知识点)",
value: .0006434116
}, {
source: "项目质量管理",
target: "控制质量(知识点)",
value: .4435897435
}, {
source: "项目风险管理",
target: "规划风险管理(知识点)",
value: .0006434116
}, {
source: "项目风险管理",
target: "识别与控制风险(知识点)",
value: .5564102565
}, {
source: "项目管理",
target: "项目管理(知识点)",
value: .0006434116
}, {
source: "项目管理",
target: "项目管理知识体系(知识点)",
value: .0006434116
}, {
source: "软件项目管理",
target: "软件项目管理(知识点)",
value: .0006434116
}, {
source: "项目组织",
target: "组织结构类型(知识点)",
value: .0006434116
}, {
source: "项目组织",
target: "PMO的角色和职责(知识点)",
value: .0006434116
}, {
source: "项目经理",
target: "项目经理的定义与职责(知识点)",
value: .0006434116
}, {
source: "项目经理",
target: "项目经理所需的能力(知识点)",
value: .0006434116
}, {
source: "制定项目章程",
target: "制定项目章程(知识点)",
value: .0006434116
}, {
source: "制定项目管理计划",
target: "制定项目管理计划(知识点)",
value: .0006434116
}, {
source: "指导与管理项目工作",
target: "指导与管理项目工作(知识点)",
value: .0006434116
}, {
source: "监控项目工作",
target: "监控项目工作(知识点)",
value: .0006434116
}, {
source: "实施整体变更控制",
target: "实施整体变更控制(知识点)",
value: .0006434116
}, {
source: "结束项目或阶段",
target: "结束项目或阶段(知识点)",
value: .0006434116
}, {
source: "规划范围管理",
target: "规划范围管理(知识点)",
value: .0006434116
}, {
source: "定义范围",
target: "定义范围(知识点)",
value: .0006434116
}, {
source: "创建WBS",
target: "创建WBS(知识点)",
value: .0006434116
}, {
source: "确认范围",
target: "确认范围(知识点)",
value: .0006434116
}, {
source: "控制范围",
target: "控制范围(知识点)",
value: .0006434116
}, {
source: "项目进度管理",
target: "规划进度管理",
value: .0006434116
}, },
{ function (e) {
source: "规划进度管理", var nodestemp = []
target: "规划进度管理(知识点)", var linkstemp = []
value: .0006434116 var id = window.location.href;
},{ var ids = id.indexOf('=')
source: "定义活动", var idsur = id.substring(ids + 1)
target: "定义活动(知识点)", var xhr = new XMLHttpRequest();
value: .0006434116 var url=process.env.VUE_APP_API_BASE_URL+'/seknowgroup/seKnowGroup/zzzztp?id='+idsur;
}, { xhr.open('GET', url, false);
source: "估算活动", xhr.onreadystatechange = function() {
target: "估算活动(知识点)", if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) {
value: .0006434116 console.log(2222);
} // 从服务器获得数据
, { var jsonObj = JSON.parse(xhr.responseText)
source: "项目进度管理", // 获取 nodes 数组和 links 数组
target: "估算活动", nodestemp = jsonObj.nodes;
value: .0006434116 linkstemp = jsonObj.links;
// 输出结果
console.log(nodestemp);
console.log(linkstemp);
/* var stemp= xhr.responseText;
console.log(stemp);
console.log('aaaa',stemp.nodes)
console.log('bbbb',stemp.links)*/
} }
};
xhr.send();
, { e.exports = {
source: "估算活动", nodes: nodestemp,
target: "估算活动(知识点)", links: linkstemp
value: .0006434116
}, {
source: "控制进度",
target: "控制进度(知识点)",
value: .0006434116
}, {
source: "规划成本管理",
target: "规划成本管理(知识点)",
value: .0006434116
}, {
source: "估算成本",
target: "估算成本(知识点)",
value: .0006434116
}, {
source: "控制成本",
target: "控制成本(知识点)",
value: .0006434116
}, {
source: "规划资源管理",
target: "规划资源管理(知识点)",
value: .0006434116
}, {
source: "获取资源",
target: "获取资源(知识点)",
value: .0006434116
}, {
source: "建设团队",
target: "建设团队(知识点)",
value: .0006434116
}, {
source: "管理团队",
target: "管理团队(知识点)",
value: .0006434116
}, {
source: "控制资源",
target: "控制资源(知识点)",
value: .0006434116
}, {
source: "采购管理",
target: "采购管理(知识点)",
value: .0006434116
}, {
source: "识别相关方",
target: "识别相关方(知识点)",
value: .0006434116
}, {
source: "相关方管理",
target: "相关方管理(知识点)",
value: .0006434116
}, {
source: "规划沟通管理",
target: "规划沟通管理(知识点)",
value: .0006434116
}, {
source: "管理沟通",
target: "管理沟通(知识点)",
value: .0006434116
}, {
source: "监督沟通",
target: "监督沟通(知识点)",
value: .0006434116
}, {
source: "规划质量管理",
target: "规划质量管理(知识点)",
value: .0006434116
}, {
source: "管理质量",
target: "管理质量(知识点)",
value: .0006434116
}, {
source: "控制质量",
target: "控制质量(知识点)",
value: .0006434116
}, {
source: "规划风险管理",
target: "规划风险管理(知识点)",
value: .0006434116
}, {
source: "识别与控制风险",
target: "识别与控制风险(知识点)",
value: .0006434116
}]
} }
console.log(3333);
}]); }]);

@ -76,6 +76,8 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/randomImage/**", "anon"); //登录验证码接口排除 filterChainDefinitionMap.put("/sys/randomImage/**", "anon"); //登录验证码接口排除
filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除 filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除
filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除
filterChainDefinitionMap.put("/seknowgroup/seKnowGroup/zzzztp", "anon"); //知识图谱接口排除
filterChainDefinitionMap.put("/sys/facelogin", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/facelogin", "anon"); //登录接口排除
filterChainDefinitionMap.put("/sys/faceIdentify", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/faceIdentify", "anon"); //登录接口排除
filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除

@ -32,4 +32,6 @@ public interface SeKonwMapper extends BaseMapper<SeKonw> {
void update1(String getrealname, String createBy); void update1(String getrealname, String createBy);
@Select("select wight from se_konw_relationship where id =#{relationId}")
String getrelaint(String relationId);
} }

@ -23,4 +23,6 @@ public interface ISeKonwService extends IService<SeKonw> {
void update1(String getrealname, String createBy); void update1(String getrealname, String createBy);
Boolean importExcel(List<SeKonw> zlListByE); Boolean importExcel(List<SeKonw> zlListByE);
String getrelaint(String relationId);
} }

@ -63,6 +63,10 @@ public class SeKonwServiceImpl extends ServiceImpl<SeKonwMapper, SeKonw> impleme
return true; return true;
} }
@Override
public String getrelaint(String relationId) {
return seKonwMapper.getrelaint(relationId);
}
} }

@ -1,5 +1,6 @@
package org.jeecg.modules.demo.seknowgroup.controller; package org.jeecg.modules.demo.seknowgroup.controller;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -12,6 +13,11 @@ import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.know.entity.SeKonw;
import org.jeecg.modules.demo.know.service.ISeKonwService;
import org.jeecg.modules.demo.seknowgroup.entity.Exports;
import org.jeecg.modules.demo.seknowgroup.entity.NodeList;
import org.jeecg.modules.demo.seknowgroup.entity.NodeName;
import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup; import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup;
import org.jeecg.modules.demo.seknowgroup.service.ISeKnowGroupService; import org.jeecg.modules.demo.seknowgroup.service.ISeKnowGroupService;
@ -20,6 +26,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.konwRelationshipMain.entity.SeKonwRelationshipMain;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ExportParams;
@ -50,6 +57,9 @@ public class SeKnowGroupController extends JeecgController<SeKnowGroup, ISeKnowG
@Autowired @Autowired
private ISeKnowGroupService seKnowGroupService; private ISeKnowGroupService seKnowGroupService;
@Autowired
private ISeKonwService seKonwService;
/** /**
* 分页列表查询 * 分页列表查询
* *
@ -168,4 +178,71 @@ public class SeKnowGroupController extends JeecgController<SeKnowGroup, ISeKnowG
return super.importExcel(request, response, SeKnowGroup.class); return super.importExcel(request, response, SeKnowGroup.class);
} }
/**
* 开始组装知识图谱
*/
@RequestMapping(value = "/zzzztp")
public Exports zzzztp(@RequestParam(name="id",required=true) String id) {
//最多显示三层结构
List<NodeName> nodelist = new ArrayList<>();
//开始根据id查找中心知识点id
String pointnode = seKnowGroupService.findpointnode(id);
//开始组装知识点节点
//获取中心知识点
SeKonw seknow = seKonwService.getById(pointnode);
//将list的第一个位置设置成中心知识点名称
NodeName nodes = new NodeName();
nodes.setName(seknow.getName());
nodelist.add(nodes);
//开是循环,根据中心知识点id,在知识点关系表中查询以中心知识点为中心查询第二层知识点
List<String> listid = seKnowGroupService.listid(seknow.getId());
//开始循环
for (int i=0;i<listid.size();i++){
NodeName nodes1 = new NodeName();
//根据id获取知识点名字,并且进行赋值
nodes1.setName(seKonwService.getById(listid.get(i)).getName());
nodelist.add(nodes1);
//开始第二层循环
List<String> listid2 = seKnowGroupService.listid(listid.get(i));
System.out.println(listid2.size());
for (int j =0;j<listid2.size();j++ ){
NodeName nodes2 = new NodeName();
SeKonw sek = new SeKonw();
sek = seKonwService.getById(listid2.get(j));
nodes2.setName(sek.getName());
nodelist.add(nodes2);
}
}
//现在开始组装知识图谱经管系节点
List<NodeList> nodelistdss = new ArrayList<>();
//首先根据中心知识点查询
List<SeKonwRelationshipMain> segouplisttemp = new ArrayList<>();
segouplisttemp=seKnowGroupService.getzxzsnodelist(seknow.getId());
//第二层
for (int i=0; i< segouplisttemp.size();i++){
NodeList ndoesl = new NodeList();
ndoesl.setSource(seKonwService.getById(segouplisttemp.get(i).getPerKowId()).getName());
ndoesl.setTarget(seKonwService.getById(segouplisttemp.get(i).getNextKnowId()).getName());
ndoesl.setValue(seKonwService.getrelaint(segouplisttemp.get(i).getRelationId()));
nodelistdss.add(ndoesl);
List<SeKonwRelationshipMain> segouplisttemp2 = new ArrayList<>();
segouplisttemp2=seKnowGroupService.getzxzsnodelist(segouplisttemp.get(i).getNextKnowId());
for (int j=0;j<segouplisttemp2.size();j++){
NodeList ndoesl2 = new NodeList();
ndoesl2.setSource(seKonwService.getById(segouplisttemp2.get(j).getPerKowId()).getName());
ndoesl2.setTarget(seKonwService.getById(segouplisttemp2.get(j).getNextKnowId()).getName());
ndoesl2.setValue(seKonwService.getrelaint(segouplisttemp2.get(j).getRelationId()));
nodelistdss.add(ndoesl2);
}
}
Exports exep = new Exports();
exep.setNodes(nodelist.stream().distinct().collect(Collectors.toList()));
exep.setLinks(nodelistdss);
return exep;
}
} }

@ -0,0 +1,11 @@
package org.jeecg.modules.demo.seknowgroup.entity;
import lombok.Data;
import java.util.List;
@Data
public class Exports {
private List<NodeName> nodes;
private List<NodeList> links;
}

@ -0,0 +1,10 @@
package org.jeecg.modules.demo.seknowgroup.entity;
import lombok.Data;
@Data
public class NodeList {
private String source;
private String target;
private String value;
}

@ -0,0 +1,9 @@
package org.jeecg.modules.demo.seknowgroup.entity;
import lombok.Data;
@Data
public class NodeName {
private String name;
}

@ -3,8 +3,11 @@ package org.jeecg.modules.demo.seknowgroup.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.demo.seknowgroup.entity.NodeList;
import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup; import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.konwRelationshipMain.entity.SeKonwRelationshipMain;
/** /**
* @Description: 知识图谱表 * @Description: 知识图谱表
@ -14,4 +17,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface SeKnowGroupMapper extends BaseMapper<SeKnowGroup> { public interface SeKnowGroupMapper extends BaseMapper<SeKnowGroup> {
@Select("select know_point from se_know_group where id =#{id}")
String findpointnode(String id);
@Select("select next_know_id from se_konw_relationship_main where per_kow_id=#{pointnode}")
List<String> listid(String pointnode);
@Select("select * from se_konw_relationship_main where per_kow_id =#{id}")
List<SeKonwRelationshipMain> getzxzsnodelist(String id);
} }

@ -1,7 +1,11 @@
package org.jeecg.modules.demo.seknowgroup.service; package org.jeecg.modules.demo.seknowgroup.service;
import org.jeecg.modules.demo.seknowgroup.entity.NodeList;
import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup; import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.konwRelationshipMain.entity.SeKonwRelationshipMain;
import java.util.List;
/** /**
* @Description: 知识图谱表 * @Description: 知识图谱表
@ -11,4 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface ISeKnowGroupService extends IService<SeKnowGroup> { public interface ISeKnowGroupService extends IService<SeKnowGroup> {
String findpointnode(String id);
List<String> listid(String pointnode);
List<SeKonwRelationshipMain> getzxzsnodelist(String id);
} }

@ -1,12 +1,17 @@
package org.jeecg.modules.demo.seknowgroup.service.impl; package org.jeecg.modules.demo.seknowgroup.service.impl;
import org.jeecg.modules.demo.seknowgroup.entity.NodeList;
import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup; import org.jeecg.modules.demo.seknowgroup.entity.SeKnowGroup;
import org.jeecg.modules.demo.seknowgroup.mapper.SeKnowGroupMapper; import org.jeecg.modules.demo.seknowgroup.mapper.SeKnowGroupMapper;
import org.jeecg.modules.demo.seknowgroup.service.ISeKnowGroupService; import org.jeecg.modules.demo.seknowgroup.service.ISeKnowGroupService;
import org.jeecg.modules.konwRelationshipMain.entity.SeKonwRelationshipMain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/** /**
* @Description: 知识图谱表 * @Description: 知识图谱表
* @Author: jeecg-boot * @Author: jeecg-boot
@ -16,4 +21,23 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service @Service
public class SeKnowGroupServiceImpl extends ServiceImpl<SeKnowGroupMapper, SeKnowGroup> implements ISeKnowGroupService { public class SeKnowGroupServiceImpl extends ServiceImpl<SeKnowGroupMapper, SeKnowGroup> implements ISeKnowGroupService {
@Autowired
SeKnowGroupMapper knowGroupMapper;
@Override
public String findpointnode(String id) {
return knowGroupMapper.findpointnode(id);
}
@Override
public List<String> listid(String pointnode) {
return knowGroupMapper.listid(pointnode);
}
@Override
public List<SeKonwRelationshipMain> getzxzsnodelist(String id) {
return knowGroupMapper.getzxzsnodelist(id);
}
} }

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"> <configuration debug="false">
<!--定义日志文件的存储地址 --> <!--定义日志文件的存储地址 -->
<property name="LOG_HOME" value="../logs" /> <property name="LOG_HOME" value="./logs" />
<!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />--> <!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
<!-- 控制台输出 --> <!-- 控制台输出 -->

Loading…
Cancel
Save