فهرست منبع

Merge branch 'mazq-jiekouyouhua-230523' into 'release/v2.2.5'

Mazq jiekouyouhua 230523

See merge request dcuc-tjdsj/app-service!90
黄资权 1 سال پیش
والد
کامیت
1b6aa9f174

+ 19 - 4
dcuc-app-api/src/main/java/com/dragoninfo/dcuc/app/facade/sub/IAppDataItemInfoFacade.java

@@ -1,12 +1,12 @@
 package com.dragoninfo.dcuc.app.facade.sub;
 
 import com.dragoninfo.dcuc.app.vo.AppDataItemInfoRespVO;
+import com.dragoninfo.dcuc.app.vo.AppDataItemPageVo;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 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 org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -39,4 +39,19 @@ public interface IAppDataItemInfoFacade {
     @GetMapping("selectByTableId")
     List<AppDataItemInfoRespVO> selectByTableId(@RequestParam("tableId") String tableId);
 
+    /**
+     * 分页查询
+     * @param searchDTO
+     * @return
+     */
+    @PostMapping("pageSearch")
+    Page<AppDataItemPageVo> pageSearch(@RequestBody SearchDTO searchDTO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("deleteById/{id}")
+    ResponseStatus deleteById(@PathVariable("id") String id);
 }

+ 27 - 4
dcuc-app-api/src/main/java/com/dragoninfo/dcuc/app/facade/sub/IAppDataResourceInfoFacade.java

@@ -1,12 +1,12 @@
 package com.dragoninfo.dcuc.app.facade.sub;
 
 import com.dragoninfo.dcuc.app.vo.AppDataResourceInfoRespVO;
+import com.dragoninfo.dcuc.app.vo.AppDataResourcePageVo;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 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 org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -38,4 +38,27 @@ public interface IAppDataResourceInfoFacade {
     @GetMapping("findByResourceCode")
     AppDataResourceInfoRespVO findByResourceCode(@RequestParam("resourceCode") String resourceCode);
 
+    /**
+     * 分页查询
+     * @param searchDTO
+     * @return
+     */
+    @PostMapping("pageSearch")
+    Page<AppDataResourcePageVo> pageSearch(@RequestBody SearchDTO searchDTO);
+
+    /**
+     * 查看详情
+     * @param id
+     * @return
+     */
+    @GetMapping("getById/{id}")
+    AppDataResourceInfoRespVO getById(@PathVariable("id") String id);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("deleteById/{id}")
+    ResponseStatus deleteById(@PathVariable("id") String id);
 }

+ 56 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/AppDataItemPageVo.java

@@ -0,0 +1,56 @@
+package com.dragoninfo.dcuc.app.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 数据集分页展示Vo
+ * @author mazq
+ * @date 2023/6/28
+ */
+@Data
+@ApiModel(value = "数据集分页展示Vo")
+public class AppDataItemPageVo {
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "数据集资源id")
+    private String resourceTableId;
+
+    @ApiModelProperty(value = "数据集资源名称")
+    private String appDataResourceName;
+
+    @ApiModelProperty(value = "字段分类名称")
+    private String columnClassifyName;
+
+    @ApiModelProperty(value = "字段英文名称")
+    private String columnCode;
+
+    @ApiModelProperty(value = "字段中文名称")
+    private String columnName;
+
+    @ApiModelProperty(value = "数据项编号")
+    private String dataItemNo;
+
+    @ApiModelProperty(value = "数据项标识符")
+    private String dataItemCode;
+
+    @ApiModelProperty(value = "是否失效,true/false")
+    private String invalidStatus;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date columnRegisterTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date columnUpdateTime;
+}

+ 65 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/AppDataResourcePageVo.java

@@ -0,0 +1,65 @@
+package com.dragoninfo.dcuc.app.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 数据集分页展示Vo
+ * @author mazq
+ * @date 2023/6/28
+ */
+@Data
+@ApiModel(value = "数据集分页展示Vo")
+public class AppDataResourcePageVo {
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "数据资源名称")
+    private String resourceName;
+
+    @ApiModelProperty(value = "数据资源标识符")
+    private String resourceCode;
+
+    @ApiModelProperty(value = "应用系统编码称")
+    private String applicationCode;
+
+    @ApiModelProperty(value = "应用系统名称")
+    private String applicationCodeName;
+
+    @ApiModelProperty(value = "事权单位名称")
+    private String authorityDeptName;
+
+    @ApiModelProperty(value = "数据资源事权单位编号")
+    private String authorityDeptCode;
+
+    @ApiModelProperty(value = "管理单位名称")
+    private String manageDeptName;
+
+    @ApiModelProperty(value = "管理单位名称")
+    private String manageDeptCode;
+
+    @ApiModelProperty(value = "数据组织一级分类名称")
+    private String dataClassifyOneName;
+
+    @ApiModelProperty(value = "数据组织二级分类名称")
+    private String dataClassifyTwoName;
+
+    @ApiModelProperty(value = "标签名")
+    private String labelName;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}

+ 1 - 1
dcuc-app-service/pom.xml

@@ -86,7 +86,7 @@
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-common</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.1.0-tjdsj-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <artifactId>hibernate-core</artifactId>

+ 14 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/sub/AppDataItemInfoFacade.java

@@ -5,10 +5,13 @@ import com.dragoninfo.dcuc.app.entity.sub.AppDataItemInfo;
 import com.dragoninfo.dcuc.app.entity.sub.AppDataResourceInfo;
 import com.dragoninfo.dcuc.app.service.sub.IAppDataItemInfoService;
 import com.dragoninfo.dcuc.app.vo.AppDataItemInfoRespVO;
+import com.dragoninfo.dcuc.app.vo.AppDataItemPageVo;
 import com.dragoninfo.dcuc.app.vo.AppDataResourceInfoRespVO;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -42,6 +45,17 @@ public class AppDataItemInfoFacade implements IAppDataItemInfoFacade {
         return toRespVOList(dataItemInfoList);
     }
 
+    @Override
+    public Page<AppDataItemPageVo> pageSearch(SearchDTO searchDTO) {
+        return appDataItemInfoService.pageSearch(searchDTO);
+    }
+
+    @Override
+    public ResponseStatus deleteById(String id) {
+        appDataItemInfoService.deleteById(id);
+        return ResponseStatus.success();
+    }
+
     private List<AppDataItemInfoRespVO> toRespVOList(List<AppDataItemInfo> dataItemInfoList) {
         List<AppDataItemInfoRespVO> respVOList = new ArrayList<>(dataItemInfoList.size());
         for (AppDataItemInfo appDataItemInfo : dataItemInfoList) {

+ 24 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/sub/AppDataResourceInfoFacade.java

@@ -4,14 +4,19 @@ import cn.hutool.core.bean.BeanUtil;
 import com.dragoninfo.dcuc.app.entity.sub.AppDataResourceInfo;
 import com.dragoninfo.dcuc.app.service.sub.IAppDataResourceInfoService;
 import com.dragoninfo.dcuc.app.vo.AppDataResourceInfoRespVO;
+import com.dragoninfo.dcuc.app.vo.AppDataResourcePageVo;
+import com.dragoninfo.dcuc.common.utils.DcucBeanUtil;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * <p>
@@ -50,4 +55,23 @@ public class AppDataResourceInfoFacade implements IAppDataResourceInfoFacade {
         BeanUtil.copyProperties(appDataResourceInfo, appDataResourceInfoRespVO);
         return appDataResourceInfoRespVO;
     }
+
+    @Override
+    public Page<AppDataResourcePageVo> pageSearch(SearchDTO searchDTO) {
+        return appDataResourceInfoService.pageSearch(searchDTO);
+    }
+
+    @Override
+    public AppDataResourceInfoRespVO getById(String id) {
+        AppDataResourceInfo resourceInfo = appDataResourceInfoService.getById(id);
+        return Optional.ofNullable(resourceInfo)
+                .map(e-> DcucBeanUtil.createCopyToObject(e, AppDataResourceInfoRespVO.class))
+                .orElse(null);
+    }
+
+    @Override
+    public ResponseStatus deleteById(String id) {
+        appDataResourceInfoService.deleteById(id);
+        return ResponseStatus.success();
+    }
 }

+ 3 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/impl/ApplyInfoServiceImpl.java

@@ -701,6 +701,9 @@ public class ApplyInfoServiceImpl implements IApplyInfoService {
 
     @Override
     public List<ApplyInfo> getListByCodes(List<String> appCodes) {
+        if (CollectionUtils.isEmpty(appCodes)) {
+            return Collections.emptyList();
+        }
         LambdaQueryWrapper<ApplyInfo> queryWrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<ApplyInfo> wrapper = queryWrapper.select().in(ApplyInfo::getApplyCode, appCodes);
         return applyInfoMapper.selectList(wrapper);

+ 15 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/IAppDataItemInfoService.java

@@ -2,8 +2,10 @@ package com.dragoninfo.dcuc.app.service.sub;
 
 import com.dragoninfo.dcuc.app.entity.sub.AppDataItemInfo;
 import com.dragoninfo.dcuc.app.vo.AppDataItemInfoRespVO;
+import com.dragoninfo.dcuc.app.vo.AppDataItemPageVo;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.core.search.Searchable;
+import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -79,4 +81,17 @@ public interface IAppDataItemInfoService {
      * @return
      */
     Long count(Date startTime, Date endTime);
+
+    /**
+     * 分页查询
+     * @param searchDTO
+     * @return
+     */
+    Page<AppDataItemPageVo> pageSearch(SearchDTO searchDTO);
+
+    /**
+     * 根据id删除
+     * @param id
+     */
+    void deleteById(String id);
 }

+ 30 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/IAppDataResourceInfoService.java

@@ -1,7 +1,10 @@
 package com.dragoninfo.dcuc.app.service.sub;
 
 import com.dragoninfo.dcuc.app.entity.sub.AppDataResourceInfo;
+import com.dragoninfo.dcuc.app.vo.AppDataResourcePageVo;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.core.search.Searchable;
+import org.springframework.data.domain.Page;
 
 import java.util.List;
 
@@ -63,4 +66,31 @@ public interface IAppDataResourceInfoService {
      * @return 数据资源
      */
     AppDataResourceInfo findByResourceCode(String resourceCode);
+
+    /**
+     * 根据id查询
+     * @param ids
+     * @return
+     */
+    List<AppDataResourceInfo> getByIds(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param searchDTO
+     * @return
+     */
+    Page<AppDataResourcePageVo> pageSearch(SearchDTO searchDTO);
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    AppDataResourceInfo getById(String id);
+
+    /**
+     * 删除
+     * @param id
+     */
+    void deleteById(String id);
 }

+ 37 - 0
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/impl/AppDataItemInfoServiceImpl.java

@@ -4,16 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragoninfo.dcuc.app.entity.sub.AppDataItemInfo;
+import com.dragoninfo.dcuc.app.entity.sub.AppDataResourceInfo;
 import com.dragoninfo.dcuc.app.mapper.sub.AppDataItemInfoMapper;
 import com.dragoninfo.dcuc.app.service.sub.IAppDataItemInfoService;
+import com.dragoninfo.dcuc.app.service.sub.IAppDataResourceInfoService;
+import com.dragoninfo.dcuc.app.vo.AppDataItemPageVo;
+import com.dragoninfo.dcuc.common.utils.DcucBeanUtil;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -30,6 +37,9 @@ public class AppDataItemInfoServiceImpl implements IAppDataItemInfoService {
     @Autowired
     private AppDataItemInfoMapper appDataItemInfoMapper;
 
+    @Autowired
+    private IAppDataResourceInfoService appDataResourceInfoService;
+
     @Transactional(rollbackFor = Throwable.class)
     @Override
     public void saveAll(List<AppDataItemInfo> appDataItemInfoList) {
@@ -85,6 +95,33 @@ public class AppDataItemInfoServiceImpl implements IAppDataItemInfoService {
         return Long.valueOf(appDataItemInfoMapper.selectCount(query));
     }
 
+    @Override
+    public Page<AppDataItemPageVo> pageSearch(SearchDTO searchDTO) {
+        Searchable searchable = Searchable.toSearchable(searchDTO);
+        Page<AppDataItemInfo> appDataItemInfos = appDataItemInfoMapper.pagingBySearchable(searchable);
+        Page<AppDataItemPageVo> page = DcucBeanUtil.createCopyToObjectPage(appDataItemInfos, AppDataItemPageVo.class);
+        // 查询数据集资源
+        List<String> tableIds = page.getContent()
+                .stream()
+                .map(AppDataItemPageVo::getResourceTableId).distinct()
+                .collect(Collectors.toList());
+        List<AppDataResourceInfo> tableInfos = appDataResourceInfoService.getByIds(tableIds);
+        Map<String, String> tableNameMap = tableInfos.stream()
+                .collect(Collectors.toMap(AppDataResourceInfo::getId, AppDataResourceInfo::getResourceName));
+        page.getContent().forEach(e -> {
+            String resourceTableId = e.getResourceTableId();
+            e.setAppDataResourceName(tableNameMap.get(resourceTableId));
+        });
+
+        return page;
+    }
+
+    @Transactional(rollbackFor = Throwable.class)
+    @Override
+    public void deleteById(String id) {
+        appDataItemInfoMapper.deleteById(id);
+    }
+
     @Override
     public List<AppDataItemInfo> getHasClassifyColInfos() {
         LambdaQueryWrapper<AppDataItemInfo> query = Wrappers.lambdaQuery();

+ 101 - 2
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/service/sub/impl/AppDataResourceInfoServiceImpl.java

@@ -1,19 +1,29 @@
 package com.dragoninfo.dcuc.app.service.sub.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.entity.sub.AppDataResourceInfo;
 import com.dragoninfo.dcuc.app.mapper.sub.AppDataResourceInfoMapper;
+import com.dragoninfo.dcuc.app.service.IApplyInfoService;
 import com.dragoninfo.dcuc.app.service.sub.IAppDataResourceInfoService;
-import com.dragonsoft.duceap.commons.util.string.StringUtils;
+import com.dragoninfo.dcuc.app.vo.AppDataResourcePageVo;
+import com.dragoninfo.dcuc.common.utils.DcucBeanUtil;
+import com.dragoninfo.dcuc.user.entity.org.OrgInfo;
+import com.dragoninfo.dcuc.user.facade.org.IOrgInfoFacade;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.duceap.core.search.Searchable;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -29,6 +39,12 @@ public class AppDataResourceInfoServiceImpl implements IAppDataResourceInfoServi
     @Autowired
     private AppDataResourceInfoMapper appDataResourceInfoMapper;
 
+    @Autowired
+    private IApplyInfoService applyInfoService;
+
+    @Autowired
+    private IOrgInfoFacade orgInfoFacade;
+
     @Transactional(rollbackFor = Throwable.class)
     @Override
     public void saveAll(List<AppDataResourceInfo> resourceInfoList) {
@@ -92,4 +108,87 @@ public class AppDataResourceInfoServiceImpl implements IAppDataResourceInfoServi
         queryWrapper.eq(AppDataResourceInfo::getResourceCode, resourceCode);
         return appDataResourceInfoMapper.selectOne(queryWrapper);
     }
+
+    @Override
+    public List<AppDataResourceInfo> getByIds(List<String> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        LambdaQueryWrapper<AppDataResourceInfo> query = Wrappers.lambdaQuery();
+        query.in(AppDataResourceInfo::getId, ids);
+        return appDataResourceInfoMapper.selectList(query);
+    }
+
+    @Override
+    public Page<AppDataResourcePageVo> pageSearch(SearchDTO searchDTO) {
+        Searchable searchable = Searchable.toSearchable(searchDTO);
+        Page<AppDataResourceInfo> page = appDataResourceInfoMapper.pagingBySearchable(searchable);
+        Page<AppDataResourcePageVo> pageVos = DcucBeanUtil.createCopyToObjectPage(page, AppDataResourcePageVo.class, (s, t) -> {
+            String labelName = Stream.of(s.getDataLabelOneName(), s.getDataLabelTwoName(),
+                            s.getDataLabelThreeName(), s.getDataLabelFourName(),
+                            s.getDataLabelFiveName()).filter(StringUtils::isNotBlank)
+                    .collect(Collectors.joining(StrUtil.COMMA));
+            t.setLabelName(labelName);
+            return t;
+        });
+
+        // 查询应用名和机构名
+        List<String> appCodes = pageVos.stream()
+                .map(AppDataResourcePageVo::getApplicationCode)
+                .distinct()
+                .collect(Collectors.toList());
+        List<ApplyInfo> appInfos = applyInfoService.getListByCodes(appCodes);
+
+        Map<String, ApplyInfo> appInfoMap = appInfos.stream()
+                .collect(Collectors.toMap(ApplyInfo::getApplyCode, e -> e));
+
+        // 查询机构名称
+        Set<String> orgCodeSet = new HashSet<>();
+        pageVos.stream().forEach(e -> {
+            orgCodeSet.add(e.getManageDeptCode());
+            orgCodeSet.add(e.getAuthorityDeptCode());
+        });
+
+        List<OrgInfo> orgInfos = orgInfoFacade.getOrgsByCodes(new ArrayList<>(orgCodeSet));
+        Map<String, OrgInfo> orgInMap = orgInfos.stream()
+                .collect(Collectors.toMap(OrgInfo::getCode, e -> e));
+
+        // 设置Vo字段名称
+        pageVos.stream().forEach(e -> {
+            String appName = Optional.ofNullable(appInfoMap.get(e.getApplicationCode()))
+                    .map(ApplyInfo::getApplyName)
+                    .orElse(null);
+            e.setApplicationCodeName(appName);
+
+            String authorityDeptCode = e.getAuthorityDeptCode();
+            String authorityDeptName = Optional.ofNullable(orgInMap.get(authorityDeptCode))
+                    .map(OrgInfo::getFullName)
+                    .orElse(null);
+            e.setAuthorityDeptName(authorityDeptName);
+
+            String manageDeptCode = e.getManageDeptCode();
+            String manageDeptName = Optional.ofNullable(orgInMap.get(manageDeptCode))
+                    .map(OrgInfo::getFullName)
+                    .orElse(null);
+            e.setManageDeptName(manageDeptName);
+        });
+
+        return pageVos;
+    }
+
+    @Override
+    public AppDataResourceInfo getById(String id) {
+        if (StringUtils.isBlank(id)) {
+            return null;
+        }
+        return appDataResourceInfoMapper.selectById(id);
+    }
+
+    @Override
+    public void deleteById(String id) {
+        if (StringUtils.isBlank(id)) {
+            return;
+        }
+        appDataResourceInfoMapper.deleteById(id);
+    }
 }