Browse Source

2026-08-10

项目信息:
如果当前登陆人有sales角色,那么只查询 创建人 = 当前登陆人的单据
master
fengyuan_yang 1 month ago
parent
commit
ca2ef4c013
  1. 9
      src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java
  2. 27
      src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java
  3. 1
      src/main/java/com/spring/modules/sys/dao/SysRoleDao.java
  4. 6
      src/main/resources/mapper/project/ProjectDao.xml
  5. 7
      src/main/resources/mapper/sys/SysRoleDao.xml

9
src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java

@ -29,6 +29,7 @@ public class PlmProjectInfoData extends PlmProjectInfo {
private String contactName; private String contactName;
private Integer roleId; private Integer roleId;
private Boolean salesRole;
private String plmPartNo; private String plmPartNo;
private String ifsPartNo; private String ifsPartNo;
@ -131,6 +132,14 @@ public class PlmProjectInfoData extends PlmProjectInfo {
this.roleId = roleId; this.roleId = roleId;
} }
public Boolean getSalesRole() {
return salesRole;
}
public void setSalesRole(Boolean salesRole) {
this.salesRole = salesRole;
}
public String getContactName() { public String getContactName() {
return contactName; return contactName;
} }

27
src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java

@ -56,6 +56,8 @@ import java.util.stream.Collectors;
@Service @Service
public class ProjectServiceImpl implements ProjectService { public class ProjectServiceImpl implements ProjectService {
private static final String SALES_ROLE_NAME = "sales";
@Autowired @Autowired
private TransNoControlService transNoControlService; private TransNoControlService transNoControlService;
@Autowired @Autowired
@ -111,6 +113,9 @@ public class ProjectServiceImpl implements ProjectService {
// } // }
// } // }
// boolean shouldApplySuperFlagCondition = inData.getUserName() != null && !inData.getUserName().isEmpty() && !superFlag; // boolean shouldApplySuperFlagCondition = inData.getUserName() != null && !inData.getUserName().isEmpty() && !superFlag;
String currentUserName = getCurrentUserName(inData.getUserName());
inData.setUserName(currentUserName);
inData.setSalesRole(isSalesRoleUser(currentUserName));
IPage<PlmProjectInfoData> resultList = this.projectDao.projectInfoSearch( IPage<PlmProjectInfoData> resultList = this.projectDao.projectInfoSearch(
new Page<PlmProjectInfoData>(inData.getPage(), inData.getLimit()), inData, false); new Page<PlmProjectInfoData>(inData.getPage(), inData.getLimit()), inData, false);
@ -612,6 +617,8 @@ public class ProjectServiceImpl implements ProjectService {
String orderClause = conditionMap.get("order"); String orderClause = conditionMap.get("order");
whereClause = (whereClause.isEmpty() ? "site = '" + data.getSite() + "'" : whereClause + " AND site = '" + data.getSite() + "'").trim(); whereClause = (whereClause.isEmpty() ? "site = '" + data.getSite() + "'" : whereClause + " AND site = '" + data.getSite() + "'").trim();
orderClause = orderClause.trim(); orderClause = orderClause.trim();
String currentUserName = getCurrentUserName(data.getUserName());
boolean salesRoleUser = isSalesRoleUser(currentUserName);
// List<String> list = sysRoleDao.getSuperFlag(data.getUserId()); // List<String> list = sysRoleDao.getSuperFlag(data.getUserId());
// boolean superFlag = false; // boolean superFlag = false;
// if (list != null) { // if (list != null) {
@ -626,7 +633,9 @@ public class ProjectServiceImpl implements ProjectService {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("whereClause", whereClause); params.put("whereClause", whereClause);
params.put("orderClause", orderClause); 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("site", data.getSite());
params.put("flag", false); params.put("flag", false);
IPage<PlmProjectInfoData> resultList = this.projectDao.projectInfoSearchByAnyField(new Page<PlmProjectInfoData>(data.getNo(), data.getSize()), params); IPage<PlmProjectInfoData> resultList = this.projectDao.projectInfoSearchByAnyField(new Page<PlmProjectInfoData>(data.getNo(), data.getSize()), params);
@ -646,4 +655,20 @@ public class ProjectServiceImpl implements ProjectService {
IPage<PlmProjectPartData> resultList = this.projectDao.projectPartSearchByAnyField(new Page<PlmProjectPartData>(data.getNo(), data.getSize()), params); IPage<PlmProjectPartData> resultList = this.projectDao.projectPartSearchByAnyField(new Page<PlmProjectPartData>(data.getNo(), data.getSize()), params);
return new PageUtils(resultList); 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<Long> roleList = sysRoleDao.findRoleIdByUsernameAndRoleName(userName, SALES_ROLE_NAME);
return roleList != null && !roleList.isEmpty();
}
} }

1
src/main/java/com/spring/modules/sys/dao/SysRoleDao.java

@ -26,6 +26,7 @@ public interface SysRoleDao extends BaseMapper<SysRoleEntity> {
List<Long> queryRoleIdByUsername(String username); List<Long> queryRoleIdByUsername(String username);
List<Long> findRoleIdByUsername(@Param("username") String username,@Param("roleId") int roleId); List<Long> findRoleIdByUsername(@Param("username") String username,@Param("roleId") int roleId);
List<Long> findRoleIdByUsernameAndRoleName(@Param("username") String username, @Param("roleName") String roleName);
List<String> getSuperFlag(String userId); List<String> getSuperFlag(String userId);
} }

6
src/main/resources/mapper/project/ProjectDao.xml

@ -108,6 +108,9 @@
<if test="query.site != null and query.site != ''"> <if test="query.site != null and query.site != ''">
AND site = #{query.site} AND site = #{query.site}
</if> </if>
<if test="query.salesRole != null and query.salesRole and query.userName != null and query.userName != ''">
AND create_by = #{query.userName}
</if>
<if test="query.projectId != null and query.projectId != ''"> <if test="query.projectId != null and query.projectId != ''">
AND project_id like #{query.projectId} AND project_id like #{query.projectId}
</if> </if>
@ -858,6 +861,9 @@ update_by,update_date,priority,site,id,project_desc,customer_remark,remark,need_
<if test="params.whereClause != null and params.whereClause != ''"> <if test="params.whereClause != null and params.whereClause != ''">
WHERE ${params.whereClause} WHERE ${params.whereClause}
</if> </if>
<if test="params.salesRole != null and params.salesRole and params.currentUserName != null and params.currentUserName != ''">
AND create_by = #{params.currentUserName}
</if>
<if test="params.flag"> <if test="params.flag">
AND project_id in ( select project_id from AccessProject where site=#{params.site} and username=#{params.userName} and searchFlag='Y' ) AND project_id in ( select project_id from AccessProject where site=#{params.site} and username=#{params.userName} and searchFlag='Y' )
</if> </if>

7
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} inner join sys_user u on u.user_id = ur.user_id and u.username = #{username}
where ur.role_id = #{roleId} where ur.role_id = #{roleId}
</select> </select>
<select id="findRoleIdByUsernameAndRoleName" resultType="java.lang.Long">
select ur.role_id
from sys_user_role ur
inner join sys_user u on u.user_id = ur.user_id and u.username = #{username}
inner join sys_role r on r.role_id = ur.role_id
where lower(r.role_name) = lower(#{roleName})
</select>
<select id="getSuperFlag" parameterType="java.lang.String" resultType="java.lang.String"> <select id="getSuperFlag" parameterType="java.lang.String" resultType="java.lang.String">
select r.super_flag select r.super_flag
from sys_role r from sys_role r

Loading…
Cancel
Save