|
|
@@ -274,13 +274,22 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
|
|
|
@Override
|
|
|
public PageResult<IotProjectTaskDO> taskList(IotProjectTaskPageReqVO vo, Collection<Long> deptIds) {
|
|
|
// 查询当前登录人所属部门的公司级组织 查询组织下的项目任务
|
|
|
- List<DeptDO> depts = iotProjectInfoService.companyLevelDepts();
|
|
|
- Set<Long> departmentIds = new HashSet<>();
|
|
|
- if (CollUtil.isNotEmpty(depts)) {
|
|
|
- depts.forEach(dept -> {
|
|
|
- departmentIds.add(dept.getId());
|
|
|
+ // List<DeptDO> depts = iotProjectInfoService.companyLevelDepts();
|
|
|
+ // 兼容移动端数据权限
|
|
|
+ Set<Long> dataPermissionTaskIds = new HashSet<>();
|
|
|
+ // 瑞恒 查看 任务列表 设置数据权限
|
|
|
+ Set<Long> customDeptIds = iotProjectInfoService.customLevelDepts();
|
|
|
+ // 根据任务井号 或 施工地点 模糊搜索
|
|
|
+ IotProjectTaskPageReqVO deptIdsReqVO = new IotProjectTaskPageReqVO();
|
|
|
+ deptIdsReqVO.setDeptIds(customDeptIds);
|
|
|
+ List<IotProjectTaskDO> dataPermissionTasks = iotProjectTaskMapper.selectAppList(deptIdsReqVO);
|
|
|
+ if (CollUtil.isNotEmpty(dataPermissionTasks)) {
|
|
|
+ dataPermissionTasks.forEach(task -> {
|
|
|
+ dataPermissionTaskIds.add(task.getId());
|
|
|
});
|
|
|
}
|
|
|
+ Set<Long> departmentIds = new HashSet<>();
|
|
|
+
|
|
|
// 客户名称模板搜索
|
|
|
Set<Long> projectIds = new HashSet<>();
|
|
|
if (StrUtil.isNotBlank(vo.getManufactureName())) {
|
|
|
@@ -309,6 +318,86 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
|
|
|
return new PageResult<>(new ArrayList<>(), 0l);
|
|
|
}
|
|
|
}
|
|
|
+ List<Long> qualifiedTaskIds = new ArrayList<>();
|
|
|
+ IPage<IotProjectTaskDO> taskDOIPage = iotProjectTaskMapper.taskList(Page.of(vo.getPageNo(), vo.getPageSize()),
|
|
|
+ vo.getCompanyId(),
|
|
|
+ vo.getManufactureName(),
|
|
|
+ vo.getContractName(),
|
|
|
+ vo.getContractCode(),
|
|
|
+ vo.getWellName(),
|
|
|
+ vo.getCreateTime(),
|
|
|
+ departmentIds,
|
|
|
+ dataPermissionTaskIds,
|
|
|
+ qualifiedDeptIds,
|
|
|
+ projectIds,
|
|
|
+ qualifiedTaskIds,
|
|
|
+ vo.getPlatformFlag());
|
|
|
+ return new PageResult<>(taskDOIPage.getRecords(), taskDOIPage.getTotal());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResult<IotProjectTaskDO> appTaskList(IotProjectTaskPageReqVO vo, Collection<Long> deptIds) {
|
|
|
+ // 查询当前登录人所属部门的公司级组织 查询组织下的项目任务
|
|
|
+ // List<DeptDO> depts = iotProjectInfoService.companyLevelDepts();
|
|
|
+ // 区分当前登录人所属 部门 项目部查看项目下所有部门的数据 施工队伍查看 本队伍的任务井
|
|
|
+ // 符合当前登录人数据权限的 任务id集合
|
|
|
+ Set<Long> dataPermissionTaskIds = new HashSet<>();
|
|
|
+ // 瑞恒 查看 任务列表 设置数据权限
|
|
|
+ Set<Long> customDeptIds = iotProjectInfoService.customLevelDepts();
|
|
|
+ // 根据任务井号 或 施工地点 模糊搜索
|
|
|
+ IotProjectTaskPageReqVO deptIdsReqVO = new IotProjectTaskPageReqVO();
|
|
|
+ deptIdsReqVO.setDeptIds(customDeptIds);
|
|
|
+ List<IotProjectTaskDO> dataPermissionTasks = iotProjectTaskMapper.selectAppList(deptIdsReqVO);
|
|
|
+ if (CollUtil.isNotEmpty(dataPermissionTasks)) {
|
|
|
+ dataPermissionTasks.forEach(task -> {
|
|
|
+ dataPermissionTaskIds.add(task.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ Set<Long> departmentIds = new HashSet<>();
|
|
|
+
|
|
|
+ // 客户名称 模板搜索
|
|
|
+ Set<Long> projectIds = new HashSet<>();
|
|
|
+ // 施工队伍 模糊搜索
|
|
|
+ List<Long> qualifiedDeptIds = new ArrayList<>();
|
|
|
+ // 根据井号 施工地点 模糊搜索 任务井数据
|
|
|
+ List<Long> qualifiedTaskIds = new ArrayList<>();
|
|
|
+ if (StrUtil.isNotBlank(vo.getSearchKey())) {
|
|
|
+ IotProjectInfoPageReqVO reqVO = new IotProjectInfoPageReqVO();
|
|
|
+ if (StrUtil.isNotBlank(vo.getSearchKey())) {
|
|
|
+ reqVO.setManufactureName(vo.getSearchKey());
|
|
|
+ }
|
|
|
+ List<IotProjectInfoDO> matchedProjects = iotProjectInfoMapper.selectList(reqVO);
|
|
|
+ if (CollUtil.isNotEmpty(matchedProjects)) {
|
|
|
+ matchedProjects.forEach(project -> {
|
|
|
+ projectIds.add(project.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 施工队伍 名称 模糊搜索
|
|
|
+ // 根据名称查询部门id
|
|
|
+ DeptListReqVO deptReqVO = new DeptListReqVO();
|
|
|
+ deptReqVO.setName(vo.getDeptName());
|
|
|
+ if (StrUtil.isNotBlank(vo.getDeptName())) {
|
|
|
+ deptReqVO.setName(vo.getDeptName());
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotBlank(vo.getSearchKey())) {
|
|
|
+ deptReqVO.setName(vo.getSearchKey());
|
|
|
+ }
|
|
|
+ List<DeptDO> qualifiedDepts = deptMapper.selectList(deptReqVO);
|
|
|
+ qualifiedDeptIds = convertList(qualifiedDepts, DeptDO::getId);
|
|
|
+
|
|
|
+ // 根据任务井号 或 施工地点 模糊搜索
|
|
|
+ IotProjectTaskPageReqVO wellReqVO = new IotProjectTaskPageReqVO();
|
|
|
+ wellReqVO.setSearchKey(vo.getSearchKey());
|
|
|
+ List<IotProjectTaskDO> tasks = iotProjectTaskMapper.selectList(wellReqVO);
|
|
|
+ if (CollUtil.isNotEmpty(tasks)) {
|
|
|
+ tasks.forEach(task -> {
|
|
|
+ qualifiedTaskIds.add(task.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollUtil.isEmpty(projectIds) && CollUtil.isEmpty(qualifiedDeptIds) && CollUtil.isEmpty(qualifiedTaskIds)) {
|
|
|
+ return new PageResult<>(new ArrayList<>(), 0l);
|
|
|
+ }
|
|
|
|
|
|
IPage<IotProjectTaskDO> taskDOIPage = iotProjectTaskMapper.taskList(Page.of(vo.getPageNo(), vo.getPageSize()),
|
|
|
vo.getCompanyId(),
|
|
|
@@ -318,8 +407,10 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
|
|
|
vo.getWellName(),
|
|
|
vo.getCreateTime(),
|
|
|
departmentIds,
|
|
|
+ dataPermissionTaskIds,
|
|
|
qualifiedDeptIds,
|
|
|
projectIds,
|
|
|
+ qualifiedTaskIds,
|
|
|
vo.getPlatformFlag());
|
|
|
return new PageResult<>(taskDOIPage.getRecords(), taskDOIPage.getTotal());
|
|
|
}
|