From f9faa34486e1e4f8c9e5f6fe9666e2d4f475f3f8 Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Fri, 14 Mar 2025 18:19:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98=E3=80=81?= =?UTF-8?q?=E6=9D=90=E6=96=99=E3=80=81=E6=9C=BA=E6=A2=B0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E3=80=81=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/vo/BusMachineryDetailVo.java | 7 + .../impl/BusMachineryDetailServiceImpl.java | 15 ++ .../materials/domain/BusMaterials.java | 44 +--- .../req/materials/MaterialsCreateReq.java | 45 +--- .../req/materials/MaterialsQueryReq.java | 11 + .../req/materials/MaterialsUpdateReq.java | 45 +--- .../materials/domain/vo/BusMaterialsVo.java | 54 +---- .../service/IBusMaterialsService.java | 4 +- .../service/impl/BusMaterialsServiceImpl.java | 40 +++- .../project/domain/BusConstructionUser.java | 22 +- .../ConstructionUserCreateReq.java | 22 +- .../ConstructionUserUpdateReq.java | 22 +- .../domain/vo/BusConstructionUserVo.java | 30 ++- .../impl/BusProjectTeamMemberServiceImpl.java | 2 +- RuoYi-Vue-Plus/script/sql/xinnengyuan.sql | 42 ++-- plus-ui/.env.development | 2 +- plus-ui/.env.production | 2 +- plus-ui/index.html | 2 +- .../api/machinery/machineryDetail/types.ts | 7 + plus-ui/src/api/materials/materials/types.ts | 132 +---------- .../src/api/project/constructionUser/types.ts | 49 ++++- plus-ui/src/api/project/contractor/types.ts | 10 + .../src/layout/components/Sidebar/Logo.vue | 2 +- plus-ui/src/views/login.vue | 2 +- .../component/MachineryDetailAddDialog.vue | 3 +- .../component/MachineryDetailTable.vue | 6 +- .../src/views/materials/materials/index.vue | 134 ++++++------ .../views/project/constructionUser/index.vue | 27 ++- .../component/ContractorFileDialog.vue | 92 ++++++++ .../src/views/project/contractor/index.vue | 27 ++- plus-ui/src/views/project/project/index.vue | 23 +- .../projectTeam/component/UserListDialog.vue | 207 ++++++++---------- .../src/views/project/projectTeam/index.vue | 17 +- plus-ui/src/views/register.vue | 2 +- 34 files changed, 564 insertions(+), 587 deletions(-) create mode 100644 plus-ui/src/views/project/contractor/component/ContractorFileDialog.vue diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/domain/vo/BusMachineryDetailVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/domain/vo/BusMachineryDetailVo.java index b01f9520..ad260205 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/domain/vo/BusMachineryDetailVo.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/domain/vo/BusMachineryDetailVo.java @@ -7,10 +7,12 @@ import lombok.Data; import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.machinery.domain.BusMachineryDetail; +import org.dromara.system.domain.vo.SysOssVo; import java.io.Serial; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -82,6 +84,11 @@ public class BusMachineryDetailVo implements Serializable { @ExcelProperty(value = "图片(英文逗号分隔)") private String picture; + /** + * 图片详情列表 + */ + private List pictureList; + /** * 机械主键id */ diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/service/impl/BusMachineryDetailServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/service/impl/BusMachineryDetailServiceImpl.java index f2008348..0740f580 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/service/impl/BusMachineryDetailServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/machinery/service/impl/BusMachineryDetailServiceImpl.java @@ -23,10 +23,13 @@ import org.dromara.machinery.mapper.BusMachineryDetailMapper; import org.dromara.machinery.service.IBusMachineryDetailService; import org.dromara.machinery.service.IBusMachineryService; import org.dromara.project.service.IBusProjectService; +import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.service.ISysOssService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.List; @@ -47,6 +50,9 @@ public class BusMachineryDetailServiceImpl extends ServiceImpl picList = Arrays.stream(picture.split(",")) + .map(Long::parseLong) + .toList(); + List pictureList = ossService.listByIds(picList); + machineryDetailVo.setPictureList(pictureList); + } return machineryDetailVo; } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterials.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterials.java index 01e914ab..049a9066 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterials.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterials.java @@ -51,49 +51,9 @@ public class BusMaterials extends BaseEntity { private String typeSpecificationName; /** - * 规格型号文件路径 + * 文件对象存储id列表 */ - private String typeSpecificationUrl; - - /** - * 合格证编号名称 - */ - private String certificateConformityName; - - /** - * 合格证编号文件路径 - */ - private String certificateConformityUrl; - - /** - * 质量说明书编号 - */ - private String qualityName; - - /** - * 质量说明书文件路径 - */ - private String qualityUrl; - - /** - * 检验报告编号 - */ - private String inspectionReportName; - - /** - * 检验报告文件路径 - */ - private String inspectionReportUrl; - - /** - * 复试报告编号 - */ - private String reexamineReportName; - - /** - * 复试报告文件路径 - */ - private String reexamineReportUrl; + private String fileOssId; /** * 使用部位 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsCreateReq.java index 6322f0db..10f6bd96 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsCreateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsCreateReq.java @@ -4,6 +4,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.Map; /** * @author lcj @@ -36,49 +37,9 @@ public class MaterialsCreateReq implements Serializable { private String typeSpecificationName; /** - * 规格型号文件路径 + * 文件对象存储id列表 */ - private String typeSpecificationUrl; - - /** - * 合格证编号名称 - */ - private String certificateConformityName; - - /** - * 合格证编号文件路径 - */ - private String certificateConformityUrl; - - /** - * 质量说明书编号 - */ - private String qualityName; - - /** - * 质量说明书文件路径 - */ - private String qualityUrl; - - /** - * 检验报告编号 - */ - private String inspectionReportName; - - /** - * 检验报告文件路径 - */ - private String inspectionReportUrl; - - /** - * 复试报告编号 - */ - private String reexamineReportName; - - /** - * 复试报告文件路径 - */ - private String reexamineReportUrl; + private Map fileOssIdMap; /** * 使用部位 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsQueryReq.java index cdd63737..91515a7d 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsQueryReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsQueryReq.java @@ -6,6 +6,7 @@ import org.dromara.common.core.common.PageRequest; import java.io.Serial; import java.io.Serializable; +import java.util.Map; /** * @author lcj @@ -38,6 +39,16 @@ public class MaterialsQueryReq extends PageRequest implements Serializable { */ private Long projectId; + /** + * 规格型号名称 + */ + private String typeSpecificationName; + + /** + * 文件对象存储id列表 + */ + private Map fileOssIdMap; + /** * 使用部位 */ diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsUpdateReq.java index 1a9b2975..370e4537 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsUpdateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materials/MaterialsUpdateReq.java @@ -4,6 +4,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.Map; /** * @author lcj @@ -41,49 +42,9 @@ public class MaterialsUpdateReq implements Serializable { private String typeSpecificationName; /** - * 规格型号文件路径 + * 文件对象存储id列表 */ - private String typeSpecificationUrl; - - /** - * 合格证编号名称 - */ - private String certificateConformityName; - - /** - * 合格证编号文件路径 - */ - private String certificateConformityUrl; - - /** - * 质量说明书编号 - */ - private String qualityName; - - /** - * 质量说明书文件路径 - */ - private String qualityUrl; - - /** - * 检验报告编号 - */ - private String inspectionReportName; - - /** - * 检验报告文件路径 - */ - private String inspectionReportUrl; - - /** - * 复试报告编号 - */ - private String reexamineReportName; - - /** - * 复试报告文件路径 - */ - private String reexamineReportUrl; + private Map fileOssIdMap; /** * 使用部位 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsVo.java index d4fe4a37..8568cad0 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsVo.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsVo.java @@ -10,6 +10,7 @@ import org.dromara.materials.domain.BusMaterials; import java.io.Serial; import java.io.Serializable; +import java.util.Map; /** @@ -63,58 +64,9 @@ public class BusMaterialsVo implements Serializable { private String typeSpecificationName; /** - * 规格型号文件路径 + * 文件详情列表 */ - @ExcelProperty(value = "规格型号文件路径") - private String typeSpecificationUrl; - - /** - * 合格证编号名称 - */ - @ExcelProperty(value = "合格证编号名称") - private String certificateConformityName; - - /** - * 合格证编号文件路径 - */ - @ExcelProperty(value = "合格证编号文件路径") - private String certificateConformityUrl; - - /** - * 质量说明书编号 - */ - @ExcelProperty(value = "质量说明书编号") - private String qualityName; - - /** - * 质量说明书文件路径 - */ - @ExcelProperty(value = "质量说明书文件路径") - private String qualityUrl; - - /** - * 检验报告编号 - */ - @ExcelProperty(value = "检验报告编号") - private String inspectionReportName; - - /** - * 检验报告文件路径 - */ - @ExcelProperty(value = "检验报告文件路径") - private String inspectionReportUrl; - - /** - * 复试报告编号 - */ - @ExcelProperty(value = "复试报告编号") - private String reexamineReportName; - - /** - * 复试报告文件路径 - */ - @ExcelProperty(value = "复试报告文件路径") - private String reexamineReportUrl; + private Map fileOssMap; /** * 使用部位 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsService.java index 4a8d90c0..74c0a0d7 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsService.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsService.java @@ -72,10 +72,10 @@ public interface IBusMaterialsService extends IService { /** * 获取材料视图 * - * @param Materials 材料 + * @param materials 材料 * @return 材料视图 */ - BusMaterialsVo getBusMaterialsVo(BusMaterials Materials); + BusMaterialsVo getBusMaterialsVo(BusMaterials materials); /** * 构建查询条件封装 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsServiceImpl.java index b4fcd720..3dea18e5 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusMaterialsServiceImpl.java @@ -2,6 +2,8 @@ package org.dromara.materials.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -13,6 +15,7 @@ import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.ObjectUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.sql.SqlUtil; +import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.materials.domain.BusMaterials; import org.dromara.materials.domain.BusMaterialsInventory; @@ -30,7 +33,9 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 材料名称Service业务层处理 @@ -64,7 +69,11 @@ public class BusMaterialsServiceImpl extends ServiceImpl fileOssIdList = req.getFileOssIdMap(); + String fileOssIdStr = JsonUtils.toJsonString(fileOssIdList); + materials.setFileOssId(fileOssIdStr); // 数据校验 validEntityBeforeSave(materials); // 写入数据库 @@ -127,6 +140,10 @@ public class BusMaterialsServiceImpl extends ServiceImpl fileOssIdList = req.getFileOssIdMap(); + String fileOssIdStr = JSONUtil.toJsonStr(fileOssIdList); + materials.setFileOssId(fileOssIdStr); // 数据校验 validEntityBeforeSave(materials); // 判断是否存在 @@ -196,22 +213,31 @@ public class BusMaterialsServiceImpl extends ServiceImpl fileOssMap = new HashMap<>(); + JSONObject parseObj = JSONUtil.parseObj(fileOssId); + parseObj.forEach((key, value) -> fileOssMap.put(key, (Long) value)); + materialsVo.setFileOssMap(fileOssMap); return materialsVo; } @@ -232,6 +258,7 @@ public class BusMaterialsServiceImpl extends ServiceImpl() .eq(BusProjectTeamMember::getMemberId, projectTeamMember.getMemberId())); if (teamMember != null) { - throw new ServiceException("当前用户以关联编号为:" + teamMember.getTeamId() + "的班组", HttpStatus.CONFLICT); + throw new ServiceException("当前用户已关联编号为:" + teamMember.getTeamId() + "的班组", HttpStatus.CONFLICT); } // 操作数据库 boolean save = this.save(projectTeamMember); diff --git a/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql b/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql index 2a83bfa3..60006705 100644 --- a/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql +++ b/RuoYi-Vue-Plus/script/sql/xinnengyuan.sql @@ -80,31 +80,23 @@ CREATE TABLE `bus_company` DROP TABLE IF EXISTS `bus_materials`; CREATE TABLE `bus_materials` ( - `id` bigint not null auto_increment, - `materials_name` varchar(64) null comment '材料名称', - `company_id` bigint null comment '公司id', - `project_id` bigint null comment '项目id', - `type_specification_name` varchar(64) null comment '规格型号名称', - `type_specification_url` varchar(255) null comment '规格型号文件路径', - `certificate_conformity_name` varchar(64) null comment '合格证编号名称', - `certificate_conformity_url` varchar(255) null comment '合格证编号文件路径', - `quality_name` varchar(64) null comment '质量说明书编号', - `quality_url` varchar(255) null comment '质量说明书文件路径', - `inspection_report_name` varchar(64) null comment '检验报告编号', - `inspection_report_url` varchar(255) null comment '检验报告文件路径', - `reexamine_report_name` varchar(64) null comment '复试报告编号', - `reexamine_report_url` varchar(255) null comment '复试报告文件路径', - `use_part` varchar(64) null comment '使用部位', - `weight_id` varchar(64) null comment '计量单位', - `remark` varchar(255) null comment '备注', - `quantity_count` varchar(64) null comment '预计材料数量', - `status` char(1) default '0' null comment '状态(0正常 1停用)', - `create_by` varchar(64) null comment '创建者', - `update_by` varchar(64) null comment '更新者', - `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', - `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', - `deleted_at` datetime null comment '删除时间', - `is_delete` tinyint(4) default 0 not null comment '是否删除(0正常 1删除)', + `id` bigint not null auto_increment, + `materials_name` varchar(64) null comment '材料名称', + `company_id` bigint null comment '公司id', + `project_id` bigint null comment '项目id', + `type_specification_name` varchar(64) null comment '规格型号名称', + `file_url` varchar(1024) null comment '文件地址列表(字典materials_file_type)', + `use_part` varchar(64) null comment '使用部位', + `weight_id` varchar(64) null comment '计量单位', + `remark` varchar(255) null comment '备注', + `quantity_count` varchar(64) null comment '预计材料数量', + `status` char(1) default '0' null comment '状态(0正常 1停用)', + `create_by` varchar(64) null comment '创建者', + `update_by` varchar(64) null comment '更新者', + `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', + `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', + `deleted_at` datetime null comment '删除时间', + `is_delete` tinyint(4) default 0 not null comment '是否删除(0正常 1删除)', PRIMARY KEY (`id`) USING BTREE, INDEX `idx_project_id` (`project_id` ASC) USING BTREE comment '项目id' ) ENGINE = InnoDB diff --git a/plus-ui/.env.development b/plus-ui/.env.development index 94f3f5ac..e5ac0551 100644 --- a/plus-ui/.env.development +++ b/plus-ui/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = RuoYi-Vue-Plus多租户管理系统 +VITE_APP_TITLE = 新能源项目管理平台 # 开发环境配置 VITE_APP_ENV = 'development' diff --git a/plus-ui/.env.production b/plus-ui/.env.production index 5cd51d22..0eb59247 100644 --- a/plus-ui/.env.production +++ b/plus-ui/.env.production @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = RuoYi-Vue-Plus多租户管理系统 +VITE_APP_TITLE = 新能源项目管理平台 # 生产环境配置 VITE_APP_ENV = 'production' diff --git a/plus-ui/index.html b/plus-ui/index.html index aa1c86d9..8b09d746 100644 --- a/plus-ui/index.html +++ b/plus-ui/index.html @@ -6,7 +6,7 @@ - RuoYi-Vue-Plus多租户管理系统 + 新能源项目管理平台 - @@ -80,6 +70,7 @@ + - + + + @@ -208,12 +212,11 @@ const handleUpdate = async (row?: ProjectTeamVO) => { dialog.title = '修改项目班组'; }; -/** */ +const visible = ref(false); +/** 班组成员操作 */ const handleUserList = (row?: ProjectTeamVO) => { - if (userListVisible.value) { - currentRow.value = row; - userListVisible.value.openModal(); - } + currentRow.value = row; + visible.value = true; }; /** 提交按钮 */ diff --git a/plus-ui/src/views/register.vue b/plus-ui/src/views/register.vue index f1d1e5a7..692e1a38 100644 --- a/plus-ui/src/views/register.vue +++ b/plus-ui/src/views/register.vue @@ -2,7 +2,7 @@
-

RuoYi-Vue-Plus多租户管理系统

+

新能源项目管理平台