Parcourir la source

客户端代码

huangjn il y a 3 ans
Parent
commit
a212626fd5

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

@@ -5,6 +5,7 @@ import org.springblade.manager.vo.WbsTreeContractTreeVOS;
 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.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -19,6 +20,15 @@ public interface WbsTreeContractClient {
      */
     String API_PREFIX = "/api/manager/WbsTreeContract";
 
+    @PostMapping(API_PREFIX + "/updateContractNodeParameter")
+    Boolean updateContractNodeParameter(@RequestBody WbsTreeContract node);
+
+    @GetMapping(API_PREFIX + "/getContractNodeByPrimaryKeyId")
+    WbsTreeContract getContractNodeByPrimaryKeyId(@RequestParam String primaryKeyId);
+
+    @PostMapping(API_PREFIX + "/removeContractTreeNode")
+    Boolean removeContractTreeNode(@RequestParam String ids);
+
     /**
      * 根据primaryKeyId获取合同段划分树的节点信息
      * @param primaryKeyId 节点唯一主键

+ 27 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreePrivateClient.java

@@ -0,0 +1,27 @@
+package org.springblade.manager.feign;
+
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
+
+@FeignClient(value = APPLICATION_NAME_PREFIX +  "manager")
+public interface WbsTreePrivateClient {
+
+    /**
+     * 接口前缀
+     */
+    String API_PREFIX = "/api/manager/WbsTreePrivate";
+
+    @PostMapping(API_PREFIX + "/queryPeersNodeByProjectIdAndId")
+    WbsTreePrivate queryPeersNodeByProjectIdAndId(@RequestParam String projectId, @RequestParam Long id);
+
+    @PostMapping(API_PREFIX + "/queryWbsTreePrivateByProjectIdAndId")
+    List<WbsTreePrivateVO> queryWbsTreePrivateByProjectIdAndId(@RequestParam String projectId, @RequestParam Long id);
+
+}

+ 114 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationQueryController.java → blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -31,9 +31,13 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.WbsTreeContractClient;
+import org.springblade.manager.feign.WbsTreePrivateClient;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
+import org.springblade.manager.vo.WbsTreePrivateVO;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
 import org.springframework.web.bind.annotation.*;
@@ -45,25 +49,132 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.util.List;
 
 /**
- *  资料查询控制器
+ *  资料填报及查询控制器
  *
  * @author BladeX
  * @since 2022-06-08
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("/informationQuery")
+@RequestMapping("/informationWriteQuery")
 @Api(tags = "资料查询接口")
-public class InformationQueryController extends BladeController {
+public class InformationWriteQueryController extends BladeController {
 
 	private final ContractClient contractClient;
 
 	private final WbsTreeContractClient wbsTreeContractClient;
 
+	private final WbsTreePrivateClient wbsTreePrivateClient;
+
 	private final IInformationQueryService informationQueryService;
 
 	private final IDictBizClient dictBizClient;
 
+	/**
+	 * 修改节点信息
+	 * @param node 节点信息
+	 * @return 修改结果
+	 */
+	@PostMapping("/updateContractNodeParameter")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "修改节点信息")
+	@ApiImplicitParam(name = "node", value = "节点信息(目前只允许修改名称)")
+	public R<Boolean> updateContractNodeParameter(@RequestBody WbsTreeContract node){
+		//只允许修改节点名称
+		if(StringUtils.isEmpty(node.getDeptName())){
+			return R.data(false);
+		}
+		return R.data(this.wbsTreeContractClient.updateContractNodeParameter(node));
+	}
+
+	/**
+	 * 获取节点信息
+	 * @param primaryKeyId 节点的primaryKeyId
+	 * @return 节点信息
+	 */
+	@GetMapping("/getContractNodeByPrimaryKeyId")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "获取节点信息")
+	@ApiImplicitParam(name = "primaryKeyId", value = "节点的primaryKeyId")
+	public R<WbsTreeContract> getContractNodeByPrimaryKeyId(@RequestParam String primaryKeyId){
+		return R.data(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId));
+	}
+
+
+	/**
+	 * 删除节点
+	 * @param ids 节点的primaryKeyId
+	 * @return 删除结果
+	 */
+	@PostMapping("/removeContractTreeNode")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "删除节点")
+	@ApiImplicitParam(name = "ids", value = "节点的primaryKeyId")
+	public R<Boolean> removeContractTreeNode(@RequestParam String ids){
+		return R.data(this.wbsTreeContractClient.removeContractTreeNode(ids));
+	}
+
+	/**
+	 * 新增子节点
+	 * @param contractNodePrimaryKeyId 新增的节点所在位置,即当前点出菜单栏的节点PrimaryKeyId
+	 * @param projectNodePrimaryKeyId 被选中的新增节点
+	 * @return 新增结果
+	 */
+	@PostMapping("/saveContractTreeNode")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "新增节点及其子节点")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "contractNodePrimaryKeyId", value = "新增的节点所在位置,即当前点出菜单栏的节点PrimaryKeyId", required = true),
+			@ApiImplicitParam(name = "projectNodePrimaryKeyId", value = "被选中的新增节点", required = true)
+	})
+	public R<Boolean> saveContractTreeNode(@RequestParam String contractNodePrimaryKeyId, @RequestParam String projectNodePrimaryKeyId){
+		//先获取当前节点的信息
+		WbsTreeContract treeContract = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.parseLong(contractNodePrimaryKeyId));
+		//判断新增
+
+		return null;
+	}
+
+	/**
+	 * 懒加载项目级工程划分树
+	 * @param projectId 项目ID
+	 * @param id 节点ID
+	 * @return 结果集
+	 */
+	@PostMapping("/queryWbsTreePrivateByProjectIdAndId")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "懒加载项目级工程划分树")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "projectId", value = "项目ID"),
+			@ApiImplicitParam(name = "id", value = "点击节点ID")
+	})
+	public R<List<WbsTreePrivateVO>> queryWbsTreePrivateByProjectIdAndId(@RequestParam String projectId, @RequestParam String id){
+		return R.data(this.wbsTreePrivateClient.queryWbsTreePrivateByProjectIdAndId(projectId, Long.parseLong(id)));
+	}
+
+	/**
+	 * 获取与当前节点平级的项目级节点
+	 * @param primaryKeyId 主键
+	 * @return 结果
+	 */
+	@PostMapping("/queryPeersNode")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "获取与当前节点平级的项目级节点")
+	@ApiImplicitParam(name = "primaryKeyId", value = "需要新增子节点的节点ID,即当前点出菜单栏的节点ID")
+	public R<WbsTreePrivate> queryPeersNode(@RequestParam String primaryKeyId){
+		if(StringUtils.isEmpty(primaryKeyId) || "null".equals(primaryKeyId)){
+			return R.data(null);
+		}
+
+		//首先获取当前节点信息
+		WbsTreeContract treeContract = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.parseLong(primaryKeyId));
+		//获取与其平级对应的项目级节点
+		WbsTreePrivate treePrivate = this.wbsTreePrivateClient.queryPeersNodeByProjectIdAndId(treeContract.getProjectId(), treeContract.getId());
+
+		return R.data(treePrivate);
+	}
+
+
 	/**
 	 * 获取流程状态分类和文件类型分类
 	 */

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/UserViewProjectContractController.java

@@ -51,6 +51,11 @@ public class UserViewProjectContractController {
         }
         //获取当前用户的所有相关项目及合同段ID
         List<SaveUserInfoByProjectDTO> userDownAll = this.projectAssignmentUserClient.queryCurrentUserDownAllContractAndProjectId(user.getUserId());
+
+        if(userDownAll.size() == 0){
+            return R.data(null);
+        }
+
         //获取项目ID
         List<String> projectIds = userDownAll.stream().map(SaveUserInfoByProjectDTO::getProjectId).distinct().collect(Collectors.toList());
         //获取合同段ID

+ 18 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -2,7 +2,9 @@ package org.springblade.manager.feign;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IWbsTreeContractService;
@@ -19,9 +21,24 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     private final IWbsTreeContractService wbsTreeContractService;
 
+    @Override
+    public Boolean updateContractNodeParameter(WbsTreeContract node) {
+        return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getDeptName, node.getDeptName()).eq(WbsTreeContract::getPKeyId, node.getPKeyId()));
+    }
+
+    @Override
+    public WbsTreeContract getContractNodeByPrimaryKeyId(String primaryKeyId) {
+        return this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, primaryKeyId));
+    }
+
+    @Override
+    public Boolean removeContractTreeNode(String ids) {
+        return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted, 1).in(WbsTreeContract::getPKeyId, Func.toLongList(ids)));
+    }
+
     @Override
     public WbsTreeContract getContractWbsTreeByPrimaryKeyId(Long primaryKeyId) {
-        return this.wbsTreeContractService.getById(primaryKeyId);
+        return this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, primaryKeyId).eq(WbsTreeContract::getIsDeleted, 0));
     }
 
     @Override

+ 35 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreePrivateClientImpl.java

@@ -0,0 +1,35 @@
+package org.springblade.manager.feign;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.service.IWbsTreePrivateService;
+import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
+
+    private final IWbsTreePrivateService wbsTreePrivateService;
+
+    @Override
+    public List<WbsTreePrivateVO> queryWbsTreePrivateByProjectIdAndId(String projectId, Long id) {
+        List<WbsTreePrivate> result =  this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getParentId, id).eq(WbsTreePrivate::getIsDeleted, 0));
+        if(result != null && result.size() != 0){
+            //转换vo
+            return JSONArray.parseArray(JSONObject.toJSONString(result), WbsTreePrivateVO.class);
+        }
+        return null;
+    }
+
+    @Override
+    public WbsTreePrivate queryPeersNodeByProjectIdAndId(String projectId, Long id) {
+        return this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getId, id).eq(WbsTreePrivate::getIsDeleted, 0));
+
+    }
+}