Explorar o código

资料上报电签权限相关

qianxb hai 1 ano
pai
achega
2a764d53f7

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

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
 
@@ -39,6 +40,10 @@ public interface WbsTreePrivateClient {
     @PostMapping(API_PREFIX + "/queryPeersNodeByProjectIdAndId")
     WbsTreePrivate queryPeersNodeByProjectIdAndId(@RequestParam String projectId, @RequestParam Long id);
 
+    //根据合同下所有表单id获取项目级节点
+    @PostMapping(API_PREFIX + "/getAllPrivateTableByIds")
+    Set<Long> getAllPrivateTableByIds(@RequestParam Long projectId,@RequestBody List<Long> ids);
+
     @PostMapping(API_PREFIX + "/queryWbsTreePrivateByProjectIdAndId")
     List<WbsTreeContractTreeVOS> queryWbsTreePrivateByProjectIdAndId(@RequestParam String projectId, @RequestParam Long id);
 

+ 30 - 11
blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java

@@ -165,14 +165,24 @@ public class EVisaTaskCheckController {
                 WbsTreeContract contract = wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.valueOf(nodeId));
                 //获取节点下每个填报表
                 List<WbsTreeContract> node = wbsTreeContractClient.queryChildByParentId(contract, "", "");
-                List<Long> ids = new ArrayList<>();
+                Set<Long> ids = new HashSet<>();
                 //获取每个填报表对应的wbs_tree_private的id
-                for (WbsTreeContract treeContract : node) {
-                    WbsTreePrivate wbsTreePrivate = wbsTreePrivateClient.queryPeersNodeByProjectIdAndId(treeContract.getProjectId(), treeContract.getId());
-                    ids.add(wbsTreePrivate.getPKeyId());
-//                    if (StringUtils.isNotBlank(treeContract.getIsTypePrivatePid()+"")){
-//                        ids.add(treeContract.getIsTypePrivatePid());
-//                    }
+//                for (WbsTreeContract treeContract : node) {
+//                    WbsTreePrivate wbsTreePrivate = wbsTreePrivateClient.queryPeersNodeByProjectIdAndId(treeContract.getProjectId(), treeContract.getId());
+//                    ids.add(wbsTreePrivate.getPKeyId());
+////                    if (StringUtils.isNotBlank(treeContract.getIsTypePrivatePid()+"")){
+////                        ids.add(treeContract.getIsTypePrivatePid());
+////                    }
+//                }
+                if (node != null && node.size() > 0){
+                    List<Long> setIds = node.stream().map(l -> l.getId()).collect(Collectors.toList());
+                    Set<Long> setPIds = node.stream().map(l -> l.getIsTypePrivatePid()).collect(Collectors.toSet());
+                    ids.addAll(setPIds);
+                    Set<Long> tableIds = wbsTreePrivateClient.getAllPrivateTableByIds(Long.parseLong(contract.getProjectId()), setIds);
+                    if (tableIds != null && tableIds.size() > 0) {
+                        ids.addAll(tableIds);
+                    }
+                    ids.addAll(tableIds);
                 }
                 JSONObject object = new JSONObject();
                 object.put("privatePKeyId", ids);
@@ -328,11 +338,20 @@ public class EVisaTaskCheckController {
             WbsTreeContract contract = wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.valueOf(nodeId));
             //获取节点下每个填报表
             List<WbsTreeContract> node = wbsTreeContractClient.queryChildByParentId(contract, "", "");
-            List<Long> ids = new ArrayList<>();
+            Set<Long> ids = new HashSet<>();
             //获取每个填报表对应的wbs_tree_private的id
-            for (WbsTreeContract treeContract : node) {
-                WbsTreePrivate wbsTreePrivate = wbsTreePrivateClient.queryPeersNodeByProjectIdAndId(treeContract.getProjectId(), treeContract.getId());
-                ids.add(wbsTreePrivate.getPKeyId());
+//            for (WbsTreeContract treeContract : node) {
+//                WbsTreePrivate wbsTreePrivate = wbsTreePrivateClient.queryPeersNodeByProjectIdAndId(treeContract.getProjectId(), treeContract.getId());
+//                ids.add(wbsTreePrivate.getPKeyId());
+//            }
+            if (node != null && node.size() > 0){
+                List<Long> setIds = node.stream().map(l -> l.getId()).collect(Collectors.toList());
+                Set<Long> setPIds = node.stream().map(l -> l.getIsTypePrivatePid()).collect(Collectors.toSet());
+                ids.addAll(setPIds);
+                Set<Long> tableIds = wbsTreePrivateClient.getAllPrivateTableByIds(Long.parseLong(contract.getProjectId()), setIds);
+                if (tableIds != null && tableIds.size() > 0) {
+                    ids.addAll(tableIds);
+                }
             }
             JSONObject object = new JSONObject();
             object.put("privatePKeyId", ids);

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

@@ -13,6 +13,7 @@ import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.*;
+import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.IWbsTreePrivateService;
 import org.springblade.manager.service.impl.ExcelTabServiceImpl;
 import org.springblade.manager.service.impl.TextdictInfoServiceImpl;
@@ -37,6 +38,7 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
     private final ExcelTabServiceImpl excelTabServiceImpl;
     private final TextdictInfoServiceImpl textDictInfoService;
     private final WbsTreeContractServiceImpl wbsTreeContractService;
+    private final WbsTreePrivateMapper privateMapper;
 
     @Override
     public List<WbsTreePrivate> queryAllNodeByProjectId(String projectId) {
@@ -262,4 +264,11 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
     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));
     }
+
+    //根据合同表单id获取项目级表单主键
+    @Override
+    public Set<Long> getAllPrivateTableByIds(Long projectId,List<Long> ids) {
+        Set<Long> set = privateMapper.getAllPrivateTableByIds(projectId, ids);
+        return set;
+    }
 }

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

@@ -11,6 +11,7 @@ import org.springblade.manager.injector.EasyBaseMapper;
 import org.springblade.manager.vo.*;
 
 import java.util.List;
+import java.util.Set;
 
 public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
     List<WbsTreePrivate> selectAll(Integer wbsType);
@@ -95,4 +96,6 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
     List<WbsTreePrivateVO5> treeRecordTrial(String wbsId, String projectId, Integer wbsType);
 
     void syncCurrentFormInProject(@Param("wbsTreePrivate") WbsTreePrivate wbsTreePrivate);
+
+    Set<Long> getAllPrivateTableByIds(@Param("projectId") Long projectId,@Param("ids") List<Long> ids);
 }

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

@@ -785,6 +785,13 @@
         </if>
         ORDER BY sort
     </select>
+    <select id="getAllPrivateTableByIds" resultType="java.lang.Long">
+        select p_key_id from m_wbs_tree_private
+        where is_deleted = 0 and project_id = #{projectId} and id in
+        <foreach collection="ids" item="id"  open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 
     <delete id="delTabProjectById">
         delete