viewer根据责任领域筛选任务清单

This commit is contained in:
CD
2022-11-18 17:13:34 +08:00
parent 1e51819b28
commit b702a32c9e
3 changed files with 82 additions and 46 deletions
@@ -29,6 +29,7 @@ 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.mapper.SysUserMapper;
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
import com.jero.modules.system.service.ISysUserRoleService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
@@ -105,6 +106,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
private ISysUserService sysUserService;
@Autowired
private IFeishuService feishuService;
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
/**
* 保存
@@ -218,6 +221,18 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
}
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper);
//不是管理员,但是viewer
boolean administrator = sysUserService.isAdministrator();
boolean viewer = sysUserService.isViewer(currentUser.getId());
if (!administrator && viewer) {
//筛选符合条件的
List<String> dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
projectLawsInventoryEOList = projectLawsInventoryEOList.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList());
} else {
return result;
}
}
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
@@ -672,7 +687,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
{
//判断用户是否是管理员角色
boolean isAdministrator = false;
//判断用户是否是Viewer
boolean isViewer = sysUserService.isViewer(currentUser.getId());
//2022-08-24 判断当前登录用户是否是系统管理员 或 R&H Manager角色,如果是的话,看到的数据与studio一致。
List<SysUserRole> userRoleList = this.sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色
if(CollectionUtils.isNotEmpty(userRoleList)){
@@ -709,7 +725,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
//是否是这条数据的认证工程师
boolean isHomologationEngineer = StringUtils.equals(projectTaskInventoryEO.getHomologationEngineerId(),currentUser.getId());
//是否是studio
boolean isStudio = StringUtils.equals(ProjectRoleEnum.STUDIO_ENGINEER.getValue(),String.valueOf(isProjectRole)) || isAdministrator;
boolean isStudio = StringUtils.equals(ProjectRoleEnum.STUDIO_ENGINEER.getValue(),String.valueOf(isProjectRole)) || isAdministrator ;
if(isStudio){
roleCode = ProjectRoleEnum.STUDIO_ENGINEER.getValue();
}
@@ -777,27 +793,27 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
* 2022-07-07修改禅道 55588问题。 只有studio可以查看所有已经启动了的流程
* studio:查询所有(已启动流程的数据) , 包含自己待办、已办
*/
if(isStudio || (showVerify || showDesign || showPrehomo)){
if (isStudio || (showVerify || showDesign || showPrehomo) || isViewer) {
actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId();
if(isStudio || showDesign){
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){
if (isStudio || showDesign || isViewer) {
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())) {
designPid = actiProcInstId;
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
designTaskId = projectTaskInventoryDetailEO.getTaskId();
designTaskStatus = projectTaskInventoryDetailEO.getStatus();
designTaskDefinitionKey = projectTaskInventoryDetailEO.getTaskDefinitionKey();
designTaskDetailId = projectTaskInventoryDetailEO.getId();
}else {
if(StringUtils.isEmpty(designTaskId)){
} else {
if (StringUtils.isEmpty(designTaskId)) {
designTaskId = projectTaskInventoryDetailEO.getTaskId();
}
if(StringUtils.isEmpty(designTaskStatus)){
if (StringUtils.isEmpty(designTaskStatus)) {
designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
}
if(StringUtils.isEmpty(designTaskDefinitionKey)){
if (StringUtils.isEmpty(designTaskDefinitionKey)) {
designTaskDefinitionKey = "";
}
if(StringUtils.isEmpty(designTaskDetailId)){
if (StringUtils.isEmpty(designTaskDetailId)) {
designTaskDetailId = projectTaskInventoryDetailEO.getId();
}
}
@@ -809,25 +825,25 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
projectTaskInventoryEO.setDesignTaskDetailId(designTaskDetailId);
}
}
if(isStudio || showPrehomo){
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
if (isStudio || showPrehomo || isViewer) {
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.PREHOMOQRLC.getValue())) {
prehomoPid = actiProcInstId;
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
prehomoTaskId = projectTaskInventoryDetailEO.getTaskId();
prehomoTaskStatus = projectTaskInventoryDetailEO.getStatus();
prehomoTaskDefinitionKey = projectTaskInventoryDetailEO.getTaskDefinitionKey();
prehomoTaskDetailId = projectTaskInventoryDetailEO.getId();
}else {
if(StringUtils.isEmpty(prehomoTaskId)){
} else {
if (StringUtils.isEmpty(prehomoTaskId)) {
prehomoTaskId = projectTaskInventoryDetailEO.getTaskId();
}
if(StringUtils.isEmpty(prehomoTaskStatus)){
if (StringUtils.isEmpty(prehomoTaskStatus)) {
prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
}
if(StringUtils.isEmpty(prehomoTaskDefinitionKey)){
if (StringUtils.isEmpty(prehomoTaskDefinitionKey)) {
prehomoTaskDefinitionKey = "";
}
if(StringUtils.isEmpty(prehomoTaskDetailId)){
if (StringUtils.isEmpty(prehomoTaskDetailId)) {
prehomoTaskDetailId = projectTaskInventoryDetailEO.getId();
}
}
@@ -839,25 +855,25 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
projectTaskInventoryEO.setPrehomoTaskDetailId(prehomoTaskDetailId);
}
}
if(isStudio || showVerify){
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
if (isStudio || showVerify || isViewer) {
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue())) {
verifyPid = actiProcInstId;
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
verifyTaskId = projectTaskInventoryDetailEO.getTaskId();
verifyTaskStatus = projectTaskInventoryDetailEO.getStatus();
verifyTaskDefinitionKey = projectTaskInventoryDetailEO.getTaskDefinitionKey();
verifyTaskDetailId = projectTaskInventoryDetailEO.getId();
}else {
if(StringUtils.isEmpty(verifyTaskId)){
} else {
if (StringUtils.isEmpty(verifyTaskId)) {
verifyTaskId = projectTaskInventoryDetailEO.getTaskId();
}
if(StringUtils.isEmpty(verifyTaskStatus)){
if (StringUtils.isEmpty(verifyTaskStatus)) {
verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
}
if(StringUtils.isEmpty(verifyTaskDefinitionKey)){
if (StringUtils.isEmpty(verifyTaskDefinitionKey)) {
verifyTaskDefinitionKey = "";
}
if(StringUtils.isEmpty(verifyTaskDetailId)){
if (StringUtils.isEmpty(verifyTaskDetailId)) {
verifyTaskDetailId = projectTaskInventoryDetailEO.getId();
}
}
@@ -869,34 +885,34 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
projectTaskInventoryEO.setVerifyTaskDetailId(verifyTaskDetailId);
}
}
if(isStudio){
if (isStudio) {
projectTaskInventoryEO.setCertificationProgress(projectTaskInventoryEO.getCertificationProgress());
projectTaskInventoryEO.setCertificationProgressRemark(projectTaskInventoryEO.getCertificationProgressRemark());
}
}else {
if((isRegulationOwner || isHomologationEngineer)){
} else {
if ((isRegulationOwner || isHomologationEngineer)) {
projectTaskInventoryEO.setCertificationProgress(projectTaskInventoryEO.getCertificationProgress());
projectTaskInventoryEO.setCertificationProgressRemark(projectTaskInventoryEO.getCertificationProgressRemark());
}else {
} else {
projectTaskInventoryEO.setCertificationProgress("");
projectTaskInventoryEO.setCertificationProgressRemark("");
}
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId();
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())) {
projectTaskInventoryEO.setDesignPId(actiProcInstId);
projectTaskInventoryEO.setDesignTaskId(projectTaskInventoryDetailEO.getTaskId());
projectTaskInventoryEO.setDesignTaskStatus(projectTaskInventoryDetailEO.getStatus());
projectTaskInventoryEO.setDesignTaskDefinitionKey(projectTaskInventoryDetailEO.getTaskDefinitionKey());
projectTaskInventoryEO.setDesignTaskDetailId(projectTaskInventoryDetailEO.getId());
}else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
} else if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.PREHOMOQRLC.getValue())) {
projectTaskInventoryEO.setPrehomoPId(actiProcInstId);
projectTaskInventoryEO.setPrehomoTaskId(projectTaskInventoryDetailEO.getTaskId());
projectTaskInventoryEO.setPrehomoTaskStatus(projectTaskInventoryDetailEO.getStatus());
projectTaskInventoryEO.setPrehomoTaskDefinitionKey(projectTaskInventoryDetailEO.getTaskDefinitionKey());
projectTaskInventoryEO.setPrehomoTaskDetailId(projectTaskInventoryDetailEO.getId());
}else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
} else if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue())) {
projectTaskInventoryEO.setVerifyPId(actiProcInstId);
projectTaskInventoryEO.setVerifyTaskId(projectTaskInventoryDetailEO.getTaskId());
projectTaskInventoryEO.setVerifyTaskStatus(projectTaskInventoryDetailEO.getStatus());
@@ -910,7 +926,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
}
/*if(StringUtils.isNotEmpty(actiProcInstId) && (isRegulationOwner || isHomologationEngineer || isStudio)){*/
if(((isRegulationOwner || isHomologationEngineer || isStudio) || (showVerify || showDesign || showPrehomo))){
if (((isRegulationOwner || isHomologationEngineer || isStudio) || (showVerify || showDesign || showPrehomo)) || isViewer) {
projectTaskInventoryEO.setShowFlag(TaskStatusEnum.SHOW_FLAG.getValue());
}
@@ -76,23 +76,23 @@
</a-form>
</div>
<div class="table-operator">
<div class="operator-text" @click="cuibanClick">
<div class="operator-text" @click="cuibanClick" v-if="isRoleSwitching">
<a-icon type="sound"/>
{{ $t('CuiBan') }}
</div>
<div @click="BatchMaintenanceProgress" class="operator-text">
<div @click="BatchMaintenanceProgress" class="operator-text" v-if="isRoleSwitching">
<a-icon type="setting"/>
{{$t('BatchMaintenanceProgress')}}
</div>
<div @click="BatchChangeStatus" class="operator-text">
<div @click="BatchChangeStatus" class="operator-text" v-if="isRoleSwitching">
<a-icon type="setting"/>
{{$t('BatchChangeStatus')}}
</div>
<div @click="CertificationDirectory" class="operator-text">
<div @click="CertificationDirectory" class="operator-text" v-if="isRoleSwitching">
<a-icon type="bulb"/>
{{$t('CertificationDirectory')}}
</div>
<div @click="handleExport" class="operator-text">
<div @click="handleExport" class="operator-text" v-if="isRoleSwitching">
<a-icon type="export" :rotate="-90"/>
{{$t('export')}}
</div>
@@ -347,11 +347,13 @@
list: '/project/projectTaskInventoryEO/list',
exportXls: '/project/projectTaskInventoryEO/exportXls'
},
isRoleSwitching:true,
loading: false,
visibleoperationFailed:false,
NotSelectedNoEngineerValue:[],
dataSource: [],
selectionRowsArray:[],
roleSwitchingList:[],
roleCodes:[],
long: ''
}
@@ -378,6 +380,7 @@
this.queryParam.dutyTerritory = this.areaOfResponsibility.dutyTerritory
}
this.getList()
this.getRoleByUserId()
this.long = localStorage.getItem('language') || 'zh-cn'
},
methods: {
@@ -385,6 +388,22 @@
searchQuery() {
this.getList()
},
getRoleByUserId(callback) {
getAction('/project/projectLawsInventoryEO/getRoleByUserId', { projectLibraryId: this.$route.query.id }).then((res) => {
if (res.success) {
this.roleSwitchingList = res.result || []
if(this.roleSwitchingList.length == 1){
if(this.roleSwitchingList[0].roleCode == '13'){
this.isRoleSwitching = false
}
}
} else {
this.roleSwitchingList = []
}
callback && callback()
})
},
searchReset() {
this.queryParam = {}
this.getList()
@@ -124,15 +124,15 @@
<a-icon type="export" :rotate="-90"/>
{{ $t('export') }}
</div>
<div @click="handleDel" class="operator-text-title">
<div @click="handleDel" class="operator-text-title">
<a-icon type="delete"/>
{{ $t('BatchDelete') }}
</div>
<div class="operator-text-title" @click="ExportReportClick">
<div class="operator-text-title" @click="ExportReportClick">
<a-icon type="export"/>
{{ $t('ExportReport') }}
</div>
<div class="operator-text-title" @click="batSettingClick">
<div class="operator-text-title" @click="batSettingClick">
<a-icon type="setting"/>
{{ $t('batchSettingInformation') }}
</div>
@@ -989,7 +989,8 @@
detailedSuccessList: [],
detailedWarningList: [],
rowKeysSuccessList: [],
rowKeysWarningList: []
rowKeysWarningList: [],
rolecode:false,
}
},
@@ -1102,7 +1103,7 @@
} else {
this.isDisplay = false
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || this.formInlineRoleSwitching.roleSwitchingCode == '12' ||
this.formInlineRoleSwitching.roleSwitchingCode == '') {
this.formInlineRoleSwitching.roleSwitchingCode == '' || this.formInlineRoleSwitching.roleSwitchingCode == '13') {
this.isRoleSwitching = false
}
}