Explorar o código

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf %!s(int64=2) %!d(string=hai) anos
pai
achega
ecda92a88d

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java

@@ -108,4 +108,6 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 	List<DictBiz> getCarrierTypeByDict();
 
 	void batchDestroyByIds(@Param("ids")List<String> ids);
+
+	String getUserRoleName(@Param("projectId")Long projectId,@Param("contractId") Long contractId,@Param("userId") Long userId);
 }

+ 14 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -183,6 +183,9 @@
         <if test="vo.projectId != null and vo.projectId != ''">
             and matc.project_id = #{vo.projectId}
         </if>
+        <if test="vo.contractId != null and vo.contractId != ''">
+            and uaa.contract_id = #{vo.contractId}
+        </if>
         <if test="vo.searchType == 1 and vo.queryValue != null and vo.queryValue != ''">
             and uaa.name like concat('%',#{vo.queryValue},'%')
         </if>
@@ -231,6 +234,9 @@
         </foreach>
         ) matc left join u_archives_auto uaa on matc.id = uaa.node_id left join u_archive_file uaf on uaa.id = uaf.archive_id
         where uaa.is_deleted = 0
+        <if test="vo.contractId != null and vo.contractId != ''">
+            and uaa.contract_id = #{vo.contractId}
+        </if>
         <if test="vo.searchType == 1 and vo.queryValue != null and vo.queryValue != ''">
             and uaa.name like concat('%',#{vo.queryValue},'%')
         </if>
@@ -311,6 +317,14 @@
     <select id="getCarrierTypeByDict" resultType="org.springblade.system.entity.DictBiz">
         SELECT * FROM blade_dict_biz WHERE code = 'storage_type' AND  parent_id > 0 AND tenant_id = 000000
     </select>
+    <select id="getUserRoleName" resultType="java.lang.String">
+        SELECT br.role_name
+        FROM blade_role br
+        WHERE br.id = (
+            SELECT role_id  FROM m_project_assignment_user
+            WHERE project_id = #{projectId} AND contract_id = #{contractId} AND user_id = #{userId}
+        )
+    </select>
 
 
     <update id="splitFiles" >

+ 11 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -124,10 +124,19 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			vo.setCarrierTypes(Arrays.asList(vo.getCarrierType().split(",")));
 		}
 		List<ArchivesAutoVO> archivesAutos = null;
-		if (StringUtils.isNotBlank(vo.getNodeIds())){
+		//获取合同段类型
+		ContractInfo contractInfo = contractClient.getContractById(vo.getContractId());
+		Integer contractType = contractInfo.getContractType();
+		//根据用户在当前合同段的权限,判断返回
+		BladeUser user = AuthUtil.getUser();
+		String name = baseMapper.getUserRoleName(vo.getProjectId(),vo.getContractId(),user.getUserId());
+		if (name.contains("超级管理员") || contractType == 3) {
+			vo.setContractId(null);
+		}
+		if (StringUtils.isNotBlank(vo.getNodeIds())) {
 			vo.setNodeIdArray(Arrays.asList(vo.getNodeIds().split(",")));
 			archivesAutos = baseMapper.pageByArchivesAuto2(page, vo);
-		}else {
+		} else {
 			archivesAutos = baseMapper.pageByArchivesAuto(page, vo);
 		}
 		if (archivesAutos != null && archivesAutos.size() >0) {

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -343,8 +343,8 @@ public class ArchiveTreeContractController extends BladeController {
 	 */
 	@GetMapping("getArchiveTreeByNodeType")
 	@ApiOperation(value = "根据节点类型获取档案,档案查询选择目录", notes = "传入项目id,节点类型")
-	public R getArchiveTreeByNodeType(Long projectId,Long nodeType){
-		return R.data(archiveTreeContractService.getArchiveTreeByNodeType(projectId,nodeType));
+	public R getArchiveTreeByNodeType(Long projectId,Long contractId,Integer nodeType){
+		return R.data(archiveTreeContractService.getArchiveTreeByNodeType(projectId,contractId,nodeType));
 	}
 	/**
 	 * 根据父节点获取子节点集合

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

@@ -86,4 +86,6 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(@Param("nodeId") Long nodeId);
 
 	List<ArchiveTreeContract> getAuthCodeList(@Param("id") String id,@Param("authCode") String authCode,@Param("contractId") Long contractId);
+
+    String getUserRoleName(@Param("projectId")Long projectId,@Param("contractId") Long contractId,@Param("userId") Long userId);
 }

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

@@ -408,4 +408,12 @@
         </if>
         ORDER BY d.sort
     </select>
+    <select id="getUserRoleName" resultType="java.lang.String">
+        SELECT br.role_name
+        FROM blade_role br
+        WHERE br.id = (
+            SELECT role_id  FROM m_project_assignment_user
+            WHERE project_id = #{projectId} AND contract_id = #{contractId} AND user_id = #{userId}
+        )
+    </select>
 </mapper>

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

@@ -96,7 +96,7 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
 	List<Map<String,Object>> getArchiveTreeAndArchiveCount(Long projectId,Long nodeId);
 
-    List<ArchiveTreeContractVO3> getArchiveTreeByNodeType(Long projectId, Long nodeType);
+    List<ArchiveTreeContractVO3> getArchiveTreeByNodeType(Long projectId, Long contractId,Integer nodeType);
 
 	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(Long nodeId);
 	String getAuthCode(Long contractId);

+ 26 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -865,15 +865,33 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	}
 
 	@Override
-	public List<ArchiveTreeContractVO3> getArchiveTreeByNodeType(Long projectId, Long nodeType) {
-		if (nodeType == 1){
-			return baseMapper.getArchiveTreeByNodeType2(projectId);
-		}else if (nodeType == 2){
-			return baseMapper.getArchiveTreeByNodeType(projectId,"C");
-		}else if (nodeType == 3){
-			return baseMapper.getArchiveTreeByNodeType(projectId,"S");
+	public List<ArchiveTreeContractVO3> getArchiveTreeByNodeType(Long projectId, Long contractId,Integer nodeType) {
+		//获取合同段类型
+		ContractInfo contractInfo = contractInfoService.selectById(contractId + "");
+		Integer contractType = contractInfo.getContractType();
+		//根据用户在当前合同段的权限,判断返回
+		BladeUser user = AuthUtil.getUser();
+		String name = baseMapper.getUserRoleName(projectId,contractId,user.getUserId());
+		if (name.contains("超级管理员") || contractType == 3) {
+			//
+			if (nodeType == 1) {
+				return baseMapper.getArchiveTreeByNodeType2(projectId);
+			} else if (nodeType == 2) {
+				return baseMapper.getArchiveTreeByNodeType(projectId, "C");
+			} else if (nodeType == 3) {
+				return baseMapper.getArchiveTreeByNodeType(projectId, "S");
+			} else {
+				return null;
+			}
 		}else {
-			return null;
+			//只返回对应类型的
+			if (contractType == 1 && nodeType == 2){
+					return baseMapper.getArchiveTreeByNodeType(projectId, "C");
+			} else if (contractType == 2 && nodeType == 3) {
+					return baseMapper.getArchiveTreeByNodeType(projectId, "S");
+			}else {
+				return null;
+			}
 		}
 	}