Browse Source

新增接口/rwd/instance/object/batchQueryProjectByIds

lijie 3 years ago
parent
commit
274695e11d

+ 18 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -17,6 +17,7 @@ import com.persagy.dmp.common.utils.ResultHelper;
 import com.persagy.dmp.mybatis.utils.ConditionUtil;
 import com.persagy.dmp.rwd.digital.entity.ObjectDigital;
 import com.persagy.dmp.rwd.digital.service.IObjectDigitalService;
+import com.persagy.dmp.rwd.digital.service.ProjectBusinessService;
 import com.persagy.dmp.rwd.digital.utils.ObjectDigitalCriteriaHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -38,6 +39,8 @@ public class ObjectDigitalController{
 
     @Autowired
     private IObjectDigitalService service;
+    @Autowired
+    private ProjectBusinessService projectBusinessService;
 
     @PostMapping("/query")
     public CommonResult<List<ObjectNode>> query(@RequestBody QueryCriteria criteria) {
@@ -113,4 +116,19 @@ public class ObjectDigitalController{
         service.delete(id);
         return ResultHelper.success();
     }
+    /***
+     * Description: 根据项目id集合批量查询项目信息
+     * @param idList : 项目id集合
+     * @return : com.persagy.dmp.common.model.response.CommonResult<com.fasterxml.jackson.databind.node.ObjectNode>
+     * @author : lijie
+     * @date :2021/8/18 15:55
+     * Update By lijie 2021/8/18 15:55
+     */
+    @PostMapping("/batchQueryProjectByIds")
+    public CommonResult<List<ObjectDigital>> batchQueryProjectByIds(@RequestBody List<String> idList) {
+        //基础参数校验
+        ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        return projectBusinessService.batchQueryProjectByIds(idList);
+    }
+
 }

+ 1 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/IObjectDigitalService.java

@@ -2,6 +2,7 @@ package com.persagy.dmp.rwd.digital.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.rwd.digital.entity.ObjectDigital;
 
 import java.util.List;

+ 26 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/ProjectBusinessService.java

@@ -0,0 +1,26 @@
+package com.persagy.dmp.rwd.digital.service;
+
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.rwd.digital.entity.ObjectDigital;
+
+import java.util.List;
+
+/***
+ * Description: 项目业务逻辑处理接口
+ * @author : lijie
+ * @date :2021/8/18 16:15
+ * Update By lijie 2021/8/18 16:15
+ */
+public interface ProjectBusinessService {
+
+    /***
+     * Description: 根据项目id查询项目信息
+     * @param projectIds : 项目id集合
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.rwd.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/18 15:56
+     * Update By lijie 2021/8/18 15:56
+     */
+    CommonResult<List<ObjectDigital>> batchQueryProjectByIds(List<String> projectIds);
+
+}

+ 26 - 25
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ObjectDigitalServiceImpl.java

@@ -137,6 +137,30 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
         return voList;
     }
 
+    @Override
+    public void delete(List<String> idList) {
+        if(CollUtil.isEmpty(idList)) {
+            return;
+        }
+        List<ObjectDigital> dbList = dao.selectBatchIds(idList);
+        Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
+        idList.forEach(id -> {
+            ObjectDigital dbVO = MapUtil.get(dbMap, id, ObjectDigital.class);
+            // 容错处理
+            if(dbVO == null) {
+                return;
+            }
+            // 删除
+            ObjectDigital vo = new ObjectDigital();
+            vo.setId(id);
+            vo.setValid(ValidEnum.FALSE.getType());
+            dao.updateById(vo);
+            // 删除后消息
+            dbVO.setValid(ValidEnum.FALSE.getType());
+            messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_DELETE, null, dbVO, false);
+        });
+    }
+
     /**
      * 保存校验
      * 编码全局唯一
@@ -186,7 +210,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
                 String infoCode = infoKeys.next();
                 // 如果信息点中不存在,移除
                 if(!infoMap.containsKey(infoCode)) {
-                   // infos.remove(infoCode);
+                    // infos.remove(infoCode);
                     infoKeys.remove();
                     continue;
                 }
@@ -322,30 +346,6 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
         });
     }
 
-    @Override
-    public void delete(List<String> idList) {
-        if(CollUtil.isEmpty(idList)) {
-            return;
-        }
-        List<ObjectDigital> dbList = dao.selectBatchIds(idList);
-        Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
-        idList.forEach(id -> {
-            ObjectDigital dbVO = MapUtil.get(dbMap, id, ObjectDigital.class);
-            // 容错处理
-            if(dbVO == null) {
-                return;
-            }
-            // 删除
-            ObjectDigital vo = new ObjectDigital();
-            vo.setId(id);
-            vo.setValid(ValidEnum.FALSE.getType());
-            dao.updateById(vo);
-            // 删除后消息
-            dbVO.setValid(ValidEnum.FALSE.getType());
-            messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_DELETE, null, dbVO, false);
-        });
-    }
-
     /**
      * 修改时填充classCode
      * @param voList
@@ -381,4 +381,5 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
         List<ObjectDigital> objectDigitals = queryByCondition(wrapper);
         return CollUtil.fieldValueAsMap(objectDigitals, "id", "virtual_codes");
     }
+
 }

+ 52 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ProjectBusinessServiceImpl.java

@@ -0,0 +1,52 @@
+package com.persagy.dmp.rwd.digital.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.persagy.dmp.common.constant.CommonConstant;
+import com.persagy.dmp.common.context.AppContext;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
+import com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper;
+import com.persagy.dmp.rwd.digital.entity.ObjectDigital;
+import com.persagy.dmp.rwd.digital.service.ProjectBusinessService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class ProjectBusinessServiceImpl implements ProjectBusinessService {
+
+    private final ObjectDigitalMapper objectDigitalMapper;
+
+    /***
+     * Description: 根据项目id查询项目信息
+     * @param projectIds : 项目id集合
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.rwd.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/18 15:56
+     * Update By lijie 2021/8/18 15:56
+     */
+    @Override
+    public CommonResult<List<ObjectDigital>> batchQueryProjectByIds(List<String> projectIds) {
+        // 1.组装查询条件
+        LambdaQueryWrapper<ObjectDigital> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ObjectDigital::getGroupCode, AppContext.getContext().getGroupCode());
+        queryWrapper.eq(ObjectDigital::getValid,true);
+        if (CollUtil.isNotEmpty(projectIds)){
+            queryWrapper.in(ObjectDigital::getId,projectIds);
+        }
+        queryWrapper.eq(ObjectDigital::getObjType, DigitalObjectType.PROJECT.getIndex());
+        // 2.查询项目信息
+        List<ObjectDigital> objectDigitals = objectDigitalMapper.selectList(queryWrapper);
+        if (CollUtil.isEmpty(objectDigitals)){
+            return ResultHelper.success();
+        }
+        return ResultHelper.multi(objectDigitals);
+    }
+}