Ver código fonte

Merge remote-tracking branch 'origin/test-merge' into test-merge

LHB 1 semana atrás
pai
commit
0f8c949da9

+ 4 - 4
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchivesAutoInsertVO.java

@@ -35,8 +35,8 @@ public class ArchivesAutoInsertVO implements Serializable {
 	@ApiModelProperty("目标案卷id")
 	private Long targetId;
 
-	@ApiModelProperty("type, 0:后,1:前")
-	private Integer type;
+//	@ApiModelProperty("type, 0:后,1:前")
+//	private Integer type;
 
 	@ApiModelProperty("被选择的案卷id")
 	private Long sourceId;
@@ -44,8 +44,8 @@ public class ArchivesAutoInsertVO implements Serializable {
 	@ApiModelProperty("被插入的文件ids")
 	private String sourceArchiveFileIds;
 
-	@ApiModelProperty("选择位置的文件id")
-	private Long targetIndexFileId;
+//	@ApiModelProperty("选择位置的文件id")
+//	private Long targetIndexFileId;
 
 	@ApiModelProperty("ids")
 	private String sortFileList;

+ 1 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ContractCollectFolder.java

@@ -52,6 +52,7 @@ public class ContractCollectFolder implements Serializable {
      * 节点路径pKeyIds
      */
     @ApiModelProperty("节点路径pKeyIds")
+    @TableField(exist = false)
     private String nodeAncestors;
 
     /**

+ 24 - 80
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -692,7 +692,7 @@ public class ArchivesAutoController extends BladeController {
 		}
 		Set<Long> ids = archivesAutoList.stream().map(ArchivesAuto::getId).collect(Collectors.toSet());
 		boolean update = archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().set(ArchivesAuto::getActionType, type).in(ArchivesAuto::getId, ids)
-				.and(item -> item.eq(ArchivesAuto::getActionType, 0).or().isNull(ArchivesAuto::getActionType)));
+				.and(item -> item.in(ArchivesAuto::getActionType, 0,3).or().isNull(ArchivesAuto::getActionType)));
 		if (!update) {
 			throw new ServiceException("操作失败,案卷可能正在重组或者并卷,请稍后在进行相关操作");
 		}
@@ -1238,6 +1238,12 @@ public class ArchivesAutoController extends BladeController {
 		if (target == null || source == null) {
 			return R.fail("插入或选择的案卷不存在");
 		}
+		if (target.getActionType() != null && (target.getActionType() == 1 || target.getActionType() == 2)) {
+			return R.fail("案卷【"+ target.getName() + "进行重组或者并卷,请稍后再试");
+		}
+		if (source.getActionType() != null && (source.getActionType() == 1 || source.getActionType() == 2)) {
+			return R.fail("案卷【"+ source.getName() + "进行重组或者并卷,请稍后再试");
+		}
 		List<ArchiveFile> sourceArchiveFileList = archiveFileClient.getAllArchiveFileByIds(sourceFileIds);
 		if (sourceArchiveFileList == null || sourceArchiveFileList.isEmpty()) {
 			return R.fail("请择要插入的文件不存在");
@@ -1247,94 +1253,32 @@ public class ArchivesAutoController extends BladeController {
 				return R.fail("文件【" + archiveFile.getFileName() + "】不属于【" + source.getName() + "】案卷,请重新选择");
 			}
 		}
-		if ((vo.getTargetIndexFileId() ==  null || vo.getTargetIndexFileId() <= 0)) {
-			return R.fail("请选择要插入的位置");
+		if ((vo.getSortFileList() ==  null || !vo.getSortFileList().contains(","))) {
+			return R.fail("参数错误");
 		}
 		List<ArchiveFile> updateArchiveFileList = new ArrayList<>();
 		int sort = 0;
-		if (vo.getSortFileList() != null && !vo.getSortFileList().isEmpty()) {
-			String[] split1 = vo.getSortFileList().split(",");
-			for (String s : split1) {
-				if (StringUtils.isNumeric(s)) {
-					ArchiveFile file = new ArchiveFile();
-					file.setId(Long.parseLong(s));
-					updateArchiveFileList.add(file);
-					if (s.equals(vo.getTargetIndexFileId() + "")) {
-						sourceArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
-						if (vo.getType() == null || vo.getType() == 0) {
-							file.setSort( sort);
-							for (ArchiveFile file1 : sourceArchiveFileList) {
-								ArchiveFile file2 = new ArchiveFile();
-								file2.setId(file1.getId());
-								file2.setArchiveId(target.getId());
-								file2.setPageNum("");
-								sort++;
-								file2.setSort(sort);
-								updateArchiveFileList.add(file2);
-							}
-						} else {
-							for (ArchiveFile file1 : sourceArchiveFileList) {
-								ArchiveFile file2 = new ArchiveFile();
-								file2.setId(file1.getId());
-								file2.setArchiveId(target.getId());
-								file2.setPageNum("");
-								file2.setSort(sort);
-								sort++;
-								updateArchiveFileList.add(file2);
-							}
-							file.setSort( sort);
-						}
-					} else {
-						file.setSort( sort);
-					}
-					sort++;
-				}
-			}
-		} else {
-			List<ArchiveFile> targetArchiveFileList = archiveFileClient.getArchiveFileByArchiveIds(vo.getTargetId() + "");
-			targetArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
-			for (ArchiveFile archiveFile : targetArchiveFileList) {
-				if (archiveFile.getId().equals(vo.getTargetIndexFileId())) {
-					sort = archiveFile.getArchiveSort();
-					ArchiveFile file = new ArchiveFile();
-					file.setId(archiveFile.getId());
-					file.setArchiveId(archiveFile.getArchiveId());
-					sourceArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
-					if (vo.getType() == null || vo.getType() == 0) {
-						updateArchiveFileList.add(file);
-						for (ArchiveFile file1 : sourceArchiveFileList) {
-							ArchiveFile file2 = new ArchiveFile();
-							file2.setId(file1.getId());
-							file2.setArchiveId(archiveFile.getArchiveId());
-							file2.setPageNum("");
-							updateArchiveFileList.add(file2);
-						}
-					} else {
-						for (ArchiveFile file1 : sourceArchiveFileList) {
-							ArchiveFile file2 = new ArchiveFile();
-							file2.setId(file1.getId());
-							file2.setArchiveId(archiveFile.getArchiveId());
-							file2.setPageNum("");
-							updateArchiveFileList.add(file2);
-						}
-						updateArchiveFileList.add(file);
-					}
-				} else if (!updateArchiveFileList.isEmpty()) {
-					ArchiveFile file = new ArchiveFile();
-					file.setId(archiveFile.getId());
-					updateArchiveFileList.add(file);
+		String[] split1 = vo.getSortFileList().split(",");
+		Map<Long, Integer> map = sourceArchiveFileList.stream().collect(Collectors.toMap(ArchiveFile::getId, ArchiveFile::getSort));
+		for (String s : split1) {
+			if (StringUtils.isNumeric(s)) {
+				ArchiveFile file = new ArchiveFile();
+				file.setId(Long.parseLong(s));
+				updateArchiveFileList.add(file);
+				file.setSort(sort);
+				if (map.containsKey(file.getId())) {
+					file.setPageNum("");
+					file.setArchiveId(target.getId());
 				}
-			}
-			// 修改排序
-			for (ArchiveFile archiveFile : updateArchiveFileList) {
-				archiveFile.setArchiveSort(sort);
-				archiveFile.setArchiveId(vo.getTargetId());
 				sort++;
 			}
 		}
 		// 修改标识
 		archiveFileClient.updateArchiveFile(updateArchiveFileList);
-		archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().in(ArchivesAuto::getId,vo.getTargetId(), vo.getSourceId()).set(ArchivesAuto::getActionType, 3));
+		boolean update = archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().in(ArchivesAuto::getId, vo.getTargetId(), vo.getSourceId()).set(ArchivesAuto::getActionType, 3).last("and (action_type is null or action_type in (0,3))"));
+		if (!update) {
+			return R.fail("案卷【" + target.getName() + "】或【" + source.getName() + "】正在被其他用户操作,请稍后再试");
+		}
 		return R.status(true);
 	}
 

+ 19 - 13
blade-service/blade-business/src/main/java/org/springblade/business/controller/FixedFlowController.java

@@ -418,11 +418,11 @@ public class FixedFlowController extends BladeController {
                 List<SignPfxFile> signPfxFiles = jdbcTemplate.query("select * from m_sign_pfx_file where is_register = 1 and certificate_user_id in ( " + ids + " )", new BeanPropertyRowMapper<>(SignPfxFile.class));
                 Map<String, List<SignPfxFile>> collect = signPfxFiles.stream().collect(Collectors.groupingBy(signPfxFile -> signPfxFile.getCertificateUserId() + ""));
                 for (String userId : userIds) {
-                    List<SignPfxFile> userPfxList = collect.get(userId);
-                    if (userPfxList == null || userPfxList.isEmpty()) {
-                        String[] split = userId.split(",");
-                        for (String s : split) {
-                            if (StringUtils.isNumeric( s)) {
+                    String[] split = userId.split(",");
+                    for (String s : split) {
+                        if (StringUtils.isNumeric( s)) {
+                            List<SignPfxFile> userPfxList = collect.get(s);
+                            if (userPfxList == null || userPfxList.isEmpty()) {
                                 notCertificateUserInfoSet.add(s);
                             }
                         }
@@ -458,6 +458,7 @@ public class FixedFlowController extends BladeController {
             fixedFlow.setContractId(dto.getContractId());
             fixedFlow.setStatus(1);
             fixedFlow.setIsMeter(0);
+            fixedFlow.setSort(0);
             fixedFlow.setCreateTime(new Date());
             boolean save = fixedFlowService.save(fixedFlow);
             if (save) {
@@ -468,6 +469,9 @@ public class FixedFlowController extends BladeController {
                         userSort += Func.toLongList(dto.getFixedBranchList().get(i-1).getUserIds()).size();
                     }
                     List<FixedFlowLink> saveList = new ArrayList<>();
+                    if (fixedBranch.getUserIds() ==  null) {
+                        continue;
+                    }
                     for (String userId : fixedBranch.getUserIds().split(",")) {
                         User user = userMap.get(Long.parseLong(userId));
                         if (user == null) {
@@ -511,7 +515,7 @@ public class FixedFlowController extends BladeController {
         IPage<FixedFlow> fixedFlowsPage = fixedFlowService.getBaseMapper().selectPage(page,
                 Wrappers.<FixedFlow>lambdaQuery()
                         .eq(FixedFlow::getContractId, dto.getContractId())
-                        .eq(FixedFlow::getProjectId, dto.getProjectId()).last(" and (is_meter is null or is_meter != 1)"));
+                        .eq(FixedFlow::getProjectId, dto.getProjectId()).last(" and (is_meter is null or is_meter != 1) order by sort"));
         List<FixedFlow> fixedFlows = fixedFlowsPage.getRecords();
         List<Long> collect = fixedFlows.stream().map(FixedFlow::getId).collect(Collectors.toList());
         if (!collect.isEmpty()) {
@@ -565,7 +569,6 @@ public class FixedFlowController extends BladeController {
             resultMap.setSize(fixedFlowsPage.getSize());
             resultMap.setTotal(fixedFlowsPage.getTotal());
             resultMap.setRecords(fixedFlowVOList);
-            fixedFlowVOList.sort(Comparator.comparing(item -> item.getSort() == null ? 0 : item.getSort()));
             Map<Boolean, List<FixedFlowVO>> groupMap = fixedFlowVOList.stream().collect(Collectors.groupingBy(record -> record.getFixedFlowName() != null && record.getFixedFlowName().contains("_") && record.getSort() == null));
             List<FixedFlowVO> copyFixedFlowVOS = groupMap.get(true);
             List<FixedFlowVO> fixedFlowVOS = groupMap.get(false);
@@ -573,9 +576,9 @@ public class FixedFlowController extends BladeController {
                 return R.data(resultMap);
             }
             Map<String, List<FixedFlowVO>> nameMap = copyFixedFlowVOS.stream().collect(Collectors.groupingBy(record -> record.getFixedFlowName().split("_")[0]));
-            List<FixedFlowVO> newData = new ArrayList<>();
+            List<FixedFlowVO> newData = new ArrayList<>(fixedFlowVOList);
             for (FixedFlowVO flowVO : fixedFlowVOS) {
-                newData.add(flowVO);
+//                newData.add(flowVO);
                 List<FixedFlowVO> flowVOS = nameMap.get(flowVO.getFixedFlowName());
                 if (flowVOS != null && !flowVOS.isEmpty()) {
                     flowVOS.sort(Comparator.comparing(FixedFlow::getFixedFlowName));
@@ -685,10 +688,10 @@ public class FixedFlowController extends BladeController {
                 String ids = users.stream().map(user -> user.getId() + "").collect(Collectors.joining(","));
                 List<SignPfxFile> signPfxFiles = jdbcTemplate.query("select * from m_sign_pfx_file where is_register = 1 and certificate_user_id in ( " + ids + " )", new BeanPropertyRowMapper<>(SignPfxFile.class));
                 Map<String, List<SignPfxFile>> collect = signPfxFiles.stream().collect(Collectors.groupingBy(signPfxFile -> signPfxFile.getCertificateUserId() + ""));
-                for (String userId : userIds) {
-                    List<SignPfxFile> userPfxList = collect.get(userId);
+                for (User user : users) {
+                    List<SignPfxFile> userPfxList = collect.get(user.getId() + "");
                     if (userPfxList == null || userPfxList.isEmpty()) {
-                        notCertificateUserInfoSet.add(userId);
+                        notCertificateUserInfoSet.add(user.getId() + "");
                     }
                 }
                 if (!notCertificateUserInfoSet.isEmpty()) {
@@ -720,8 +723,11 @@ public class FixedFlowController extends BladeController {
                 if (i > 0) {
                     userSort += Func.toLongList(dto.getFixedBranchList().get(i - 1).getUserIds()).size();
                 }
+                if (fixedBranch.getUserIds() ==  null) {
+                    continue;
+                }
                 List<FixedFlowLink> saveList = new ArrayList<>();
-                for (String userId : userIds) {
+                for (String userId : fixedBranch.getUserIds().split(",")) {
                     FixedFlowLink fixedFlowLink = new FixedFlowLink();
                     fixedFlowLink.setFixedFlowId(dto.getFixedFlowId());
                     fixedFlowLink.setFixedFlowLink(fixedBranch.getName());

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

@@ -9,8 +9,6 @@
         <result column="folder_name" property="folderName"/>
         <result column="contract_id" property="contractId"/>
         <result column="node_id" property="nodeId"/>
-        <result column="node_parent_id" property="nodeParentId"/>
-        <result column="node_ancestors" property="nodeAncestors"/>
         <result column="type" property="type"/>
         <result column="sort" property="sort"/>
         <result column="create_time" property="createTime"/>

+ 5 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractCollectFolderServiceImpl.java

@@ -121,8 +121,12 @@ public class ContractCollectFolderServiceImpl extends ServiceImpl<ContractCollec
             if (node == null) {
                 return true;
             }
+            List<WbsTreeContract> childrenList = new ArrayList<>();
+            getAllChildren(Collections.singleton(vo.getNodeId()), childrenList);
+            childrenList.add(wbsTreeContract);
+            Set<Long> nodeIds = childrenList.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toSet());
             this.remove(Wrappers.<ContractCollectFolder>lambdaQuery().eq(ContractCollectFolder::getParentId, node.getParentId())
-                    .eq(ContractCollectFolder::getType, 1).eq(ContractCollectFolder::getContractId, vo.getContractId()).likeRight(ContractCollectFolder::getNodeAncestors, node.getNodeAncestors()));
+                    .eq(ContractCollectFolder::getType, 1).eq(ContractCollectFolder::getContractId, vo.getContractId()).in(ContractCollectFolder::getNodeId, nodeIds));
         } else if (vo.getType() == 1) {
             ContractCollectFolder collectFolder = this.getById(vo.getId());
             if (collectFolder == null) {
@@ -149,9 +153,7 @@ public class ContractCollectFolderServiceImpl extends ServiceImpl<ContractCollec
                     node1.setContractId(vo.getContractId());
                     node1.setType(1);
                     node1.setCreateUser(AuthUtil.getUserId());
-                    node1.setNodeAncestors(contract.getAncestorsPId() + "," + contract.getPKeyId());
                     node1.setParentId(vo.getId());
-                    node1.setNodeParentId(contract.getPId() == null ? 0 : contract.getPId());
                     nodes.add(node1);
                 }
                 return this.saveBatch(nodes);

+ 5 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -1603,7 +1603,8 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
             return R.fail(200, "合同段不存在");
         }
         Set<String> syncPKeyIds = getSyncFlagIds(contractId, tableOwner);
-        List<ContractCollectFolder> contractCollectNodes = jdbcTemplate.query("select node_id, node_ancestors from m_contract_collect_folder where type = 1 and parent_id = " + folderId, new BeanPropertyRowMapper<>(ContractCollectFolder.class));
+        List<ContractCollectFolder> contractCollectNodes = jdbcTemplate.query("select node_id, ifnull((select ancestors_p_id from m_wbs_tree_contract where p_key_id = a.node_id), (select ancestors from m_wbs_tree_contract_statistics where id = a.node_id)) as nodeAncestors " +
+                "from m_contract_collect_folder a where type = 1 and parent_id = " + folderId, new BeanPropertyRowMapper<>(ContractCollectFolder.class));
         if (!contractCollectNodes.isEmpty()) {
             Set<Long> pKeyIds = new LinkedHashSet<>();
             Map<Long, String> collectMap = new HashMap<>();
@@ -1633,6 +1634,7 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
                 } else {
                     wrapper.eq(WbsTreeContract::getPId, pKeyId);
                 }
+                wrapper.and(wrapper1 -> wrapper1.isNull(WbsTreeContract::getIsBussShow).or().ne(WbsTreeContract::getIsBussShow, 2));
                 wbsTreeContractList = wbsTreeContractMapper.selectList(wrapper);
             }
             if (!wbsTreeContractList.isEmpty()) {
@@ -1716,8 +1718,8 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
             return R.fail(200, "合同段不存在");
         }
         Set<String> syncPKeyIds = getSyncFlagIds(contractId, tableOwner);
-        List<ContractCollectFolder> contractCollectNodes = jdbcTemplate.query("select node_id, node_ancestors from m_contract_collect_folder a where type = 1 and parent_id = " + folderId
-                        + " and EXISTS (SELECT 1 from m_wbs_tree_contract where p_key_id = a.node_id and full_name like '%" + queryValue + "%')",
+        List<ContractCollectFolder> contractCollectNodes = jdbcTemplate.query("select node_id, ifnull((select ancestors_p_id from m_wbs_tree_contract where p_key_id = a.node_id), (select ancestors from m_wbs_tree_contract_statistics where id = a.node_id)) as nodeAncestors from m_contract_collect_folder a where type = 1 and parent_id = " + folderId
+                        + " and EXISTS (SELECT 1 from m_wbs_tree_contract where p_key_id = a.node_id)",
                 new BeanPropertyRowMapper<>(ContractCollectFolder.class));
         if (!contractCollectNodes.isEmpty()) {
             Set<Long> pKeyIds = new LinkedHashSet<>();

+ 3 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictBizMapper.xml

@@ -40,6 +40,9 @@
         <if test="notRoot != null and notRoot != ''">
             and parent_id > 0
         </if>
+        <if test="tenantId != null and tenantId != ''">
+            and tenant_id = #{tenantId}
+        </if>
         and is_sealed = 0 and is_deleted = 0
         order by sort
     </select>