参数收集清单、未符合项viewer角色下查找数据
This commit is contained in:
+3
@@ -301,4 +301,7 @@ public interface ISysUserService extends IService<SysUser> {
|
||||
boolean isRegulationOwner(LoginUser currentUser);
|
||||
|
||||
void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List<ProjectUserBrand> projectUserBrandList, List<ProjectUserDutyTerritory> projectUserDutyTerritoryList, String userId);
|
||||
|
||||
boolean isViewer(String userId);
|
||||
|
||||
}
|
||||
|
||||
+13
@@ -749,4 +749,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewer(String userId) {
|
||||
boolean boo = false;
|
||||
List<SysRole> roles = sysRoleMapper.getRoleByUserId(userId);
|
||||
if (ObjectUtils.isNotEmpty(roles)) {
|
||||
List<String> roleCodes = roles.stream().map(SysRole::getRoleCode).collect(Collectors.toList());
|
||||
if (ObjectUtils.isNotEmpty(roleCodes) && roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) {
|
||||
boo = true;
|
||||
}
|
||||
}
|
||||
return boo;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -15,7 +15,8 @@ public enum CollectManifestUserTypeEnum {
|
||||
STUDIO("R&H Studio","R&H Studio","studio"),
|
||||
MANAGER("R&H Manager","R&H Manager","manager"),
|
||||
ADMIN("系统","Administrator","admin"),
|
||||
GUEST("游客", "Guest","guest");
|
||||
GUEST("游客", "Guest","guest"),
|
||||
VIEWER("Viewer", "Viewer","viewer");
|
||||
|
||||
String name;
|
||||
String enName;
|
||||
|
||||
+27
-5
@@ -60,10 +60,7 @@ import com.jero.modules.system.entity.SysAnnouncement;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.entity.SysUserRole;
|
||||
import com.jero.modules.system.service.ISysAnnouncementService;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysUserRoleService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.service.*;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -165,6 +162,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
@Value(value = "${jero.backUrl}")
|
||||
private String backUrl;
|
||||
|
||||
@Autowired
|
||||
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -362,7 +362,16 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
paramsCollectManifestEO.setDreForAuth(loginUser.getUsername());
|
||||
}*/ else if ("guest".equals(userTypes)) {
|
||||
return page;
|
||||
}
|
||||
} else if (CollectManifestUserTypeEnum.VIEWER.getValue().equals(userTypes)) {
|
||||
List<String> dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId());
|
||||
queryWrapper.and(q -> {
|
||||
q.eq("sdt", loginUser.getUsername());
|
||||
q.or().eq("dre", loginUser.getUsername());
|
||||
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
|
||||
q.or().in("duty_territory", dutyTerritoryList);
|
||||
}
|
||||
});
|
||||
}
|
||||
// IPage pageInfo = paramsCollectManifestEOMapper.pageInfo(page, paramsCollectManifestEO); // 查询固定列
|
||||
IPage pageInfo = page(page, queryWrapper); // 查询固定列
|
||||
List<ParamsCollectManifestEO> list = pageInfo.getRecords(); // 查询固定列
|
||||
@@ -1215,6 +1224,19 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
}
|
||||
}
|
||||
|
||||
//判断当前用户是否是viewer
|
||||
boolean viewer = sysUserService.isViewer(loginUser.getId());
|
||||
if (viewer) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
map.put("label", CollectManifestUserTypeEnum.VIEWER.getName());
|
||||
} else {
|
||||
map.put("label", CollectManifestUserTypeEnum.VIEWER.getEnName());
|
||||
}
|
||||
map.put("value", CollectManifestUserTypeEnum.VIEWER.getValue());
|
||||
userTypeList.add(map);
|
||||
}
|
||||
|
||||
return userTypeList;
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -14,4 +14,7 @@ import java.util.List;
|
||||
public interface NcrTrackMapper extends BaseMapper<NcrTrackVO> {
|
||||
|
||||
List<NcrTrackVO> getInfoList(@Param("ncrTrackVO") NcrTrackVO ncrTrackVO);
|
||||
|
||||
List<NcrTrackVO> getViewerInfoList(@Param("ncrTrackVO") NcrTrackVO ncrTrackVO,@Param("list") List<String> list);
|
||||
|
||||
}
|
||||
|
||||
+52
@@ -93,4 +93,56 @@
|
||||
order by pli.create_time desc
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getViewerInfoList" resultMap="NcrTrackVOResultMap">
|
||||
SELECT
|
||||
pni.project_name,plb.target_market,
|
||||
pli.serial_number,pli.title,pli.duty_territory,pli.create_time,pli.project_library_id,
|
||||
pti.design_flow_task_status,pti.prehomo_flow_task_status,pti.verify_flow_task_status,pti.design_p_id,pti.prehomo_p_id,pti.verify_p_id,pti.id,pti.project_laws_inventory_id,
|
||||
pli.design_initiator_id,pli.design_duty_id,pli.prehomo_initiator_id,pli.prehomo_duty_id,pli.verify_initiator_id,pli.verify_duty_id
|
||||
|
||||
FROM project_task_inventory pti
|
||||
left join project_laws_inventory pli on pti.project_laws_inventory_id = pli.id
|
||||
left join project_library_base plb on plb.id = pli.project_library_id
|
||||
left join project_name_info pni on pni.id = plb.project_name_id
|
||||
left join project_task_inventory_detail ptid on ptid.project_task_inventory_id = pti.project_laws_inventory_id
|
||||
|
||||
where
|
||||
<if test="ncrTrackVO.projectLibraryId != null and ncrTrackVO.projectLibraryId != ''">
|
||||
plb.id =#{ncrTrackVO.projectLibraryId}
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.serialNumber != null and ncrTrackVO.serialNumber != ''">
|
||||
pli.serial_number like concat(concat('%',#{ncrTrackVO.serialNumber}),'%')
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.title != null and ncrTrackVO.title != ''">
|
||||
pli.title like concat(concat('%',#{ncrTrackVO.title}),'%')
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.projectName != null and ncrTrackVO.projectName != ''">
|
||||
pni.project_name =#{ncrTrackVO.projectName}
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.initiator != null and ncrTrackVO.initiator != ''">
|
||||
(pli.design_initiator_id =#{ncrTrackVO.initiator} or pli.prehomo_initiator_id =#{ncrTrackVO.initiator} or pli.verify_initiator_id =#{ncrTrackVO.initiator})
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.duty != null and ncrTrackVO.duty != ''">
|
||||
(pli.design_duty_id =#{ncrTrackVO.duty} or pli.prehomo_duty_id =#{ncrTrackVO.duty} or pli.verify_duty_id =#{ncrTrackVO.duty})
|
||||
and
|
||||
</if>
|
||||
(
|
||||
design_flow_task_status =#{ncrTrackVO.inconformity} or design_flow_task_status =#{ncrTrackVO.track}
|
||||
or prehomo_flow_task_status =#{ncrTrackVO.inconformity} or prehomo_flow_task_status =#{ncrTrackVO.track}
|
||||
or verify_flow_task_status =#{ncrTrackVO.inconformity} or verify_flow_task_status =#{ncrTrackVO.track}
|
||||
)
|
||||
and pli.duty_territory in
|
||||
<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
order by pli.create_time desc
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
+14
-1
@@ -15,6 +15,7 @@ import com.jero.modules.project.vo.NcrTrackInfoVO;
|
||||
import com.jero.modules.project.vo.NcrTrackVO;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||
import com.jero.modules.wkflow.enums.FlowTypeEnum;
|
||||
@@ -58,6 +59,8 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
private ProjectTaskInventoryDetailEOServiceImpl projectTaskInventoryDetailEOService;
|
||||
@Autowired
|
||||
private SysDictItemServiceImpl sysDictItemServiceImpl;
|
||||
@Autowired
|
||||
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
|
||||
|
||||
@Override
|
||||
public List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO) {
|
||||
@@ -84,8 +87,18 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
//如果当前登录用户是系统管理员角色,可以查看所有的数据
|
||||
boolean administrator = this.sysUserService.isAdministrator();
|
||||
ncrTrackVO.setAdministrator(administrator ? "true":"false");
|
||||
|
||||
List<NcrTrackVO> infoList = ncrTrackMapper.getInfoList(ncrTrackVO);
|
||||
//判断是否是viewer
|
||||
boolean viewer = sysUserService.isViewer(loginUser.getId());
|
||||
List<NcrTrackVO> viewerList = null;
|
||||
if (viewer) {
|
||||
List<String> dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(loginUser.getId());
|
||||
viewerList = ObjectUtils.isNotEmpty(dutyTerritoryList) ? ncrTrackMapper.getViewerInfoList(ncrTrackVO, dutyTerritoryList) : new ArrayList<>();
|
||||
}
|
||||
//如果当前登录用户是viewer,查看属于自己责任领域或者自己参与的数据
|
||||
if (!administrator && viewer) {
|
||||
infoList.addAll(viewerList);
|
||||
}
|
||||
infoList = infoList.stream().distinct().collect(Collectors.toList());
|
||||
List<NcrTrackVO> trackVOList = new ArrayList<>();
|
||||
String designName = "";
|
||||
|
||||
Reference in New Issue
Block a user