Sfoglia il codice sorgente

导图结构树形图接口

huangjn 3 anni fa
parent
commit
cf41f15bda

+ 19 - 9
blade-service/blade-business/src/main/java/org/springblade/business/controller/ContractTreeDrawingsController.java

@@ -24,6 +24,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.ContractTreeDrawings;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -53,23 +54,32 @@ public class ContractTreeDrawingsController extends BladeController {
 	 * @return 保存结果
 	 */
 	@PostMapping("/saveContractTreeDrawings")
-	@ApiOperationSupport(order = 14)
+	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "保存或修改节点上传的图纸记录")
 	@ApiImplicitParams({
 			@ApiImplicitParam(name = "primaryKeyId", value = "节点primaryKeyId", required = true),
 			@ApiImplicitParam(name = "fileUrl", value = "文件url", required = true),
 			@ApiImplicitParam(name = "id", value = "节点的drawingsId")
 	})
-	public R<Boolean> saveOrUpdateContractTreeDrawings(@RequestParam String primaryKeyId, @RequestParam String fileUrl, @RequestParam String id){
+	public R<String> saveOrUpdateContractTreeDrawings(@RequestParam String primaryKeyId, @RequestParam String fileUrl, @RequestParam String id){
 		//当前提交用户
 		BladeUser user = AuthUtil.getUser();
-		return StringUtils.isNotEmpty(id) || !"-1".equals(id) ?
-				R.data(this.contractTreeDrawingsService.update(Wrappers.<ContractTreeDrawings>lambdaUpdate()
-						.set(ContractTreeDrawings::getFileUrl, fileUrl).set(ContractTreeDrawings::getUpdateUser, user.getUserId())
-						.set(ContractTreeDrawings::getUpdateTime, new Date())
-						.eq(ContractTreeDrawings::getId, id)))
-				:
-				R.data(this.contractTreeDrawingsService.save(new ContractTreeDrawings(primaryKeyId, fileUrl, user.getUserId(), user.getDeptId())));
+		if(StringUtils.isNotEmpty(id) || !"-1".equals(id)){
+			//修改
+			this.contractTreeDrawingsService.update(Wrappers.<ContractTreeDrawings>lambdaUpdate()
+					.set(ContractTreeDrawings::getFileUrl, fileUrl).set(ContractTreeDrawings::getUpdateUser, user.getUserId())
+					.set(ContractTreeDrawings::getUpdateTime, new Date())
+					.eq(ContractTreeDrawings::getId, id));
+
+			return R.data(id);
+		} else {
+			//新增
+			ContractTreeDrawings drawings = new ContractTreeDrawings(primaryKeyId, fileUrl, user.getUserId(), user.getDeptId());
+			drawings.setId(SnowFlakeUtil.getId());
+			this.contractTreeDrawingsService.save(drawings);
+
+			return R.data(drawings.getId().toString());
+		}
 	}
 	
 }

+ 42 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -81,6 +81,48 @@ public class InformationWriteQueryController extends BladeController {
 
 	private final ITreeContractFirstService treeContractFirstService;
 
+	/**
+	 * 导图结构树节点查询
+	 * @return 结果
+	 */
+	@GetMapping("/queryMappingStructureTree")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "导图结构树节点查询")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "parentId", value = "父节点,首次进入传0、null、''", required = true),
+			@ApiImplicitParam(name = "wbsType", value = "模板类型, 1质检,2试验", required = true),
+			@ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
+	})
+	public R<List<WbsTreeContractTreeVOS>> queryMappingStructureTree(@RequestParam String parentId, @RequestParam Integer wbsType, @RequestParam String contractId){
+		if(StringUtils.isEmpty(parentId) || "0".equals(parentId)){
+			//直接返回
+			return R.data(this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, wbsType, "0"));
+		}
+		//不是根节点,则获取子节点
+		List<WbsTreeContractTreeVOS> result = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
+		//判断当前节点下是不是只有一个子节点
+		if(result != null && result.size() == 1){
+			this.foreachQueryChildNode(result, contractId);
+		}
+
+		return R.data(result);
+	}
+
+	/**
+	 * 如果子节点只有一个,则进一步查询该子节点的下级节点
+	 * @param result 子节点集合
+	 */
+	private void foreachQueryChildNode(List<WbsTreeContractTreeVOS> result, String contractId){
+		result.forEach(vos -> {
+			List<WbsTreeContractTreeVOS> child = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, vos.getId());
+			if(child != null && child.size() == 1){
+				//如果子节点还是只有一个,则进一步向下查询
+				this.foreachQueryChildNode(child, contractId);
+			}
+			vos.setChildren(child);
+		});
+	}
+
 	/**
 	 * 修改节点信息
 	 * @param node 节点信息