From ca2ef4c013501f4e0410d2a05c7e37d0ccf5725b Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 10 Aug 2026 11:42:12 +0800 Subject: [PATCH] =?UTF-8?q?2026-08-10=20=E9=A1=B9=E7=9B=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=9A=20=E5=A6=82=E6=9E=9C=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=99=BB=E9=99=86=E4=BA=BA=E6=9C=89sales=E8=A7=92=E8=89=B2?= =?UTF-8?q?=EF=BC=8C=E9=82=A3=E4=B9=88=E5=8F=AA=E6=9F=A5=E8=AF=A2=20?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=BA=20=3D=20=E5=BD=93=E5=89=8D=E7=99=BB?= =?UTF-8?q?=E9=99=86=E4=BA=BA=E7=9A=84=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/data/PlmProjectInfoData.java | 9 +++++++ .../service/impl/ProjectServiceImpl.java | 27 ++++++++++++++++++- .../spring/modules/sys/dao/SysRoleDao.java | 1 + .../resources/mapper/project/ProjectDao.xml | 6 +++++ src/main/resources/mapper/sys/SysRoleDao.xml | 7 +++++ 5 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java b/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java index eeb91ff7..6f9e8fed 100644 --- a/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java +++ b/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java @@ -29,6 +29,7 @@ public class PlmProjectInfoData extends PlmProjectInfo { private String contactName; private Integer roleId; + private Boolean salesRole; private String plmPartNo; private String ifsPartNo; @@ -131,6 +132,14 @@ public class PlmProjectInfoData extends PlmProjectInfo { this.roleId = roleId; } + public Boolean getSalesRole() { + return salesRole; + } + + public void setSalesRole(Boolean salesRole) { + this.salesRole = salesRole; + } + public String getContactName() { return contactName; } diff --git a/src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java b/src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java index 7e1302ef..b6f05d56 100644 --- a/src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java @@ -56,6 +56,8 @@ import java.util.stream.Collectors; @Service public class ProjectServiceImpl implements ProjectService { + private static final String SALES_ROLE_NAME = "sales"; + @Autowired private TransNoControlService transNoControlService; @Autowired @@ -111,6 +113,9 @@ public class ProjectServiceImpl implements ProjectService { // } // } // boolean shouldApplySuperFlagCondition = inData.getUserName() != null && !inData.getUserName().isEmpty() && !superFlag; + String currentUserName = getCurrentUserName(inData.getUserName()); + inData.setUserName(currentUserName); + inData.setSalesRole(isSalesRoleUser(currentUserName)); IPage resultList = this.projectDao.projectInfoSearch( new Page(inData.getPage(), inData.getLimit()), inData, false); @@ -612,6 +617,8 @@ public class ProjectServiceImpl implements ProjectService { String orderClause = conditionMap.get("order"); whereClause = (whereClause.isEmpty() ? "site = '" + data.getSite() + "'" : whereClause + " AND site = '" + data.getSite() + "'").trim(); orderClause = orderClause.trim(); + String currentUserName = getCurrentUserName(data.getUserName()); + boolean salesRoleUser = isSalesRoleUser(currentUserName); // List list = sysRoleDao.getSuperFlag(data.getUserId()); // boolean superFlag = false; // if (list != null) { @@ -626,7 +633,9 @@ public class ProjectServiceImpl implements ProjectService { Map params = new HashMap<>(); params.put("whereClause", whereClause); params.put("orderClause", orderClause); - params.put("userName", data.getUserName()); + params.put("userName", currentUserName); + params.put("currentUserName", currentUserName); + params.put("salesRole", salesRoleUser); params.put("site", data.getSite()); params.put("flag", false); IPage resultList = this.projectDao.projectInfoSearchByAnyField(new Page(data.getNo(), data.getSize()), params); @@ -646,4 +655,20 @@ public class ProjectServiceImpl implements ProjectService { IPage resultList = this.projectDao.projectPartSearchByAnyField(new Page(data.getNo(), data.getSize()), params); return new PageUtils(resultList); } + + private String getCurrentUserName(String fallbackUserName) { + SysUserEntity sysUserEntity = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + if (sysUserEntity != null && StringUtils.hasText(sysUserEntity.getUsername())) { + return sysUserEntity.getUsername(); + } + return fallbackUserName; + } + + private boolean isSalesRoleUser(String userName) { + if (!StringUtils.hasText(userName)) { + return false; + } + List roleList = sysRoleDao.findRoleIdByUsernameAndRoleName(userName, SALES_ROLE_NAME); + return roleList != null && !roleList.isEmpty(); + } } diff --git a/src/main/java/com/spring/modules/sys/dao/SysRoleDao.java b/src/main/java/com/spring/modules/sys/dao/SysRoleDao.java index 648b52af..e9aa411b 100644 --- a/src/main/java/com/spring/modules/sys/dao/SysRoleDao.java +++ b/src/main/java/com/spring/modules/sys/dao/SysRoleDao.java @@ -26,6 +26,7 @@ public interface SysRoleDao extends BaseMapper { List queryRoleIdByUsername(String username); List findRoleIdByUsername(@Param("username") String username,@Param("roleId") int roleId); + List findRoleIdByUsernameAndRoleName(@Param("username") String username, @Param("roleName") String roleName); List getSuperFlag(String userId); } diff --git a/src/main/resources/mapper/project/ProjectDao.xml b/src/main/resources/mapper/project/ProjectDao.xml index 26df571f..fa5da128 100644 --- a/src/main/resources/mapper/project/ProjectDao.xml +++ b/src/main/resources/mapper/project/ProjectDao.xml @@ -108,6 +108,9 @@ AND site = #{query.site} + + AND create_by = #{query.userName} + AND project_id like #{query.projectId} @@ -858,6 +861,9 @@ update_by,update_date,priority,site,id,project_desc,customer_remark,remark,need_ WHERE ${params.whereClause} + + AND create_by = #{params.currentUserName} + AND project_id in ( select project_id from AccessProject where site=#{params.site} and username=#{params.userName} and searchFlag='Y' ) diff --git a/src/main/resources/mapper/sys/SysRoleDao.xml b/src/main/resources/mapper/sys/SysRoleDao.xml index 7f48de0a..83a75fbc 100644 --- a/src/main/resources/mapper/sys/SysRoleDao.xml +++ b/src/main/resources/mapper/sys/SysRoleDao.xml @@ -23,6 +23,13 @@ inner join sys_user u on u.user_id = ur.user_id and u.username = #{username} where ur.role_id = #{roleId} +