diff --git a/react-ui/config/config.ts b/react-ui/config/config.ts index 961f0025..405f85cb 100644 --- a/react-ui/config/config.ts +++ b/react-ui/config/config.ts @@ -76,7 +76,7 @@ export default defineConfig({ * @name layout 插件 * @doc https://umijs.org/docs/max/layout-menu */ - title: '复杂智能软件', + title: '智能软件开发平台', layout: { locale: true, ...defaultSettings, diff --git a/react-ui/config/defaultSettings.ts b/react-ui/config/defaultSettings.ts index 4acad99b..18889073 100644 --- a/react-ui/config/defaultSettings.ts +++ b/react-ui/config/defaultSettings.ts @@ -16,7 +16,7 @@ const Settings: ProLayoutProps & { fixSiderbar: false, splitMenus: false, colorWeak: false, - title: '复杂智能软件', + title: '智能软件开发平台', pwa: true, logo: '/assets/images/left-top-logo.png', iconfontUrl: '//at.alicdn.com/t/c/font_4511326_ndnvm4elll.js', diff --git a/react-ui/src/app.tsx b/react-ui/src/app.tsx index 1d11a6e6..10ab35bb 100644 --- a/react-ui/src/app.tsx +++ b/react-ui/src/app.tsx @@ -193,6 +193,7 @@ export const antd: RuntimeAntdConfig = (memo) => { colorSuccess: themes['successColor'], colorError: themes['errorColor'], colorWarning: themes['warningColor'], + colorLink: themes['primaryColor'], }; memo.theme.components ??= {}; memo.theme.components.Tabs = {}; diff --git a/react-ui/src/components/KFRadio/index.less b/react-ui/src/components/KFRadio/index.less index 0155142d..aff74e90 100644 --- a/react-ui/src/components/KFRadio/index.less +++ b/react-ui/src/components/KFRadio/index.less @@ -1,5 +1,3 @@ -// @import '@/styles/theme.less'; - .kf-radio { display: flex; align-items: center; diff --git a/react-ui/src/components/ModalTitle/index.less b/react-ui/src/components/ModalTitle/index.less index 24e10386..ac4d8360 100644 --- a/react-ui/src/components/ModalTitle/index.less +++ b/react-ui/src/components/ModalTitle/index.less @@ -1,4 +1,3 @@ -@import '@/styles/theme.less'; .modal_title { display: flex; align-items: center; diff --git a/react-ui/src/components/SubAreaTitle/index.less b/react-ui/src/components/SubAreaTitle/index.less index 5683824c..5e3b7452 100644 --- a/react-ui/src/components/SubAreaTitle/index.less +++ b/react-ui/src/components/SubAreaTitle/index.less @@ -1,5 +1,3 @@ -@import '@/styles/theme.less'; - .kf-subarea-title { display: flex; align-items: center; diff --git a/react-ui/src/global.less b/react-ui/src/global.less index 63715440..126b9e52 100644 --- a/react-ui/src/global.less +++ b/react-ui/src/global.less @@ -58,7 +58,8 @@ body { .ant-pro-layout .ant-pro-sider-menu { padding-top: 40px; } -.ant-table-wrapper .ant-table-container table>thead>tr:first-child >*:first-child,.ant-table-wrapper .ant-table-container table>tbody>tr:first-child{ +.ant-table-wrapper .ant-table-container table > thead > tr:first-child > *:first-child, +.ant-table-wrapper .ant-table-container table > tbody > tr:first-child { padding: 0 30px; } @@ -97,7 +98,7 @@ body { } .ant-table-wrapper .ant-table-pagination.ant-pagination { margin: 0; - padding: 21px 16px; + padding: 20px 16px; background-color: #fff; } // .ant-table-wrapper .ant-table { @@ -112,6 +113,7 @@ body { } .ant-pro-layout .ant-pro-layout-container { height: 100vh; + overflow-y: hidden; } .ant-modal-confirm .ant-modal-confirm-paragraph { margin: 54px 0 auto; @@ -188,32 +190,21 @@ body { .ant-modal .ant-modal-footer > .ant-btn + .ant-btn { margin-left: 20px; } -.ant-pagination .ant-pagination-item-active a { - color: #fff; - background: rgba(22, 100, 255, 0.8); - // color: #fff; - border-radius: 6px; +.ant-pagination .ant-pagination-item.ant-pagination-item-active { + background: @primary-color; + border-width: 0; + + a { + color: #fff; + } } .ant-pagination .ant-pagination-item-active:hover { - // color: #fff; - // background: rgba(22, 100, 255, 0.8); - // border-color: rgba(22, 100, 255, 0.8); - border-radius: 6px; + color: #fff; + background: rgba(22, 100, 255, 0.8); + border-color: rgba(22, 100, 255, 0.8); } .ant-pagination .ant-pagination-item { border: 1px solid #e6e6e6; - border-radius: 6px; -} - -.ant-tabs { - .ant-tabs-nav::before, - div > .ant-tabs-nav::before { - border: none; - } - - .ant-tabs-nav { - margin-bottom: 0; - } } // ::-webkit-scrollbar-button { diff --git a/react-ui/src/pages/DevelopmentEnvironment/index.tsx b/react-ui/src/pages/DevelopmentEnvironment/index.tsx index 329c0695..c2e09d35 100644 --- a/react-ui/src/pages/DevelopmentEnvironment/index.tsx +++ b/react-ui/src/pages/DevelopmentEnvironment/index.tsx @@ -17,6 +17,6 @@ const DevelopmentEnvironment = () => { } }; - return ; + return ; }; export default DevelopmentEnvironment; diff --git a/react-ui/src/pages/Experiment/experimentText/paramsModal.tsx b/react-ui/src/pages/Experiment/experimentText/paramsModal.tsx index 9a75c2e8..1bdb0cec 100644 --- a/react-ui/src/pages/Experiment/experimentText/paramsModal.tsx +++ b/react-ui/src/pages/Experiment/experimentText/paramsModal.tsx @@ -12,7 +12,7 @@ import styles from './paramsModal.less'; type ParamsModalProps = { open: boolean; onCancel: () => void; - globalParam?: PipelineGlobalParam[]; + globalParam?: PipelineGlobalParam[] | null; }; function ParamsModal({ open, onCancel, globalParam = [] }: ParamsModalProps) { @@ -26,7 +26,7 @@ function ParamsModal({ open, onCancel, globalParam = [] }: ParamsModalProps) { cancelButtonProps={{ style: { display: 'none' } }} >
- {globalParam.map((item) => ( + {globalParam?.map((item) => (
{getParamType(item)} {item.param_value} diff --git a/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.less b/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.less index 23c518c7..043bf411 100644 --- a/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.less +++ b/react-ui/src/pages/Mirror/components/MirrorStatusCell/index.less @@ -1,5 +1,3 @@ -//@import '@/styles/theme.less'; - .mirror-status-cell { color: @text-color; diff --git a/react-ui/src/pages/Mirror/create.less b/react-ui/src/pages/Mirror/create.less index 0c3943eb..902e2875 100644 --- a/react-ui/src/pages/Mirror/create.less +++ b/react-ui/src/pages/Mirror/create.less @@ -1,5 +1,3 @@ -@import '@/styles/theme.less'; - .mirror-create { height: 100%; diff --git a/react-ui/src/pages/Mirror/create.tsx b/react-ui/src/pages/Mirror/create.tsx index 9f23c838..d50e8877 100644 --- a/react-ui/src/pages/Mirror/create.tsx +++ b/react-ui/src/pages/Mirror/create.tsx @@ -90,6 +90,10 @@ function MirrorCreate() { message.error('文件上传失败,请重新上传文件'); return; } + if (!file.response || !file.response.data) { + message.error('文件上传失败,请重新上传文件'); + return; + } params = { ...omit(formData, ['fileList', 'upload_type']), @@ -119,7 +123,7 @@ function MirrorCreate() { const beforeUpload: UploadProps['beforeUpload'] = () => { const fileList = form.getFieldValue('fileList'); - if (fileList.length >= 1) { + if (Array.isArray(fileList) && fileList.length >= 1) { message.error('只允许上传一个文件'); return Upload.LIST_IGNORE; } diff --git a/react-ui/src/pages/Mirror/info.less b/react-ui/src/pages/Mirror/info.less index eb6ecbaa..650310b6 100644 --- a/react-ui/src/pages/Mirror/info.less +++ b/react-ui/src/pages/Mirror/info.less @@ -1,5 +1,3 @@ -@import '@/styles/theme.less'; - .mirror-info { height: 100%; diff --git a/react-ui/src/pages/Model/personalData.jsx b/react-ui/src/pages/Model/personalData.jsx index cda03a9f..096c4850 100644 --- a/react-ui/src/pages/Model/personalData.jsx +++ b/react-ui/src/pages/Model/personalData.jsx @@ -6,7 +6,11 @@ import KFIcon from '@/components/KFIcon'; import { addModel, deleteModel, getAssetIcon, getModelList } from '@/services/dataset/index.js'; import { modalConfirm } from '@/utils/ui'; import { UploadOutlined } from '@ant-design/icons'; +<<<<<<< HEAD import { Button, Form, Input, Modal, Pagination, Radio, Select, Upload, message } from 'antd'; +======= +import { Button, Form, Input, Modal, Pagination, Select, Upload } from 'antd'; +>>>>>>> 4065c42374905b323a937377ae9ab5f05d6ee297 import moment from 'moment'; import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -108,6 +112,10 @@ const PublicData = () => { setIsModalOpen(false); }; const onFinish = (values) => { + const params = { + ...values, + available_range: 0, + }; addModel(values).then((ret) => { console.log(ret); getModelLists(queryFlow); @@ -452,12 +460,12 @@ const PublicData = () => { > - + {/* 仅自己可见 工作空间可见 - + */} void; - globalParam: PipelineGlobalParam[]; + globalParam: PipelineGlobalParam[] | null; }; const GlobalParamsDrawer = forwardRef( diff --git a/react-ui/src/pages/Pipeline/editPipeline/index.jsx b/react-ui/src/pages/Pipeline/editPipeline/index.jsx index 948cd364..af9e604c 100644 --- a/react-ui/src/pages/Pipeline/editPipeline/index.jsx +++ b/react-ui/src/pages/Pipeline/editPipeline/index.jsx @@ -281,7 +281,7 @@ const EditPipeline = () => { const getFirstWorkflow = (val) => { getWorkflowById(val).then((ret) => { if (ret && ret.data) { - setGlobalParam(ret.data.global_param); + setGlobalParam(ret.data.global_param || []); } if (graph && ret.data && ret.data.dag) { getGraphData(JSON.parse(ret.data.dag)); @@ -393,6 +393,8 @@ const EditPipeline = () => { // 上下各3,左右各1 [0.5, 0], [0.5, 1], + [0, 0.5], + [1, 0.5], ] ); }, @@ -456,6 +458,7 @@ const EditPipeline = () => { anchorPointIdx: i, // flag the idx of the anchor-point circle links: 0, // cache the number of edges connected to this shape visible: false, // invisible by default, shows up when links > 1 or the node is in showAnchors state + draggable: true, }); }); return image; @@ -503,7 +506,7 @@ const EditPipeline = () => { // config the shouldBegin and shouldEnd to make sure the create-edge is began and ended at anchor-point circles { type: 'create-edge', - // trigger: 'drag', + trigger: 'drag', shouldBegin: (e) => { // avoid beginning at other shapes on the node if (e.target && e.target.get('name') !== 'anchor-point') return false; @@ -619,16 +622,24 @@ const EditPipeline = () => { fitView: true, fitViewPadding: [320, 320, 220, 320], }); - graph.on('dblclick', (e) => { - console.log(e.item); - if (e.item) { - graph.setItemState(e.item, 'nodeClicked', true); - handlerClick(e); + // graph.on('dblclick', (e) => { + // console.log(e.item); + // if (e.item) { + // graph.setItemState(e.item, 'nodeClicked', true); + // handlerClick(e); + // } + // }); + graph.on('node:click', (e) => { + console.log(e.target.get('name')); + if (e.target.get('name') === 'anchor-point') { + // create edge + } else { + if (e.item) { + graph.setItemState(e.item, 'nodeClicked', true); + handlerClick(e); + } } }); - graph.on('click', (e) => { - console.log(e.item); - }); graph.on('aftercreateedge', (e) => { // update the sourceAnchor and targetAnchor for the newly added edge graph.updateItem(e.edge, { @@ -666,6 +677,39 @@ const EditPipeline = () => { }, }); }); + graph.on('node:dragenter', (e) => { + console.log(e.target.get('name')); + console.log('node:dragenter'); + graph.setItemState(e.item, 'nodeSelected', true); + graph.updateItem(e.item, { + // 节点的样式 + style: { + stroke: '#1664ff', + }, + }); + }); + graph.on('node:dragleave', (e) => { + console.log(e.target.get('name')); + console.log('node:dragleave'); + graph.setItemState(e.item, 'nodeSelected', false); + graph.updateItem(e.item, { + // 节点的样式 + style: { + stroke: 'transparent', + }, + }); + }); + graph.on('node:dragstart', (e) => { + console.log('node:dragstart'); + graph.setItemState(e.item, 'nodeSelected', true); + graph.updateItem(e.item, { + // 节点的样式 + style: { + stroke: '#1664ff', + }, + }); + }); + graph.on('afterremoveitem', (e) => { if (e.item && e.item.source && e.item.target) { const sourceNode = graph.findById(e.item.source); diff --git a/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx b/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx index 699e6929..deb3846a 100644 --- a/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx +++ b/react-ui/src/pages/Pipeline/editPipeline/modelMenus.jsx @@ -19,7 +19,7 @@ const items = [ children: [1, 2, 3, 4, 5], }, ]; -const modelMenus = ({ onParDragEnd }) => { +const ModelMenus = ({ onParDragEnd }) => { const [modelMenusList, setModelMenusList] = useState([]); useEffect(() => { getComponentAll().then((ret) => { @@ -55,6 +55,7 @@ const modelMenus = ({ onParDragEnd }) => { {item.value && item.value.length > 0 ? item.value.map((ele) => (
{ dragEnd(e, ele); @@ -78,4 +79,4 @@ const modelMenus = ({ onParDragEnd }) => {
); }; -export default modelMenus; +export default ModelMenus; diff --git a/react-ui/src/pages/User/Login/index.tsx b/react-ui/src/pages/User/Login/index.tsx index 6aefa7ae..6e043763 100644 --- a/react-ui/src/pages/User/Login/index.tsx +++ b/react-ui/src/pages/User/Login/index.tsx @@ -246,10 +246,10 @@ const Login: React.FC = () => { style={{ height: '42px', marginRight: '10px' }} alt="" /> - 复杂智能软件 + 智能软件开发平台
- 复杂智能软件 + 智能软件开发平台 {
hello~ 欢迎登陆 - 复杂智能软件 + 智能软件开发平台
deleteById(@PathVariable("id") Integer id) { + public GenericsAjaxResult deleteById(@PathVariable("id") Integer id) throws Exception { return genericsSuccess(this.modelsService.removeById(id)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java index 5cad60c3..9e45034a 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java @@ -19,8 +19,8 @@ public class AssetIcon implements Serializable { /** * 主键 */ -@ApiModelProperty(value = "资产ID") -private Integer id; + @ApiModelProperty(value = "资产ID") + private Integer id; @ApiModelProperty(value = "资产图标名称") private String name; diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Dataset.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Dataset.java index f55cab11..1c49a7ee 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Dataset.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Dataset.java @@ -76,6 +76,13 @@ public class Dataset implements Serializable { @ApiModelProperty(value = "状态:0失效,1生效") private Integer state; + @ApiModelProperty(value = "数据集类型名字") + private String datasetTypeName; + + @ApiModelProperty(value = "数据集tag名字") + private String datasetTagName; + + public Integer getId() { return id; @@ -165,5 +172,21 @@ public class Dataset implements Serializable { this.state = state; } + public String getDatasetTypeName() { + return datasetTypeName; + } + + public String getDatasetTagName() { + return datasetTagName; + } + + public void setDatasetTagName(String datasetTagName) { + this.datasetTagName = datasetTagName; + } + + public void setDatasetTypeName(String datasetTypeName) { + this.datasetTypeName = datasetTypeName; + } + } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java index 08c5463c..981289a1 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java @@ -118,7 +118,7 @@ public class Image implements Serializable { this.updateTime = updateTime; } - // Getter 和 Setter + public Integer getVersionCount() { return versionCount; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Models.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Models.java index b79caea6..87eadc37 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Models.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Models.java @@ -52,6 +52,16 @@ public class Models implements Serializable { private Integer state; + @ApiModelProperty(value = "模型类型名") + private String modelTypeName; + + + + @ApiModelProperty(value = "模型tag名") + private String modelTagName; + + + public Integer getId() { return id; } @@ -158,5 +168,21 @@ public class Models implements Serializable { this.state = state; } + public String getModelTagName() { + return modelTagName; + } + + public void setModelTagName(String modelTagName) { + this.modelTagName = modelTagName; + } + + public String getModelTypeName() { + return modelTypeName; + } + + public void setModelTypeName(String modelTypeName) { + this.modelTypeName = modelTypeName; + } + } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java index 6e8fea20..d6379aee 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java @@ -84,5 +84,6 @@ public interface AssetIconDao { List queryByCategoryId(Integer categoryId); + AssetIcon queryByPath(String path); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java index 3dd35a39..7aa8a4ac 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java @@ -22,6 +22,15 @@ public interface AssetIconService { */ AssetIcon queryById(Integer id); + + /** + * 通过path查询单条数据 + * + * @param path 路径 + * @return 实例对象 + */ + AssetIcon queryByPath(String path); + /** * 分页查询 * diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java index 1ab61c27..0f8cc707 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DatasetService.java @@ -68,7 +68,7 @@ DatasetService { */ boolean deleteById(Integer id); - String removeById(Integer id); + String removeById(Integer id) throws Exception; ResponseEntity downloadDataset(Integer id) throws Exception; diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java index 71f94cb1..c2522728 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java @@ -64,7 +64,7 @@ public interface ModelsService { */ boolean deleteById(Integer id); - String removeById(Integer id); + String removeById(Integer id) throws Exception; ResponseEntity downloadModels(Integer id) throws Exception; diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java index 2ba4d300..09610ce8 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java @@ -2,7 +2,6 @@ package com.ruoyi.platform.service.impl; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.platform.domain.AssetIcon; -import com.ruoyi.platform.domain.Models; import com.ruoyi.platform.mapper.AssetIconDao; import com.ruoyi.platform.service.AssetIconService; import com.ruoyi.system.api.model.LoginUser; @@ -38,6 +37,12 @@ public class AssetIconServiceImpl implements AssetIconService { return this.assetIconDao.queryById(id); } + + @Override + public AssetIcon queryByPath(String path) { + return this.assetIconDao.queryByPath(path); + } + /** * 分页查询 * @@ -125,4 +130,6 @@ public class AssetIconServiceImpl implements AssetIconService { public List queryByCategoryId(Integer categoryId) { return this.assetIconDao.queryByCategoryId(categoryId); } + + } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java index 58487bd8..0120caea 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java @@ -3,10 +3,12 @@ package com.ruoyi.platform.service.impl; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.platform.annotations.CheckDuplicate; +import com.ruoyi.platform.domain.AssetIcon; import com.ruoyi.platform.domain.Dataset; import com.ruoyi.platform.domain.DatasetVersion; import com.ruoyi.platform.mapper.DatasetDao; import com.ruoyi.platform.mapper.DatasetVersionDao; +import com.ruoyi.platform.service.AssetIconService; import com.ruoyi.platform.service.DatasetService; import com.ruoyi.platform.service.DatasetVersionService; import com.ruoyi.platform.service.MinioService; @@ -58,6 +60,9 @@ public class DatasetServiceImpl implements DatasetService { @Resource private DatasetVersionService datasetVersionService; + @Resource + private AssetIconService assetIconService; + @Resource private MinioService minioService; @@ -77,7 +82,27 @@ public class DatasetServiceImpl implements DatasetService { */ @Override public Dataset queryById(Integer id) { - return this.datasetDao.queryById(id); + Dataset dataset = this.datasetDao.queryById(id); + if (dataset != null) { + String dataType = dataset.getDataType(); + String dataTag = dataset.getDataTag(); + + // 判空逻辑,只有当dataType和dataTag不为空时,才进行查询 + if (dataType != null && !dataType.isEmpty()) { + AssetIcon dataTypeAssetIcon = assetIconService.queryById(Integer.valueOf(dataType)); + if (dataTypeAssetIcon != null) { + dataset.setDatasetTypeName(dataTypeAssetIcon.getName()); + + } + } + if (dataTag != null && !dataTag.isEmpty()) { + AssetIcon dataTagAssetIcon = assetIconService.queryById(Integer.valueOf(dataTag)); + if (dataTagAssetIcon != null) { + dataset.setDatasetTagName(dataTagAssetIcon.getName()); + } + } + } + return dataset; } /** @@ -146,10 +171,10 @@ public class DatasetServiceImpl implements DatasetService { } @Override - public String removeById(Integer id) { + public String removeById(Integer id) throws Exception { Dataset dataset = this.datasetDao.queryById(id); if (dataset == null){ - return "数据集不存在"; + throw new Exception("数据集不存在"); } //判断权限,只有admin和创建者本身可以删除该数据集 @@ -157,10 +182,10 @@ public class DatasetServiceImpl implements DatasetService { String username = loginUser.getUsername(); String createdBy = dataset.getCreateBy(); if (!(StringUtils.equals(username,"admin") || StringUtils.equals(username,createdBy))){ - return "无权限删除该数据集版本"; + throw new Exception("无权限删除该数据集"); } if (datasetVersionService.queryByDatasetId(id).size()>0){ - return "请先删除该数据集的版本文件"; + throw new Exception("请先删除该数据集下的版本文件"); } dataset.setState(0); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java index 7748c954..76d510f5 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java @@ -316,10 +316,10 @@ public class ImageServiceImpl implements ImageService { String filePath = "/data/argo-workflow/" + bucketName + "/" +path; String logs2 = k8sClientUtil.executeCommand(pod,"docker load -i "+filePath); // 在容器里执行 docker tag name:tag nexus3.kube-system.svc:8083/imageName:imageTag + if (StringUtils.isNoneBlank(logs2)){ - String substring = logs2.substring(logs2.lastIndexOf(harborUrl)); - String cleanedString = substring.replaceAll("(\\r|\\n)", ""); - String tagCmd = "docker tag " + cleanedString + " " + harborUrl + "/" + repository + "/" + username + "/" + imageName + ":" + imageTag; + String substring = logs2.substring(logs2.indexOf(":")+1).trim(); + String tagCmd = "docker tag " + substring + " " + harborUrl + "/" + repository + "/" + username + "/" + imageName + ":" + imageTag; String imageUrl = harborUrl + "/" + repository + "/" + username + "/" + imageName + ":" + imageTag; String pushCmd = "docker push " + imageUrl; String sizeCmd = "docker inspect --format='{{.Size}}' " + imageUrl; diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index 653e9b76..14b1e470 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -1,10 +1,12 @@ package com.ruoyi.platform.service.impl; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.platform.domain.AssetIcon; import com.ruoyi.platform.domain.Models; import com.ruoyi.platform.domain.ModelsVersion; import com.ruoyi.platform.mapper.ModelsDao; import com.ruoyi.platform.mapper.ModelsVersionDao; +import com.ruoyi.platform.service.AssetIconService; import com.ruoyi.platform.service.MinioService; import com.ruoyi.platform.service.ModelsService; import com.ruoyi.platform.service.ModelsVersionService; @@ -57,6 +59,9 @@ public class ModelsServiceImpl implements ModelsService { @Resource private MinioService minioService; + @Resource + private AssetIconService assetIconService; + // 固定存储桶名 private final String bucketName = "platform-data"; @@ -72,7 +77,23 @@ public class ModelsServiceImpl implements ModelsService { */ @Override public Models queryById(Integer id) { - return this.modelsDao.queryById(id); + Models models = this.modelsDao.queryById(id); + String modelType = models.getModelType(); + String modelTag = models.getModelTag(); + //去资产管理表中查询对应的图标名,注意判空逻辑,只有当dataType和dataTag不为空时,才进行查询 + if(modelType != null && !modelType.isEmpty()){ + AssetIcon modelTypeAssetIcon = assetIconService.queryById(Integer.valueOf(modelType)); + if (modelTypeAssetIcon != null){ + models.setModelTypeName(modelTypeAssetIcon.getName()); + } + } + if(modelTag != null && !modelTag.isEmpty()){ + AssetIcon modelTagAssetIcon = assetIconService.queryById(Integer.valueOf(modelTag)); + if (modelTagAssetIcon != null){ + models.setModelTagName(modelTagAssetIcon.getName()); + } + } + return models; } /** @@ -137,23 +158,23 @@ public class ModelsServiceImpl implements ModelsService { } @Override - public String removeById(Integer id) { + public String removeById(Integer id) throws Exception { Models models = this.modelsDao.queryById(id); if (models == null){ - return "模型不存在"; + throw new Exception("模型不存在"); } - //判断权限,只有admin和创建者本身可以删除该数据集 + //判断权限,只有admin和创建者本身可以删除该模型 LoginUser loginUser = SecurityUtils.getLoginUser(); String username = loginUser.getUsername(); String createdBy = models.getCreateBy(); if (!(StringUtils.equals(username,"admin") || StringUtils.equals(username,createdBy))){ - return "无权限删除该模型"; + throw new Exception("无权限删除该模型"); } if (modelsVersionService.queryByModelsId(id).size()>0){ - return "请先删除该模型的版本文件"; + throw new Exception("请先删除该镜像下的版本文件"); } models.setState(0); return this.modelsDao.update(models)>0?"删除成功":"删除失败"; @@ -207,7 +228,6 @@ public class ModelsServiceImpl implements ModelsService { */ @Override public List> uploadModels(MultipartFile[] files, String uuid) throws Exception { - List> results = new ArrayList<>(); for (MultipartFile file:files) { // 构建objectName @@ -232,7 +252,6 @@ public class ModelsServiceImpl implements ModelsService { ModelsVersion version = modelsVersionService.queryByModelsVersion(modelsVersion); - String url = ""; if (version == null) { //插表,因为这里是一次直接插表所以这里定掉date,然后用DAO插入 diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml index 21422c29..119c5fa4 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml @@ -43,6 +43,13 @@ + + + insert into asset_icon(name, category_id, path, description, create_by, create_time, update_by, update_time, state) values (#{assetIcon.name}, #{assetIcon.categoryId}, #{assetIcon.path}, #{assetIcon.description}, #{assetIcon.createBy}, #{assetIcon.createTime}, #{assetIcon.updateBy}, #{assetIcon.updateTime}, #{assetIcon.state}) diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetDaoMapper.xml index d7a0ec1d..d4bae103 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DatasetDaoMapper.xml @@ -152,13 +152,13 @@ description = #{dataset.description}, - available_range = #{dataset.availableRange} - , + available_range = #{dataset.availableRange}, + data_type = #{dataset.dataType}, - data_tag = #{dataset.dataTag} + data_tag = #{dataset.dataTag}, create_by = #{dataset.createBy}, @@ -179,6 +179,7 @@ where id = #{dataset.id} + delete from dataset where id = #{id} diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsDaoMapper.xml index 672f8a37..776cbbac 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelsDaoMapper.xml @@ -154,7 +154,7 @@ description = #{models.description}, - available_range = #{models.availableRange} + available_range = #{models.availableRange}, model_type = #{models.modelType},