huangjn 3 vuotta sitten
vanhempi
commit
47f7287c4c

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/RecycleBin.java

@@ -88,7 +88,7 @@ public class RecycleBin extends BaseEntity {
         this.contractId = Long.parseLong(contractId);
 
         this.setCreateUser(AuthUtil.getUserId());
-        this.setCreateUserName(AuthUtil.getNickName());
+        this.createUserName = AuthUtil.getNickName();
         Date now = new Date();
         this.setCreateTime(now);
         this.operationTime = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");

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

@@ -1,9 +1,11 @@
 package org.springblade.manager.feign;
 
 import org.springblade.core.tool.api.R;
+import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.vo.ArchiveTreeVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -18,6 +20,9 @@ public interface ArchiveTreeClient {
      */
     String API_PREFIX = "/api/manager/archive";
 
+    @PostMapping(API_PREFIX + "/queryTreeNodeByIds")
+    List<ArchiveTree> queryTreeNodeByIds(@RequestParam List<String> ids);
+
     /**
      * 获取归档树映射
      */

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

@@ -22,6 +22,9 @@ public interface WbsTreeContractClient {
      */
     String API_PREFIX = "/api/manager/WbsTreeContract";
 
+    @PostMapping(API_PREFIX + "/queryContractTreeNodeByPKIds")
+    List<WbsTreeContract> queryContractTreeNodeByPKIds(@RequestParam List<Long> PKIds);
+
     @GetMapping(API_PREFIX + "/selectQueryCurrentNodeByAncestors")
     List<WbsTreeContract> selectQueryCurrentNodeByAncestors(@RequestParam List<String> ids, @RequestParam String contractId);
 

+ 11 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -22,6 +22,7 @@ import org.springblade.business.vo.TaskVO;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.evisa.feign.EVisaClient;
+import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.feign.ArchiveTreeClient;
 import org.springblade.manager.feign.ContractClient;
@@ -295,12 +296,21 @@ public class ArchiveFileController extends BladeController {
 		try{
 			if(fileList != null && fileList.size() > 0){
 				String title = fileList.stream().map(ArchiveFile::getFileName).distinct().collect(Collectors.joining(","));
+				//获取绑定节点信息
+				String position = "";
+				List<String> nodeIds = fileList.stream().map(ArchiveFile::getNodeId).distinct().collect(Collectors.toList());
+				if(nodeIds.size() > 0){
+					List<ArchiveTree> treeList = this.archiveTreeClient.queryTreeNodeByIds(nodeIds);
+					if(treeList != null && treeList.size() > 0){
+						position = treeList.stream().map(ArchiveTree::getNodeName).distinct().collect(Collectors.joining());
+					}
+				}
 
 				//保存操作日志
 				this.operationLogClient.saveUserOperationLog(27, "其他文件", "工程文件", ids, title);
 
 				//保存回收站记录
-				this.recycleBinClient.saveDelBusinessData(ids, title, 1, null, fileList.get(0).getProjectId(), fileList.get(0).getContractId());
+				this.recycleBinClient.saveDelBusinessData(ids, title, 1, position, fileList.get(0).getProjectId(), fileList.get(0).getContractId());
 			}
 		}catch (Exception e){
 			e.printStackTrace();

+ 18 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -33,6 +33,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.IoUtil;
 import org.springblade.manager.entity.ExcelTab;
 import org.springblade.manager.entity.ImageClassificationConfig;
+import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.ExcelTabClient;
 import org.springblade.manager.feign.ImageClassificationConfigClient;
 import org.springblade.manager.feign.WbsTreeContractClient;
@@ -565,11 +566,27 @@ public class ImageClassificationFileController extends BladeController {
 		try{
 			String title = fileList.stream().map(ImageClassificationFile::getFileName).distinct().collect(Collectors.joining(","));
 
+			String position = "";
+			try{
+				//获取节点集合
+				List<Long> wbsIds = fileList.stream().map(ImageClassificationFile::getWbsId).distinct().collect(Collectors.toList());
+				if(wbsIds.size() > 0){
+					//查询这些节点的信息
+					List<WbsTreeContract> wbsNodeList = this.wbsTreeContractClient.queryContractTreeNodeByPKIds(wbsIds);
+					if(wbsNodeList != null && wbsNodeList.size() > 0){
+						position = wbsNodeList.stream().map(node -> StringUtils.isNotEmpty(node.getFullName()) ? node.getFullName() : node.getDeptName()).distinct().collect(Collectors.joining());
+					}
+				}
+
+			}catch (Exception e){
+				e.printStackTrace();
+			}
+
 			//保存操作日志
 			this.operationLogClient.saveUserOperationLog(31, "其它文件", "影像资料", ids, title);
 
 			//保存回收站记录
-			this.recycleBinClient.saveDelBusinessData(ids, title, 1, null, fileList.get(0).getProjectId().toString(), fileList.get(0).getContractId().toString());
+			this.recycleBinClient.saveDelBusinessData(ids, title, 1, position, fileList.get(0).getProjectId().toString(), fileList.get(0).getContractId().toString());
 		}catch (Exception e){
 			e.printStackTrace();
 		}

+ 22 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -517,7 +517,7 @@ public class InformationWriteQueryController extends BladeController {
 				result.removeIf(query -> StringUtils.isEmpty(query.getPdfUrl()) && StringUtils.isEmpty(query.getPdfUrl()));
 				if(result.size() > 0){
 					List<String> urls = new ArrayList<>();
-					result.forEach(query -> urls.add(StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() + "@@@" + query.getName() : query.getPdfUrl() + "@@@" + query.getName()));
+					result.forEach(query -> urls.add(StringUtils.isNotEmpty(query.getEVisaPdfUrl()) ? query.getEVisaPdfUrl() + "@@@" + query.getName() + "-" + query.getId() : query.getPdfUrl() + "@@@" + query.getName() + "-" + query.getId()));
 					//删除空数据
 					urls.removeIf(StringUtils::isEmpty);
 					//打包下载
@@ -1057,6 +1057,19 @@ public class InformationWriteQueryController extends BladeController {
 		return R.data(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId));
 	}
 
+	/**
+	 * 获取所有父节点
+	 */
+	private void currentNodeAllParent(StringBuilder nodeName, WbsTreeContract currentNode){
+		if(!"0".equals(String.valueOf(currentNode.getParentId()))){
+			//如果父节点不是0说明没到顶层
+			WbsTreeContract parentNode = this.wbsTreeContractClient.queryCurrentNodeAllParent(Long.parseLong(currentNode.getContractId()), currentNode.getParentId());
+			if(parentNode != null){
+				nodeName.append("-").append(StringUtils.isNotEmpty(parentNode.getFullName()) ? parentNode.getFullName() : parentNode.getDeptName());
+				this.currentNodeAllParent(nodeName, parentNode);
+			}
+		}
+	}
 
 	/**
 	 * 删除节点
@@ -1070,12 +1083,19 @@ public class InformationWriteQueryController extends BladeController {
 	public R<Boolean> removeContractTreeNode(@RequestParam String ids){
 		//根据传入的节点,将其所有子节点删除
 		WbsTreeContract removeNode = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.parseLong(ids));
+		//查询当前操作的节点的父级关系
+		StringBuilder parentNodeName = new StringBuilder();
+        this.currentNodeAllParent(parentNodeName, removeNode);
+
 		//查询所有子节点
 		List<WbsTreeContract> removeNodeList = this.wbsTreeContractClient.queryCurrentNodeAllChild(Long.parseLong(removeNode.getContractId()), removeNode.getId());
 		//获取pKeyId
 		List<Long> removeList = removeNodeList.stream().map(WbsTreeContract::getPKeyId).distinct().collect(Collectors.toList());
 		//拼接
 		ids = ids + "," + String.join(",", JSONArray.parseArray(JSONObject.toJSONString(removeList), String.class));
+		//删除掉表格
+        removeNodeList.removeIf(tree -> tree.getType() != null && new Integer("2").equals(tree.getType()));
+		//获取被删除节点名称
 		String nodeName = StringUtils.isNotEmpty(removeNode.getFullName()) ? removeNode.getFullName() : removeNode.getDeptName() + "," + removeNodeList.stream().map(wbs -> StringUtils.isNotEmpty(wbs.getFullName()) ? wbs.getFullName() : wbs.getDeptName()).collect(Collectors.joining());
 
 		//获取当前节点下所有填报节点
@@ -1098,7 +1118,7 @@ public class InformationWriteQueryController extends BladeController {
 		//保存操作记录
 		this.operationLogClient.saveUserOperationLog(4, "资料管理", "工序资料", ids, nodeName);
 		//保存进回收站
-		this.recycleBinClient.saveDelBusinessData(ids, removeNode.getDeptName(), 2, "", removeNode.getProjectId(), removeNode.getContractId());
+		this.recycleBinClient.saveDelBusinessData(ids, removeNode.getDeptName(), 2, parentNodeName.toString(), removeNode.getProjectId(), removeNode.getContractId());
 
 		return R.data(this.wbsTreeContractClient.removeContractTreeNode(ids));
 	}

+ 8 - 4
blade-service/blade-business/src/main/java/org/springblade/business/controller/RecycleBinController.java

@@ -81,11 +81,11 @@ public class RecycleBinController extends BladeController {
 				}
 			}
 			//文件类型
-			List<RecycleBin> filetypeList = recycleBinList.stream().filter(recycleBin -> new Integer("1").equals(recycleBin.getDelType())).distinct().collect(Collectors.toList());
-			if(filetypeList.size() > 0){
+			List<RecycleBin> fileTypeList = recycleBinList.stream().filter(recycleBin -> new Integer("1").equals(recycleBin.getDelType())).distinct().collect(Collectors.toList());
+			if(fileTypeList.size() > 0){
 				//恢复集合
 				List<String> fileList = new ArrayList<>();
-				this.foreachQueryData(filetypeList, recycleBinIds, fileList);
+				this.foreachQueryData(fileTypeList, recycleBinIds, fileList);
 				try{
 					if(fileList.size() > 0){
 						//文件数据包括工程文件及影像资料,这里采用最简单粗暴的方法进行恢复
@@ -137,7 +137,11 @@ public class RecycleBinController extends BladeController {
 		Date oldDate = DateUtil.minusDays(nowDate, 30);
 
 		wrapper.lambda().between(RecycleBin::getCreateTime, oldDate, nowDate);
-		wrapper.lambda().eq(RecycleBin::getCreateUser, AuthUtil.getUserId());
+		if(StringUtils.isNotEmpty(recycleBin.getCreateUserName()) && "ALL".equals(recycleBin.getCreateUserName())){
+			wrapper.lambda().eq(RecycleBin::getContractId, recycleBin.getContractId().toString());
+		} else {
+			wrapper.lambda().eq(RecycleBin::getCreateUser, AuthUtil.getUserId());
+		}
 
 		return R.data(this.recycleBinService.page(Condition.getPage(query), wrapper));
 	}

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

@@ -740,6 +740,7 @@ public class ExcelTabController extends BladeController {
 
             //处理文件提名
             String fileName = this.wbsParamService.crateFileTitle(wbsTreeContractByP.getPKeyId(), Long.parseLong(wbsTreeContractByP.getContractId()));
+            fileName = StringUtils.isNotEmpty(fileName) ? fileName : "缺少文件提名配置";
 
             //huangjn 保存成功后调用生成资料查询列表数据
             this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", fileName, Integer.parseInt(classify), 2);

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeClientImpl.java

@@ -1,8 +1,10 @@
 package org.springblade.manager.feign;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.service.IArchiveTreeService;
 import org.springblade.manager.vo.ArchiveTreeVO;
 import org.springframework.web.bind.annotation.RestController;
@@ -15,6 +17,11 @@ public class ArchiveTreeClientImpl implements ArchiveTreeClient {
 
     private final IArchiveTreeService archiveTreeService;
 
+    @Override
+    public List<ArchiveTree> queryTreeNodeByIds(List<String> ids) {
+        return this.archiveTreeService.list(Wrappers.<ArchiveTree>lambdaQuery().in(ArchiveTree::getId, ids));
+    }
+
     @Override
     public R<List<ArchiveTreeVO>> tree(Integer disPlayTree, Integer nodeType) {
         return R.data(this.archiveTreeService.tree(AuthUtil.getTenantId(), disPlayTree, nodeType));

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

@@ -34,6 +34,11 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     private final IDictBizClient dictBizClient;
 
+    @Override
+    public List<WbsTreeContract> queryContractTreeNodeByPKIds(List<Long> PKIds) {
+        return this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().in(WbsTreeContract::getPKeyId, PKIds));
+    }
+
     @Override
     public List<WbsTreeContract> selectQueryCurrentNodeByAncestors(List<String> ids, String contractId) {
         return this.wbsTreeContractService.selectQueryCurrentNodeByAncestors(ids, contractId);

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.mixsmart.utils.ListUtils;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import org.apache.commons.lang.StringUtils;
 import org.springblade.business.feign.InformationQueryClient;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.oss.model.BladeFile;
@@ -276,6 +277,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
 					//处理文件提名
 					String fileName = this.wbsParamService.crateFileTitle(wbsTreeContractByP.getPKeyId(), Long.parseLong(wbsTreeContractByP.getContractId()));
+					fileName = StringUtils.isNotEmpty(fileName) ? fileName : "缺少文件提名配置";
 
 					//huangjn 保存成功后调用生成资料查询列表数据
 					this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", fileName, Integer.parseInt(tableInfo.getClassify()), 2);