浏览代码

feature: 字段关系curd

mazq 2 年之前
父节点
当前提交
c67d252047

+ 41 - 2
dcuc-app-api/src/main/java/com/dragoninfo/dcuc/app/facade/sub/IAppColumnRelationFacaed.java

@@ -1,16 +1,21 @@
 package com.dragoninfo.dcuc.app.facade.sub;
 package com.dragoninfo.dcuc.app.facade.sub;
 
 
+import com.dragoninfo.dcuc.app.vo.AppColumnDetailVo;
+import com.dragoninfo.dcuc.app.vo.AppColumnRelationPageVO;
 import com.dragoninfo.dcuc.app.vo.AppColumnRelationVO;
 import com.dragoninfo.dcuc.app.vo.AppColumnRelationVO;
+import com.dragoninfo.dcuc.app.vo.AppColumnSaveVo;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 
 /**
 /**
  * @author mazq
  * @author mazq
  * @date 2022/10/5
  * @date 2022/10/5
- *
  */
  */
 @FeignClient(name = "dcuc-app", path = "/dcuc/app/appColumnRelationFacaed")
 @FeignClient(name = "dcuc-app", path = "/dcuc/app/appColumnRelationFacaed")
 public interface IAppColumnRelationFacaed {
 public interface IAppColumnRelationFacaed {
@@ -18,11 +23,45 @@ public interface IAppColumnRelationFacaed {
 
 
     /**
     /**
      * 分页查询列表
      * 分页查询列表
+     *
      * @param searchDTO
      * @param searchDTO
      * @return
      * @return
      */
      */
     @PostMapping("search")
     @PostMapping("search")
-    Page<AppColumnRelationVO> pageSearch(@RequestBody SearchDTO searchDTO);
+    Page<AppColumnRelationPageVO> pageSearch(@RequestBody SearchDTO searchDTO);
 
 
+    /**
+     * 根据id获取详情
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("detail")
+    AppColumnDetailVo detail(@RequestParam("id") String id);
 
 
+    /**
+     * 根据id删除关联关系
+     *
+     * @param id
+     */
+    @DeleteMapping("deleteById")
+    void deleteById(@RequestParam("id") String id);
+
+    /**
+     * 新增关联关系
+     *
+     * @param saveVo
+     * @return
+     */
+    @PostMapping("relationAdd")
+    ResponseStatus relationAdd(@RequestBody AppColumnSaveVo saveVo);
+
+    /**
+     * 关联关系修改
+     *
+     * @param saveVo
+     * @return
+     */
+    @PostMapping("relationUpdate")
+    ResponseStatus relationUpdate(@RequestBody AppColumnSaveVo saveVo);
 }
 }

+ 8 - 0
dcuc-app-api/src/main/java/com/dragoninfo/dcuc/app/facade/sub/IFieldClaFacade.java

@@ -76,4 +76,12 @@ public interface IFieldClaFacade {
     @PostMapping("pageSearch")
     @PostMapping("pageSearch")
     Page<FieldClaAcceptDTO> pageSearch(@RequestBody SearchDTO searchDTO);
     Page<FieldClaAcceptDTO> pageSearch(@RequestBody SearchDTO searchDTO);
 
 
+    /**
+     * 获取二级字段分类
+     *
+     * @param searchDTO
+     * @return
+     */
+    @PostMapping("getSecLevelColumn")
+    List<FieldClaDTO> getSecLevelColumn(@RequestBody SearchDTO searchDTO);
 }
 }

+ 29 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/AppColumnDetailVo.java

@@ -0,0 +1,29 @@
+package com.dragoninfo.dcuc.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2022/10/5
+ */
+@ApiModel(value = "字段关系保存Vo")
+@Data
+public class AppColumnDetailVo {
+
+    @ApiModelProperty("关联关系id, 新增时可不填")
+    private String id;
+
+    @ApiModelProperty(name = "字段分类1 id")
+    private String columnClaIdOne;
+
+    @ApiModelProperty(name = "字段分类2 id")
+    private String columnClaIdTwo;
+
+    @ApiModelProperty(name = "字段分类1 名称")
+    private String columnClaNameOne;
+
+    @ApiModelProperty(name = "字段分类2 名称")
+    private String columnClaNameTwo;
+}

+ 30 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/AppColumnRelationPageVO.java

@@ -0,0 +1,30 @@
+package com.dragoninfo.dcuc.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/10/3
+ */
+@ApiModel(value = "字段关系分页Vo")
+@Data
+public class AppColumnRelationPageVO {
+
+    @ApiModelProperty("关联关系id")
+    private String id;
+
+    @ApiModelProperty("表码名称")
+    private String columnRelation;
+
+    @ApiModelProperty("表码值")
+    private String codeValue;
+
+}

+ 26 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/AppColumnSaveVo.java

@@ -0,0 +1,26 @@
+package com.dragoninfo.dcuc.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2022/10/5
+ */
+@ApiModel(value = "字段关系保存Vo")
+@Data
+public class AppColumnSaveVo {
+
+    @ApiModelProperty("关联关系id")
+    private String id;
+
+    @ApiModelProperty(name = "字段分类1 id")
+    private String columnClaIdOne;
+
+    @ApiModelProperty(name = "字段分类2 id")
+    private String columnClaIdTwo;
+
+
+
+}

+ 2 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/cons/CommonCons.java

@@ -8,6 +8,8 @@ public interface CommonCons {
 
 
     String ID_SEPARATOR = "|";
     String ID_SEPARATOR = "|";
 
 
+    String ID_SEPARATOR_SPLIT = "\\|";
+
     String PATH_SEP = "-";
     String PATH_SEP = "-";
 
 
     Integer PATH_LEVEL_FIR = 1;
     Integer PATH_LEVEL_FIR = 1;

+ 113 - 4
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/sub/AppColumnRelationFacade.java

@@ -1,20 +1,32 @@
 package com.dragoninfo.dcuc.app.facade.sub;
 package com.dragoninfo.dcuc.app.facade.sub;
 
 
+import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.app.entity.sub.AppColumnRelation;
 import com.dragoninfo.dcuc.app.entity.sub.AppColumnRelation;
+import com.dragoninfo.dcuc.app.entity.sub.FieldCla;
 import com.dragoninfo.dcuc.app.service.sub.IAppColumnRelationService;
 import com.dragoninfo.dcuc.app.service.sub.IAppColumnRelationService;
+import com.dragoninfo.dcuc.app.service.sub.IFieldClaService;
+import com.dragoninfo.dcuc.app.vo.AppColumnDetailVo;
+import com.dragoninfo.dcuc.app.vo.AppColumnRelationPageVO;
 import com.dragoninfo.dcuc.app.vo.AppColumnRelationVO;
 import com.dragoninfo.dcuc.app.vo.AppColumnRelationVO;
+import com.dragoninfo.dcuc.app.vo.AppColumnSaveVo;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -28,22 +40,119 @@ public class AppColumnRelationFacade implements IAppColumnRelationFacaed {
     @Autowired
     @Autowired
     private IAppColumnRelationService appColumnRelationService;
     private IAppColumnRelationService appColumnRelationService;
 
 
+    @Autowired
+    private IFieldClaService fieldClaService;
+
     @Override
     @Override
-    public Page<AppColumnRelationVO> pageSearch(SearchDTO searchDTO) {
+    public Page<AppColumnRelationPageVO> pageSearch(SearchDTO searchDTO) {
         Searchable searchable = Searchable.toSearchable(searchDTO);
         Searchable searchable = Searchable.toSearchable(searchDTO);
         Pageable pageable = searchable.getPage();
         Pageable pageable = searchable.getPage();
+        searchable.addSort(Sort.Direction.DESC, "createTime");
         Page<AppColumnRelation> page = appColumnRelationService.pageSearch(searchable);
         Page<AppColumnRelation> page = appColumnRelationService.pageSearch(searchable);
         if (page.isEmpty()) {
         if (page.isEmpty()) {
             return new PageImpl<>(Collections.emptyList(), pageable, 0L);
             return new PageImpl<>(Collections.emptyList(), pageable, 0L);
         }
         }
         List<AppColumnRelation> content = page.getContent();
         List<AppColumnRelation> content = page.getContent();
-        List<AppColumnRelationVO> collect = content.stream().map(e -> {
-            AppColumnRelationVO vo = new AppColumnRelationVO();
-            BeanUtils.copyProperties(e, vo);
+        List<AppColumnRelationPageVO> collect = content.stream().map(e -> {
+            AppColumnRelationPageVO vo = new AppColumnRelationPageVO();
+            vo.setId(e.getId());
+            vo.setCodeValue(e.getCodeValue());
+            String codeName = e.getCodeName();
+            String[] split = codeName.split("->");
+            String relationName = split[0].split(StrUtil.UNDERLINE)[1] + split[1].split(StrUtil.UNDERLINE)[1];
+            vo.setColumnRelation(relationName);
             return vo;
             return vo;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
         return new PageImpl<>(collect, pageable, page.getTotalElements());
         return new PageImpl<>(collect, pageable, page.getTotalElements());
     }
     }
 
 
+    @Override
+    public AppColumnDetailVo detail(String id) {
+        AppColumnRelation relation = appColumnRelationService.getById(id);
+        if (null != relation) {
+            AppColumnDetailVo vo = new AppColumnDetailVo();
+            vo.setId(relation.getId());
+            String codeName = relation.getCodeName();
+            String[] split = codeName.split("->");
+            String oneName = split[0].split(StrUtil.UNDERLINE)[1];
+            String twoName = split[1].split(StrUtil.UNDERLINE)[1];
+            vo.setColumnClaNameOne(oneName);
+            vo.setColumnClaNameTwo(twoName);
+            String oneCode = relation.getColumnOneClassValue();
+            List<FieldCla> oneList = fieldClaService.getByNameLike(oneCode, "2");
+            if (CollectionUtils.isNotEmpty(oneList)) {
+                vo.setColumnClaIdOne(oneList.get(0).getId());
+            }
+            String twoCode = relation.getColumnTwoClassValue();
+            List<FieldCla> twoList = fieldClaService.getByNameLike(twoCode, "2");
+            if (CollectionUtils.isNotEmpty(twoList)) {
+                vo.setColumnClaIdTwo(twoList.get(0).getId());
+            }
+            return vo;
+        }
+        return null;
+    }
+
+    @Override
+    public void deleteById(String id) {
+        appColumnRelationService.deleteById(id);
+    }
+
+    @Override
+    public ResponseStatus relationAdd(AppColumnSaveVo saveVo) {
+        AppColumnRelation relation = getNewRelation(saveVo);
+        AppColumnRelation exist = appColumnRelationService.getByCode(relation.getCodeValue());
+        if (null != exist) {
+            return ResponseStatus.fail("字段关系已存在");
+        }
+        appColumnRelationService.save(relation);
+        return ResponseStatus.success();
+    }
+
+    @Override
+    public ResponseStatus relationUpdate(AppColumnSaveVo saveVo) {
+        AppColumnRelation relation = getNewRelation(saveVo);
+        String codeValue = relation.getCodeValue();
+        AppColumnRelation oldRelation = appColumnRelationService.getById(saveVo.getId());
+        if (codeValue.equals(oldRelation.getCodeValue())) {
+            return ResponseStatus.fail("字段关系未修改");
+        }
+        AppColumnRelation exist = appColumnRelationService.getByCode(codeValue);
+        if (null != exist) {
+            return ResponseStatus.fail("字段关系已存在");
+        }
+        BeanUtils.copyProperties(relation, oldRelation, "createTime", "createUser");
+        appColumnRelationService.update(oldRelation);
+        return ResponseStatus.success();
+    }
+
+    private AppColumnRelation getNewRelation(AppColumnSaveVo saveVo) {
+        String columnIdOne = saveVo.getColumnClaIdOne();
+        String columnIdTwo = saveVo.getColumnClaIdTwo();
+        List<String> list = new ArrayList<>();
+        list.add(columnIdOne);
+        list.add(columnIdTwo);
+        List<FieldCla> secColumnClas = fieldClaService.getByIds(list);
+        List<String> firIds = secColumnClas.stream().map(FieldCla::getFirId).distinct().collect(Collectors.toList());
+        List<FieldCla> firColumnClas = fieldClaService.getByIds(firIds);
+        firColumnClas.addAll(secColumnClas);
+        Map<String, FieldCla> claMap = firColumnClas.stream().collect(Collectors.toMap(FieldCla::getId, e -> e));
+        AppColumnRelation relation = new AppColumnRelation();
+        // 组装成关联关系对象
+        FieldCla oneFieldCla = claMap.get(columnIdOne);
+        FieldCla twoFieldCla = claMap.get(columnIdTwo);
+        String oneName = oneFieldCla.getName();
+        String twoName = twoFieldCla.getName();
+        relation.setColumnOneClassValue(oneName);
+        relation.setColumnTwoClassValue(twoName);
+        FieldCla firOneFieldCla = claMap.get(oneFieldCla.getFirId());
+        FieldCla firTwoFieldCla = claMap.get(twoFieldCla.getFirId());
+        String code = firOneFieldCla.getName() + StrUtil.UNDERLINE + oneName + "->" + firTwoFieldCla + twoName;
+        relation.setCodeName(code);
+        relation.setCodeValue(code);
+        relation.setDeleted(BooleanEnum.FALSE.value);
+        return relation;
+    }
+
 
 
 }
 }

+ 16 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/sub/FieldClaFacade.java

@@ -3,9 +3,12 @@ package com.dragoninfo.dcuc.app.facade.sub;
 import com.dragoninfo.dcuc.app.dto.sub.FieldClaAcceptDTO;
 import com.dragoninfo.dcuc.app.dto.sub.FieldClaAcceptDTO;
 import com.dragoninfo.dcuc.app.dto.sub.FieldClaDTO;
 import com.dragoninfo.dcuc.app.dto.sub.FieldClaDTO;
 import com.dragoninfo.dcuc.app.entity.sub.FieldCla;
 import com.dragoninfo.dcuc.app.entity.sub.FieldCla;
+import com.dragoninfo.dcuc.app.enumresources.DataAuthTypeCodeEnum;
 import com.dragoninfo.dcuc.app.service.sub.IFieldClaService;
 import com.dragoninfo.dcuc.app.service.sub.IFieldClaService;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import com.dragonsoft.duceap.core.search.Searchable;
+import com.dragonsoft.duceap.core.search.enums.SearchOperator;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
@@ -13,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @author mazq
  * @author mazq
@@ -62,4 +66,16 @@ public class FieldClaFacade implements IFieldClaFacade {
     public Page<FieldClaAcceptDTO> pageSearch(SearchDTO searchDTO) {
     public Page<FieldClaAcceptDTO> pageSearch(SearchDTO searchDTO) {
         return fieldClaService.pageSearch(searchDTO);
         return fieldClaService.pageSearch(searchDTO);
     }
     }
+
+    @Override
+    public List<FieldClaDTO> getSecLevelColumn(SearchDTO searchDTO) {
+        Searchable searchable = Searchable.toSearchable(searchDTO);
+        searchable.addSearchFilter("type", SearchOperator.eq, DataAuthTypeCodeEnum.AUTH_DATA_FIELD_SEC.value);
+        List<FieldCla> list = fieldClaService.findList(searchable);
+        return list.stream().map(e -> {
+            FieldClaDTO dto = new FieldClaDTO();
+            BeanUtils.copyProperties(e, dto);
+            return dto;
+        }).collect(Collectors.toList());
+    }
 }
 }

+ 39 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/IAppColumnRelationService.java

@@ -24,7 +24,46 @@ public interface IAppColumnRelationService {
      */
      */
     void sync(List<AppColumnRelationVO> list);
     void sync(List<AppColumnRelationVO> list);
 
 
+    /**
+     * 获取所有关系
+     *
+     * @return
+     */
     List<AppColumnRelation> findAll();
     List<AppColumnRelation> findAll();
 
 
+    /**
+     * 分页查询
+     *
+     * @param searchable
+     * @return
+     */
     Page<AppColumnRelation> pageSearch(Searchable searchable);
     Page<AppColumnRelation> pageSearch(Searchable searchable);
+
+    /**
+     * 根据id获取详情
+     *
+     * @param id
+     * @return
+     */
+    AppColumnRelation getById(String id);
+
+    /**
+     * 根据id删除关联关系
+     * @param id
+     */
+    void deleteById(String id);
+
+    AppColumnRelation getByCode(String code);
+
+    /**
+     * 新增
+     * @param relation
+     */
+    void save(AppColumnRelation relation);
+
+    /**
+     * 修改
+     * @param oldRelation
+     */
+    void update(AppColumnRelation oldRelation);
 }
 }

+ 8 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/IFieldClaService.java

@@ -6,6 +6,7 @@ import com.dragoninfo.dcuc.app.entity.sub.FieldCla;
 import com.dragoninfo.dcuc.app.vo.DataResourceSyncTreeVo;
 import com.dragoninfo.dcuc.app.vo.DataResourceSyncTreeVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 
 
 import java.util.List;
 import java.util.List;
@@ -90,6 +91,13 @@ public interface IFieldClaService {
      */
      */
     List<FieldCla> getByIds(List<String> ids);
     List<FieldCla> getByIds(List<String> ids);
 
 
+    /**
+     * 批量查询
+     * @param searchable
+     * @return
+     */
+    List<FieldCla> findList(Searchable searchable);
+
     /**
     /**
      * 字段分类数据同步
      * 字段分类数据同步
      * @param nodes
      * @param nodes

+ 25 - 1
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/impl/AppColumnRelationServiceImpl.java

@@ -7,8 +7,8 @@ import com.dragoninfo.dcuc.app.entity.sub.AppColumnRelation;
 import com.dragoninfo.dcuc.app.mapper.sub.AppColumnRelationMapper;
 import com.dragoninfo.dcuc.app.mapper.sub.AppColumnRelationMapper;
 import com.dragoninfo.dcuc.app.service.sub.IAppColumnRelationService;
 import com.dragoninfo.dcuc.app.service.sub.IAppColumnRelationService;
 import com.dragoninfo.dcuc.app.vo.AppColumnRelationVO;
 import com.dragoninfo.dcuc.app.vo.AppColumnRelationVO;
-import com.dragoninfo.dcuc.app.vo.DataLevelVo;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
@@ -69,12 +69,36 @@ public class AppColumnRelationServiceImpl implements IAppColumnRelationService {
         return appColumnRelationMapper.pagingBySearchable(searchable);
         return appColumnRelationMapper.pagingBySearchable(searchable);
     }
     }
 
 
+    @Override
+    public AppColumnRelation getById(String id) {
+        if (StringUtils.isBlank(id)) {
+            return null;
+        }
+        return appColumnRelationMapper.selectById(id);
+    }
+
+    @Override
+    public void deleteById(String id) {
+        appColumnRelationMapper.deleteById(id);
+    }
+
+    @Override
     public AppColumnRelation getByCode(String code) {
     public AppColumnRelation getByCode(String code) {
         LambdaQueryWrapper<AppColumnRelation> lambdaQuery = Wrappers.lambdaQuery();
         LambdaQueryWrapper<AppColumnRelation> lambdaQuery = Wrappers.lambdaQuery();
         lambdaQuery.eq(AppColumnRelation::getCodeValue, code);
         lambdaQuery.eq(AppColumnRelation::getCodeValue, code);
         return appColumnRelationMapper.selectOne(lambdaQuery);
         return appColumnRelationMapper.selectOne(lambdaQuery);
     }
     }
 
 
+    @Override
+    public void save(AppColumnRelation relation) {
+        appColumnRelationMapper.insert(relation);
+    }
+
+    @Override
+    public void update(AppColumnRelation oldRelation) {
+        appColumnRelationMapper.updateById(oldRelation);
+    }
+
     public String getOneCodeVale(String relationCodeValue) {
     public String getOneCodeVale(String relationCodeValue) {
         if (StrUtil.isBlank(relationCodeValue)) {
         if (StrUtil.isBlank(relationCodeValue)) {
             throw new IllegalArgumentException();
             throw new IllegalArgumentException();

+ 5 - 1
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/impl/FieldClaServiceImpl.java

@@ -11,7 +11,6 @@ import com.dragoninfo.dcuc.app.enumresources.sub.FieldClaTypeEnum;
 import com.dragoninfo.dcuc.app.mapper.sub.FieldClaMapper;
 import com.dragoninfo.dcuc.app.mapper.sub.FieldClaMapper;
 import com.dragoninfo.dcuc.app.service.sub.IFieldClaService;
 import com.dragoninfo.dcuc.app.service.sub.IFieldClaService;
 import com.dragoninfo.dcuc.app.vo.DataResourceSyncTreeVo;
 import com.dragoninfo.dcuc.app.vo.DataResourceSyncTreeVo;
-import com.dragoninfo.dcuc.app.vo.DataResourceTreeVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
@@ -254,6 +253,11 @@ public class FieldClaServiceImpl implements IFieldClaService {
         return fieldClaMapper.selectList(queryWrapper);
         return fieldClaMapper.selectList(queryWrapper);
     }
     }
 
 
+    @Override
+    public List<FieldCla> findList(Searchable searchable) {
+        return fieldClaMapper.findBySearchable(searchable);
+    }
+
     @Override
     @Override
     public void sync(List<DataResourceSyncTreeVo> nodes, String path) {
     public void sync(List<DataResourceSyncTreeVo> nodes, String path) {
         if(CollectionUtils.isEmpty(nodes)) {
         if(CollectionUtils.isEmpty(nodes)) {