Bläddra i källkod

wbs私有库设置

liuyc 3 år sedan
förälder
incheckning
cb2476d33f

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsNodeTableVO.java

@@ -52,4 +52,9 @@ public class WbsNodeTableVO implements Serializable {
 	@ApiModelProperty(value = "是否关联清表 '1'否 '2'是")
 	private Integer isLinkTable;
 
+	/**
+	 * 初始化实体表名
+	 */
+	private String initTableName;
+
 }

+ 86 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -0,0 +1,86 @@
+package org.springblade.manager.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.manager.dto.WbsTreeDTO;
+import org.springblade.manager.entity.WbsFormElement;
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.service.IWbsTreePrivateService;
+import org.springblade.manager.vo.WbsNodeTableVO;
+import org.springblade.system.cache.DictCache;
+import org.springblade.system.enums.DictEnum;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/wbsPrivate")
+@Api(value = "项目级私有wbs动态库", tags = "项目级私有wbs动态库接口")
+public class WbsTreePrivateController extends BladeController {
+
+    private final IWbsTreePrivateService wbsTreePrivateService;
+
+    /**
+     * wbs私有库新增节点接口
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "新增或修改节点", notes = "WbsTreePrivate")
+    public R submit(@Valid @RequestBody WbsTreePrivate wbsTreePrivate) {
+        if (wbsTreePrivateService.submit(wbsTreePrivate)) {
+            CacheUtil.clear(SYS_CACHE);
+            // 返回懒加载树更新节点所需字段
+            Kv kv = Kv.create().set("id", String.valueOf(wbsTreePrivate.getId())).set("tenantId", wbsTreePrivate.getTenantId())
+                    .set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, wbsTreePrivate.getDeptCategory()));
+            return R.data(kv);
+        }
+        return R.fail("操作失败");
+    }
+
+    /**
+     * 查询当前节点下所有表单(根据节点ID查询当前表单)
+     */
+    @GetMapping("/findNodeTableByCondition")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "查询当前节点下所有元素表", notes = "传入父节点id、wbsId、projectId")
+    public R<List<WbsNodeTableVO>> findNodeTableByCondition(@RequestParam("parentId") String parentId,
+                                                            @RequestParam("wbsId") String wbsId,
+                                                            @RequestParam("projectId") String projectId) {
+        List<WbsNodeTableVO> rs = wbsTreePrivateService.selectByNodeTable(parentId, wbsId, projectId);
+        if (!("").equals(rs) && rs.size() > 0) {
+            return R.data(rs);
+        }
+        return R.fail(200, "未查询到数据");
+    }
+
+
+    @GetMapping("/removeTableByCondition")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "表单删除", notes = "传入表单id、wbsId、projectId")
+    public R removeTableByCondition(@RequestParam("id") String id,
+                                    @RequestParam("wbsId") String wbsId,
+                                    @RequestParam("projectId") String projectId) {
+        //删除表单
+        boolean restul = wbsTreePrivateService.removeTableByCondition(id,wbsId,projectId);
+        if (restul) {
+            return R.success("删除成功");
+        }
+        return R.fail("删除失败");
+    }
+
+
+}

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreePrivateVO;
 import org.springblade.manager.vo.WbsTreeVO;
 
@@ -52,4 +53,5 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
     List<WbsTree> selectIsTable(Long tableParentId);
 
 
+    List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId);
 }

+ 18 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -171,5 +171,23 @@
             AND `status` = 1
             AND parent_id = #{tableParentId}
     </select>
+    <select id="selectByNodeTable" resultType="org.springblade.manager.vo.WbsNodeTableVO">
+        SELECT
+            wt.id AS id,
+            wt.dept_name AS tableName,
+            wt.table_type AS tableType,
+            wt.`status` AS isCreateTable ,
+            wt.table_owner as tableOwner,
+            wt.is_link_table,
+            wt.init_table_name
+        FROM
+            m_wbs_tree_private AS wt
+        WHERE
+            wt.type = 2
+        AND wt.is_deleted = 0
+        AND wt.parent_id = #{id}
+        AND wt.wbs_id = #{wbsId}
+        AND wt.project_id = #{projectId}
+    </select>
 
 </mapper>

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

@@ -2,6 +2,7 @@ package org.springblade.manager.service;
 
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreePrivateVO;
 
 
@@ -16,4 +17,10 @@ import java.util.List;
 public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     List<WbsTreePrivateVO> tree(String wbsId,String projectId);
 
+    boolean submit(WbsTreePrivate wbsTreePrivate);
+
+    List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId);
+
+
+    boolean removeTableByCondition(String id, String wbsId, String projectId);
 }

+ 51 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -1,13 +1,21 @@
 package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
 
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.IWbsTreePrivateService;
+import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreePrivateVO;
 import org.springframework.stereotype.Service;
 
@@ -22,6 +30,49 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         return ForestNodeMerger.merge(baseMapper.tree(wbsId, projectId));
     }
 
+    @Override
+    public boolean submit(WbsTreePrivate dept) {
+        if (Func.isEmpty(dept.getParentId())) {
+            dept.setTenantId(AuthUtil.getTenantId());
+            dept.setParentId(BladeConstant.TOP_PARENT_ID);
+            dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+        }
+        if (dept.getParentId() > 0) {
+            WbsTreePrivate parent = getById(dept.getParentId());
+            if (Func.toLong(dept.getParentId()) == Func.toLong(dept.getId())) {
+                throw new ServiceException("父节点不可选择自身!");
+            }
+            dept.setTenantId(parent.getTenantId());
+            String ancestors = parent.getAncestors() + StringPool.COMMA + dept.getParentId();
+            dept.setAncestors(ancestors);
+        }
+        dept.setStatus(1);
+        dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+        return saveOrUpdate(dept);
+    }
+
+    @Override
+    public List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId) {
+        //查询节点下的所有表单
+        List<WbsNodeTableVO> wbsNodeTableVOS = baseMapper.selectByNodeTable(id, wbsId, projectId);
+        return wbsNodeTableVOS;
+    }
+
+    @Override
+    public boolean removeTableByCondition(String id, String wbsId, String projectId) {
+        UpdateWrapper<WbsTreePrivate> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("is_deleted", 1);
+        updateWrapper.eq("id", id);
+        updateWrapper.eq("wbs_id", wbsId);
+        updateWrapper.eq("project_id", projectId);
+        updateWrapper.eq("sataus", 1);
+        int integer = baseMapper.delete(updateWrapper);
+        if (integer > 0) {
+            return true;
+        }
+        return false;
+    }
+
 
     public List<WbsTreePrivate> findAllNodeList(String wbsTreeIds, String projectId) {
         String[] ids = wbsTreeIds.split(",");