ソースを参照

档案鉴定,根据权限查询

qianxb 2 年 前
コミット
540a393840

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java

@@ -36,6 +36,9 @@ public interface ArchiveTreeContractClient {
     @PostMapping(API_PREFIX + "/getArchiveTreeContractById")
     ArchiveTreeContract getArchiveTreeContractById(@RequestParam Long id);
 
+    @PostMapping(API_PREFIX + "/getArchiveTreeContractByNodeName")
+    ArchiveTreeContract getArchiveTreeContractByNodeName(@RequestParam String nodeName);
+
     @PostMapping(API_PREFIX + "/getArchiveTreeContractListByIds")
     List<ArchiveTreeContract> getArchiveTreeContractListByIds(@RequestParam String ids);
 }

+ 18 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -421,7 +421,24 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	@Override
 	public IPage<ArchivesAutoVO> pageByAuthenticate(ArchivesAutoVO vo) {
 		IPage<ArchivesAutoVO> page = new Page<>(vo.getCurrent(),vo.getSize());
-		List<ArchivesAutoVO> list = baseMapper.pageByAuthenticate(page, vo);
+		//根据权限返回结果
+		ContractInfo contractInfo = contractClient.getContractById(vo.getContractId());
+		Integer contractType = contractInfo.getContractType();
+		//根据用户在当前合同段的权限,判断返回
+		BladeUser user = AuthUtil.getUser();
+		String name = baseMapper.getUserRoleName(vo.getProjectId(),vo.getContractId(),user.getUserId());
+		List<ArchivesAutoVO> list = new ArrayList<>();
+		if (name.contains("超级管理员") || contractType == 3) {
+			list = baseMapper.pageByAuthenticate(page, vo);
+		}else {
+			ArchiveTreeContract node = archiveTreeContractClient.getArchiveTreeContractById(vo.getNodeId());
+			if (node.getAncestors().split(",").length <= 2){
+				//查询当前合同
+				ArchiveTreeContract archiveTreeContract = archiveTreeContractClient.getArchiveTreeContractByNodeName(contractInfo.getContractName());
+				vo.setNodeId(archiveTreeContract.getId());
+			}
+				list = baseMapper.pageByAuthenticate(page, vo);
+		}
 		return page.setRecords(list);
 	}
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeController.java

@@ -167,7 +167,7 @@ public class ArchiveTreeController extends BladeController {
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "ids", value = "ids字符串拼接 ',' ", required = true)
     })
-    public R<List<ArchiveTreeVO>> submitDisplayConfigTree(@RequestParam String ids) {
+    public R<List<ArchiveTreeVO>> submitDisplayConfigTree(@RequestBody String ids) {
         return R.status(archiveTreeService.submitDisplayConfigTree(ids));
     }
 

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -70,6 +70,11 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
         return archiveTreeContract;
     }
 
+    @Override
+    public ArchiveTreeContract getArchiveTreeContractByNodeName(String nodeName) {
+        return archiveTreeContractMapper.getArchiveTreeContractByNodeName(nodeName);
+    }
+
     @Override
     public List<ArchiveTreeContract> getArchiveTreeContractListByIds(String ids) {
 

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -90,4 +90,6 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 	List<ArchiveTreeContract> getArchiveTreeContractListByIds(@Param("idsList") List<String> idsList);
 
     String getUserRoleName(@Param("projectId")Long projectId,@Param("contractId") Long contractId,@Param("userId") Long userId);
+
+    ArchiveTreeContract getArchiveTreeContractByNodeName(@Param("nodeName") String nodeName);
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -431,4 +431,10 @@
             WHERE project_id = #{projectId} AND contract_id = #{contractId} AND user_id = #{userId}
         )
     </select>
+    <select id="getArchiveTreeContractByNodeName"
+            resultType="org.springblade.manager.entity.ArchiveTreeContract">
+        SELECT *
+        FROM  m_archive_tree_contract
+        WHERE node_name = #{nodeName} and is_deleted = 0
+    </select>
 </mapper>