From 492fed0f1eb5eb30167a4517d67a1f0ac6ab82ca Mon Sep 17 00:00:00 2001 From: gjh <1421wake> Date: Tue, 10 Jun 2025 17:31:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=9F=A5=E8=AF=A2=E6=A3=80?= =?UTF-8?q?=E7=B4=A2=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0,=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=A1=B9=E7=9B=AE=E7=BB=91=E5=AE=9A=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ContractInfoController.java | 2 +- .../controller/ProjectInfoController.java | 6 +++ .../platform/service/IProjectInfoService.java | 2 + .../service/impl/ProjectInfoServiceImpl.java | 37 +++++++++++++++++-- .../impl/WorkOrderInfoServiceImpl.java | 8 ++++ 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractInfoController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractInfoController.java index eaf96fc..76e3eff 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractInfoController.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ContractInfoController.java @@ -138,7 +138,7 @@ public class ContractInfoController extends BaseController { /** - * 获取合同对应的运维单位 (乙方) + * 根据合同名称获取对应的运维单位 (乙方) * */ //@SaCheckPermission("platform:contractInfo:getIoCompany") diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java index 190f9ad..616c10a 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java @@ -139,4 +139,10 @@ public class ProjectInfoController extends BaseController { String partyB = projectInfoService.getContractPartyBNameByProjectName(projectName); return R.ok("乙方单位",partyB); } + + @GetMapping("/bindUnit") + public R bindUnit(String projectId,Long deptId ) { + projectInfoService.bindUnit(projectId,deptId); + return R.ok("项目配置相关单位成功!"); + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IProjectInfoService.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IProjectInfoService.java index 7a62605..82fb21b 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IProjectInfoService.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IProjectInfoService.java @@ -110,4 +110,6 @@ public interface IProjectInfoService { String getContractPartyBNameByContractName(String projectName); String getContractPartyBNameByProjectName(String projectName); + + void bindUnit(String projectId,Long deptId); } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectInfoServiceImpl.java index fc06f85..7e3ab86 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectInfoServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectInfoServiceImpl.java @@ -2,14 +2,19 @@ package org.dromara.platform.service.impl; import cn.hutool.core.collection.CollectionUtil; import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.dto.RoleDTO; +import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.platform.domain.Attachment; import org.dromara.platform.domain.AttachmentSerializer; import org.dromara.platform.domain.ContractInfo; @@ -23,10 +28,7 @@ import org.dromara.platform.domain.ProjectInfo; import org.dromara.platform.mapper.ProjectInfoMapper; import org.dromara.platform.service.IProjectInfoService; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 项目信息Service业务层处理 @@ -36,6 +38,7 @@ import java.util.Collection; */ @RequiredArgsConstructor @Service +@Slf4j public class ProjectInfoServiceImpl implements IProjectInfoService { private final ProjectInfoMapper baseMapper; @@ -70,6 +73,19 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { */ @Override public TableDataInfo queryPageList(ProjectInfoBo bo, PageQuery pageQuery) { + LoginUser loginUser = LoginHelper.getLoginUser(); + Set rolePermission = loginUser.getRolePermission(); + //设置权限:如果是监理和超级管理员可以访问全部的项目信息 + //其余人员只能看到自己的项目信息 + String[] requiredRoles = {"jianli", "superadmin"}; + boolean hasAnyRole = Arrays.stream(requiredRoles) + .anyMatch(rolePermission::contains); + + if (!hasAnyRole) { + log.info("非监理和管理员登录需要根据登录用户的部门id过滤项目"); + bo.setCreateDept(loginUser.getDeptId()); + } + LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); @@ -104,6 +120,7 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { lqw.eq(StringUtils.isNotBlank(bo.getIcon()), ProjectInfo::getIcon, bo.getIcon()); lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), ProjectInfo::getAttachment, bo.getAttachment()); lqw.eq(bo.getStatus() != null, ProjectInfo::getStatus, bo.getStatus()); + lqw.eq(bo.getCreateDept() != null, BaseEntity::getCreateDept, bo.getCreateDept()); return lqw; } @@ -232,4 +249,16 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { String partyB = contractInfo.getPartyB(); return partyB; } + + @Override + public void bindUnit(String projectId,Long deptId) { + LoginUser loginUser = LoginHelper.getLoginUser(); + Long userDeptId = loginUser.getDeptId(); + log.info("用户部门ID:{}",userDeptId); + // 更新项目信息 + ProjectInfo projectInfo = new ProjectInfo(); + projectInfo.setId(projectId); + projectInfo.setCreateDept(deptId); + baseMapper.updateById(projectInfo); + } } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java index d039769..aee481e 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java @@ -168,15 +168,22 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { private LambdaQueryWrapper buildQueryWrapper(WorkOrderInfoBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + //所属项目 lqw.like(StringUtils.isNotBlank(bo.getProjectName()), WorkOrderInfo::getProjectName, bo.getProjectName()); + //编号:id 主键 lqw.eq(StringUtils.isNotBlank(bo.getRepairer()), WorkOrderInfo::getRepairer, bo.getRepairer()); + lqw.eq(StringUtils.isNotBlank(bo.getId()), WorkOrderInfo::getId, bo.getId()); + //所属合同 + lqw.eq(StringUtils.isNotBlank(bo.getContractName()), WorkOrderInfo::getContractName, bo.getContractName()); lqw.eq(StringUtils.isNotBlank(bo.getRepairerId()), WorkOrderInfo::getRepairerId, bo.getRepairerId()); lqw.eq(bo.getIsAccident() != null, WorkOrderInfo::getIsAccident, bo.getIsAccident()); lqw.eq(bo.getResponseLevel() != null, WorkOrderInfo::getResponseLevel, bo.getResponseLevel()); lqw.eq(bo.getResponseTime() != null, WorkOrderInfo::getResponseTime, bo.getResponseTime()); lqw.eq(StringUtils.isNotBlank(bo.getFaultCategory()), WorkOrderInfo::getFaultCategory, bo.getFaultCategory()); lqw.eq(bo.getFaultSubcategory() != null, WorkOrderInfo::getFaultSubcategory, bo.getFaultSubcategory()); + //所属机构:organization_name lqw.eq(StringUtils.isNotBlank(bo.getOrganizationName()), WorkOrderInfo::getOrganizationName, bo.getOrganizationName()); + //故障地点:fault_location lqw.eq(StringUtils.isNotBlank(bo.getFaultLocation()), WorkOrderInfo::getFaultLocation, bo.getFaultLocation()); lqw.eq(StringUtils.isNotBlank(bo.getFaultDescription()), WorkOrderInfo::getFaultDescription, bo.getFaultDescription()); lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), WorkOrderInfo::getAttachment, bo.getAttachment()); @@ -185,6 +192,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { lqw.eq(bo.getIsDispatched() != null, WorkOrderInfo::getIsDispatched, bo.getIsDispatched()); lqw.eq(StringUtils.isNotBlank(bo.getLatitude()), WorkOrderInfo::getLatitude, bo.getLatitude()); lqw.eq(StringUtils.isNotBlank(bo.getLongitude()), WorkOrderInfo::getLongitude, bo.getLongitude()); + //当前状态:status lqw.eq(bo.getStatus() != null, WorkOrderInfo::getStatus, bo.getStatus()); // 添加按创建时间降序排序