From 86d6bc1d01ddad6e02bec0f6855f33f7d653c05b Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Fri, 7 Mar 2025 10:24:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E6=9D=90=E6=96=99=E6=A8=A1=E5=9D=97=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/materials/domain/BusCompany.java | 11 +- .../materials/domain/BusMaterials.java | 4 +- .../domain/BusMaterialsInventory.java | 4 +- .../domain/req/company/CompanyCreateReq.java | 2 +- .../domain/req/company/CompanyQueryReq.java | 4 +- .../domain/req/company/CompanyUpdateReq.java | 4 +- .../req/materials/MaterialsCreateReq.java | 2 +- .../req/materials/MaterialsQueryReq.java | 4 +- .../req/materials/MaterialsUpdateReq.java | 4 +- .../MaterialsInventoryCreateReq.java | 9 +- .../MaterialsInventoryQueryReq.java | 4 +- .../MaterialsInventoryUpdateReq.java | 4 +- .../materials/domain/vo/BusCompanyVo.java | 2 +- .../domain/vo/BusMaterialsInventoryVo.java | 10 +- .../materials/domain/vo/BusMaterialsVo.java | 2 +- .../IBusMaterialsInventoryService.java | 8 + .../service/impl/BusCompanyServiceImpl.java | 18 +- .../BusMaterialsInventoryServiceImpl.java | 69 +++++- .../service/impl/BusMaterialsServiceImpl.java | 12 +- .../project/ProjectBatchByProjectListReq.java | 2 +- .../domain/req/project/ProjectCreateReq.java | 2 +- .../domain/req/project/ProjectQueryReq.java | 2 +- .../domain/req/project/ProjectUpdateReq.java | 2 +- .../UserProjectRelevancyCreateReq.java | 2 +- .../UserProjectRelevancyQueryReq.java | 2 +- .../UserProjectRelevancyUpdateReq.java | 2 +- .../LoginUserProjectRelevancyResp.java | 2 +- .../project/service/IProjectService.java | 33 +-- .../service/impl/ProjectServiceImpl.java | 228 ++++++++++-------- 29 files changed, 289 insertions(+), 165 deletions(-) diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusCompany.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusCompany.java index f3e65e0d..9993ca0e 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusCompany.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusCompany.java @@ -1,13 +1,14 @@ package org.dromara.materials.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; +import java.util.Date; /** * 公司对象 bus_company @@ -42,7 +43,7 @@ public class BusCompany extends BaseEntity { /** * 帐号状态(0正常 1停用) */ - private String status; + private Long status; /** * 备注 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 815c4fa1..310efb5d 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 @@ -4,7 +4,9 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serial; @@ -117,7 +119,7 @@ public class BusMaterials extends BaseEntity { /** * 状态(0正常 1停用) */ - private String status; + private Long status; /** * 删除时间 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterialsInventory.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterialsInventory.java index 14868444..94335022 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterialsInventory.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/BusMaterialsInventory.java @@ -4,7 +4,9 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serial; @@ -42,7 +44,7 @@ public class BusMaterialsInventory extends BaseEntity { /** * 出入库状态 */ - private String outPut; + private Long outPut; /** * 出/入库的数量 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyCreateReq.java index 1b3fe634..5825cf02 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyCreateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyCreateReq.java @@ -6,7 +6,7 @@ import java.io.Serial; import java.io.Serializable; /** - * @author lilemy + * @author lcj * @date 2025/3/5 14:05 */ @Data diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyQueryReq.java index 79ce2b9b..5dbf7ed2 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyQueryReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyQueryReq.java @@ -8,7 +8,7 @@ import java.io.Serial; import java.io.Serializable; /** - * @author lilemy + * @author lcj * @date 2025/3/5 14:31 */ @EqualsAndHashCode(callSuper = true) @@ -36,7 +36,7 @@ public class CompanyQueryReq extends PageRequest implements Serializable { /** * 帐号状态(0正常 1停用) */ - private String status; + private Long status; /** * 备注 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyUpdateReq.java index 5ba7222b..e0dfff54 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyUpdateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/company/CompanyUpdateReq.java @@ -6,7 +6,7 @@ import java.io.Serial; import java.io.Serializable; /** - * @author lilemy + * @author lcj * @date 2025/3/5 15:04 */ @Data @@ -33,7 +33,7 @@ public class CompanyUpdateReq implements Serializable { /** * 帐号状态(0正常 1停用) */ - private String status; + private Long status; /** * 备注 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 97586072..6322f0db 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 @@ -6,7 +6,7 @@ import java.io.Serial; import java.io.Serializable; /** - * @author lilemy + * @author lcj * @date 2025/3/5 14:05 */ @Data 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 8982fedf..0b39cacc 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 @@ -8,7 +8,7 @@ import java.io.Serial; import java.io.Serializable; /** - * @author lilemy + * @author lcj * @date 2025/3/5 14:31 */ @EqualsAndHashCode(callSuper = true) @@ -61,6 +61,6 @@ public class MaterialsQueryReq extends PageRequest implements Serializable { /** * 状态(0正常 1停用) */ - private String status; + private Long status; } 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 b8e0947e..128e29ef 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 @@ -6,7 +6,7 @@ import java.io.Serial; import java.io.Serializable; /** - * @author lilemy + * @author lcj * @date 2025/3/5 15:04 */ @Data @@ -108,6 +108,6 @@ public class MaterialsUpdateReq implements Serializable { /** * 状态(0正常 1停用) */ - private String status; + private Long status; } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryCreateReq.java index b58f4ed9..d1bb5f0a 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryCreateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryCreateReq.java @@ -7,7 +7,7 @@ import java.io.Serializable; import java.util.Date; /** - * @author lilemy + * @author lcj * @date 2025/3/5 14:05 */ @Data @@ -29,7 +29,7 @@ public class MaterialsInventoryCreateReq implements Serializable { /** * 出入库状态 */ - private String outPut; + private Long outPut; /** * 出/入库的数量 @@ -46,6 +46,11 @@ public class MaterialsInventoryCreateReq implements Serializable { */ private Long residue; + /** + * 操作人(入库人、领料人) + */ + private String operator; + /** * 材料出入证明 */ diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryQueryReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryQueryReq.java index 4c90058d..27c90aad 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryQueryReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryQueryReq.java @@ -9,7 +9,7 @@ import java.io.Serializable; import java.util.Date; /** - * @author lilemy + * @author lcj * @date 2025/3/5 14:31 */ @EqualsAndHashCode(callSuper = true) @@ -37,7 +37,7 @@ public class MaterialsInventoryQueryReq extends PageRequest implements Serializa /** * 出入库状态 */ - private String outPut; + private Long outPut; /** * 出/入库的数量 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryUpdateReq.java index 7d834697..8dd34109 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryUpdateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/req/materialsinventory/MaterialsInventoryUpdateReq.java @@ -7,7 +7,7 @@ import java.io.Serializable; import java.util.Date; /** - * @author lilemy + * @author lcj * @date 2025/3/5 15:04 */ @Data @@ -34,7 +34,7 @@ public class MaterialsInventoryUpdateReq implements Serializable { /** * 出入库状态 */ - private String outPut; + private Long outPut; /** * 出/入库的数量 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusCompanyVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusCompanyVo.java index 7e696ee7..c0d5c5c1 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusCompanyVo.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusCompanyVo.java @@ -53,7 +53,7 @@ public class BusCompanyVo implements Serializable { */ @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "0=正常,1=停用") - private String status; + private Long status; /** * 备注 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsInventoryVo.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsInventoryVo.java index 277136dc..961cbdbd 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsInventoryVo.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/domain/vo/BusMaterialsInventoryVo.java @@ -1,6 +1,7 @@ package org.dromara.materials.domain.vo; import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.materials.domain.BusMaterialsInventory; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; @@ -15,7 +16,6 @@ import java.io.Serializable; import java.util.Date; - /** * 材料出/入库视图对象 bus_materials_inventory * @@ -42,6 +42,12 @@ public class BusMaterialsInventoryVo implements Serializable { @ExcelProperty(value = "材料id") private Long materialsId; + /** + * 材料信息 + */ + @ExcelProperty(value = "材料信息") + private BusMaterialsVo materialsVo; + /** * 项目id */ @@ -52,7 +58,7 @@ public class BusMaterialsInventoryVo implements Serializable { * 出入库状态 */ @ExcelProperty(value = "出入库状态") - private String outPut; + private Long outPut; /** * 出/入库的数量 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..353d180f 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 @@ -145,7 +145,7 @@ public class BusMaterialsVo implements Serializable { */ @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "0=正常,1=停用") - private String status; + private Long status; } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java index baa9a38b..2171ce12 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/IBusMaterialsInventoryService.java @@ -69,6 +69,14 @@ public interface IBusMaterialsInventoryService extends IService ids, Boolean isValid); + /** + * 获取材料出/入库视图对象 + * + * @param MaterialsInventory 材料出/入库对象 + * @return 材料出/入库视图对象 + */ + BusMaterialsInventoryVo getMaterialsInventoryVo(BusMaterialsInventory MaterialsInventory); + /** * 构建查询条件封装 * diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java index 21c0ae78..0991722c 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/BusCompanyServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.materials.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -19,6 +20,7 @@ import org.dromara.materials.domain.req.company.CompanyUpdateReq; import org.dromara.materials.domain.vo.BusCompanyVo; import org.dromara.materials.mapper.BusCompanyMapper; import org.dromara.materials.service.IBusCompanyService; +import org.dromara.project.service.IProjectService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -38,6 +40,9 @@ public class BusCompanyServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BusCompany::getCompanyName, companyName); + long count = this.count(queryWrapper); + if (count > 0) { + throw new ServiceException("项目名重复", HttpStatus.BAD_REQUEST); + } if (projectId == null) { throw new ServiceException("项目 id 不能为空", HttpStatus.BAD_REQUEST); } + // 查询项目是否存在 + if (projectService.getById(projectId) == null) { + throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND); + } } /** @@ -165,7 +181,7 @@ public class BusCompanyServiceImpl extends ServiceImpl queryList(MaterialsInventoryQueryReq req) { QueryWrapper queryWrapper = this.getQueryWrapper(req); - return baseMapper.selectVoList(queryWrapper); + List list = this.list(queryWrapper); + return list.stream().map(this::getMaterialsInventoryVo).toList(); } /** @@ -124,7 +137,25 @@ public class BusMaterialsInventoryServiceImpl extends ServiceImpl 0; } + /** + * 获取材料出/入库视图对象 + * + * @param MaterialsInventory 材料出/入库对象 + * @return 材料出/入库视图对象 + */ + @Override + public BusMaterialsInventoryVo getMaterialsInventoryVo(BusMaterialsInventory MaterialsInventory) { + // 对象转封装类 + BusMaterialsInventoryVo materialsInventoryVo = new BusMaterialsInventoryVo(); + if (MaterialsInventory == null) { + return materialsInventoryVo; + } + BeanUtils.copyProperties(MaterialsInventory, materialsInventoryVo); + // 关联查询项目信息 + Long materialsId = MaterialsInventory.getMaterialsId(); + if (materialsId != null) { + materialsInventoryVo.setMaterialsVo(materialsService.queryById(materialsId)); + } + return materialsInventoryVo; + } + /** * 构建查询条件封装 * @@ -158,7 +211,7 @@ public class BusMaterialsInventoryServiceImpl extends ServiceImpl 封装对象列表 - List materialsInventoryVoList = materialsInventoryList.stream().map(materialsInventory -> { - BusMaterialsInventoryVo materialsInventoryVo = new BusMaterialsInventoryVo(); - BeanUtils.copyProperties(materialsInventory, materialsInventoryVo); - return materialsInventoryVo; - }).toList(); + List materialsInventoryVoList = materialsInventoryList.stream().map(this::getMaterialsInventoryVo).toList(); materialsInventoryVoPage.setRecords(materialsInventoryVoList); return materialsInventoryVoPage; } 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 a00474ca..b96bbd3b 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 @@ -21,6 +21,7 @@ import org.dromara.materials.domain.vo.BusMaterialsVo; import org.dromara.materials.mapper.BusMaterialsMapper; import org.dromara.materials.service.IBusCompanyService; import org.dromara.materials.service.IBusMaterialsService; +import org.dromara.project.service.IProjectService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -44,6 +45,9 @@ public class BusMaterialsServiceImpl extends ServiceImpl { */ ProjectVo getProjectVo(Project project); - /** - * 获取项目查询条件封装 - * - * @param req 查询条件 - * @return 查询条件封装 - */ - QueryWrapper getQueryWrapper(ProjectQueryReq req); - /** * 分页查询项目列表 * @@ -60,14 +52,6 @@ public interface IProjectService extends IService { */ List queryList(ProjectQueryReq req); - /** - * 获取项目分页对象视图 - * - * @param projectPage 项目分页对象 - * @return 项目分页对象视图 - */ - Page getProjectVoPage(Page projectPage); - /** * 新增项目 * @@ -92,4 +76,21 @@ public interface IProjectService extends IService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取项目查询条件封装 + * + * @param req 查询条件 + * @return 查询条件封装 + */ + QueryWrapper getQueryWrapper(ProjectQueryReq req); + + /** + * 获取项目分页对象视图 + * + * @param projectPage 项目分页对象 + * @return 项目分页对象视图 + */ + Page getProjectVoPage(Page projectPage); + } diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java index d7f28bb6..09af58a4 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/ProjectServiceImpl.java @@ -68,6 +68,132 @@ public class ProjectServiceImpl extends ServiceImpl return projectVo; } + /** + * 分页查询项目列表 + * + * @param req 查询条件 + * @return 项目分页列表 + */ + @Override + public Page queryPageList(ProjectQueryReq req) { + long current = req.getCurrent(); + long size = req.getPageSize(); + // 查询数据库 + Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); + return this.getProjectVoPage(result); + } + + /** + * 查询符合条件的项目列表 + * + * @param req 查询条件 + * @return 项目列表 + */ + @Override + public List queryList(ProjectQueryReq req) { + QueryWrapper queryWrapper = this.getQueryWrapper(req); + return baseMapper.selectVoList(queryWrapper); + } + + /** + * 新增项目 + * + * @param dto 项目 + * @return 新项目 id + */ + @Override + public Long insertByBo(ProjectCreateReq dto) { + // 将实体类和 DTO 进行转换 + Project project = new Project(); + BeanUtils.copyProperties(dto, project); + // 数据校验 + validEntityBeforeSave(project); + // 写入数据库 + boolean save = this.save(project); + if (!save) { + throw new ServiceException("新增项目失败,数据库异常", HttpStatus.ERROR); + } + Long projectId = project.getId(); + Long userId = LoginHelper.getUserId(); + // 同步保存用户与项目关联 + UserProjectRelevancy userProjectRelevancy = new UserProjectRelevancy(); + userProjectRelevancy.setUserId(userId); + userProjectRelevancy.setProjectId(projectId); + boolean saveRelevancy = userProjectRelevancyService.save(userProjectRelevancy); + if (!saveRelevancy) { + throw new ServiceException("新增用户与项目关联失败,数据库异常", HttpStatus.ERROR); + } + // 返回新写入的数据 projectId + return projectId; + } + + /** + * 修改项目 + * + * @param req 项目 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProjectUpdateReq req) { + // 将实体类和 DTO 进行转换 + Project project = new Project(); + BeanUtils.copyProperties(req, project); + // 数据校验 + validEntityBeforeSave(project); + // 权限校验 + validPermission(project); + // 判断是否存在 + Project oldProject = this.getById(project.getId()); + if (oldProject == null) { + throw new ServiceException("修改项目失败,数据不存在", HttpStatus.NOT_FOUND); + } + // 操作数据库 + return this.updateById(project); + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(Project entity) { + // TODO 做一些数据校验,如唯一约束 + String projectName = entity.getProjectName(); + if (StringUtils.isBlank(projectName)) { + throw new ServiceException("项目名称不能为空", HttpStatus.BAD_REQUEST); + } + } + + /** + * 权限判断 + */ + private void validPermission(Project entity) { + Long entityId = entity.getId(); + // 获取当前登录用户 + Long userId = LoginHelper.getUserId(); + // 判断是否存在项目与登录用户关联 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_id", entityId); + queryWrapper.eq("user_id", userId); + if (userProjectRelevancyService.count(queryWrapper) <= 0) { + throw new ServiceException("当前用户无权限操作", HttpStatus.FORBIDDEN); + } + } + + /** + * 校验并批量删除项目信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + + } + return baseMapper.deleteByIds(ids) > 0; + } + /** * 获取项目查询条件封装 * @@ -127,32 +253,6 @@ public class ProjectServiceImpl extends ServiceImpl return queryWrapper; } - /** - * 分页查询项目列表 - * - * @param req 查询条件 - * @return 项目分页列表 - */ - @Override - public Page queryPageList(ProjectQueryReq req) { - long current = req.getCurrent(); - long size = req.getPageSize(); - // 查询数据库 - Page result = this.page(new Page<>(current, size), this.getQueryWrapper(req)); - return this.getProjectVoPage(result); - } - - /** - * 查询符合条件的项目列表 - * - * @param req 查询条件 - * @return 项目列表 - */ - @Override - public List queryList(ProjectQueryReq req) { - QueryWrapper queryWrapper = this.getQueryWrapper(req); - return baseMapper.selectVoList(queryWrapper); - } @Override public Page getProjectVoPage(Page projectPage) { @@ -167,80 +267,4 @@ public class ProjectServiceImpl extends ServiceImpl return projectVoPage; } - /** - * 新增项目 - * - * @param dto 项目 - * @return 新项目 id - */ - @Override - public Long insertByBo(ProjectCreateReq dto) { - // 将实体类和 DTO 进行转换 - Project project = new Project(); - BeanUtils.copyProperties(dto, project); - // 数据校验 - validEntityBeforeSave(project); - // 写入数据库 - boolean save = this.save(project); - if (!save) { - throw new ServiceException("新增项目失败,数据库异常", HttpStatus.ERROR); - } - Long projectId = project.getId(); - Long userId = LoginHelper.getUserId(); - // 同步保存用户与项目关联 - UserProjectRelevancy userProjectRelevancy = new UserProjectRelevancy(); - userProjectRelevancy.setUserId(userId); - userProjectRelevancy.setProjectId(projectId); - boolean saveRelevancy = userProjectRelevancyService.save(userProjectRelevancy); - if (!saveRelevancy) { - throw new ServiceException("新增用户与项目关联失败,数据库异常", HttpStatus.ERROR); - } - // 返回新写入的数据 projectId - return projectId; - } - - /** - * 修改项目 - * - * @param req 项目 - * @return 是否修改成功 - */ - @Override - public Boolean updateByBo(ProjectUpdateReq req) { - // 将实体类和 DTO 进行转换 - Project project = new Project(); - BeanUtils.copyProperties(req, project); - // 数据校验 - validEntityBeforeSave(project); - // 判断是否存在 - Project oldProject = this.getById(project.getId()); - if (oldProject == null) { - throw new ServiceException("修改项目失败,数据不存在", HttpStatus.NOT_FOUND); - } - // 操作数据库 - return this.updateById(project); - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(Project entity) { - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 校验并批量删除项目信息 - * - * @param ids 待删除的主键集合 - * @param isValid 是否进行有效性校验 - * @return 是否删除成功 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - - } - return baseMapper.deleteByIds(ids) > 0; - } }