liuyc преди 2 години
родител
ревизия
bd36c0eeb2

+ 7 - 9
blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java

@@ -259,17 +259,15 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService {
             }
         }
 
-        if (!result.contains(user.getUserType())) {
-            if ((("1").equals(result) && user.getUserType().contains("1")) //web放行
-                    || (("2").equals(result) && user.getUserType().contains("2")) //app放行
-                    || (("3").equals(result) && user.getUserType().contains("3")) //档案放行
-                    || (("4").equals(result) && user.getUserType().contains("4")) //后管放行
-            ) {
-                return;
-            }
+        if ((("1").equals(result) && user.getUserType().contains("1")) //web
+                || (("2").equals(result) && user.getUserType().contains("2")) //app
+                || (("3").equals(result) && user.getUserType().contains("3")) //档案
+                || (("4").equals(result) && user.getUserType().contains("4")) //后管
+        ) {
+            //放行
+            return;
         }
         throw new UserDeniedAuthorizationException(TokenUtil.USER_ACCOUNT_NO_PERMISSION);
-
     }
 
 

+ 41 - 26
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -991,6 +991,7 @@ public class InformationWriteQueryController extends BladeController {
                     newData.setSort(i);
                     //修改排序
                     this.wbsTreeContractClient.updateContractNodeParameter(newData);
+
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -1002,49 +1003,63 @@ public class InformationWriteQueryController extends BladeController {
         String id = sortLists.stream().map(String::valueOf).findAny().orElse(null);
         WbsTreeContract wbsTreeContract = wbsTreeContractClient.getContractNodeByPrimaryKeyId(id);
 
+        //当前项目全部填报资料
+        List<InformationQuery> informationQueries = informationQueryService.getBaseMapper().selectList(Wrappers.<InformationQuery>lambdaQuery()
+                .eq(InformationQuery::getProjectId, wbsTreeContract.getProjectId())
+                .eq(InformationQuery::getContractId, wbsTreeContract.getContractId())
+        );
+
         //获取合同段整棵树
         List<WbsTreeContract> list = null;
         if (ObjectUtil.isNotEmpty(wbsTreeContract)) {
             list = informationQueryService.getContractWbsTreeAll(wbsTreeContract);
         }
+
         List<WbsTreeContract> result = new ArrayList<>();
+        List<InformationQuery> infos = new ArrayList<>();
+
         if (Objects.requireNonNull(list).size() > 0) {
+
+            //删除当前自定义排序节点
             Iterator<WbsTreeContract> iterator = list.iterator();
-            int sort = 2;
             while (iterator.hasNext()) {
                 WbsTreeContract next = iterator.next();
-                if (ObjectUtil.isNotEmpty(next)) {
-                    if (sortList.size() > 0) {
-                        boolean b = true;
-                        for (String nowId : sortList) {
-                            if (next.getPKeyId().equals(Long.parseLong(nowId))) {
-                                //剔除自定义排序节点
-                                iterator.remove();
-                                b = false;
-                                break;
-                            }
-                        }
-                        if (!b){
-                            continue;
-                        }
+                for (String pId : sortList) {
+                    if (next.getPKeyId().toString().equals(pId)) {
+                        iterator.remove();
                     }
+                }
+            }
 
-                    if (ObjectUtil.isNotEmpty(next.getParentId()) && next.getParentId() == 0) {
-                        //根节点
-                        next.setSort(1);
-                    } else if (ObjectUtil.isNotEmpty(next.getParentId()) && next.getParentId() != 0) {
-                        //其他节点
-                        next.setSort(sort);
-                        sort++;
+            //Map<Long, List<WbsTreeContract>> collect = list.parallelStream().collect(Collectors.groupingBy(WbsTreeContract::getParentId));
+
+            int sort = 1;
+
+            //for (Map.Entry<Long, List<WbsTreeContract>> longListEntry : collect.entrySet()) {
+            //for (WbsTreeContract treeContract : longListEntry.getValue()) {
+            for (WbsTreeContract treeContract : list) {
+                if (ObjectUtil.isNotEmpty(treeContract.getParentId()) && treeContract.getParentId() == 0) {
+                    //根节点
+                    treeContract.setSort(sort++);
+                    result.add(treeContract);
+                } else if (ObjectUtil.isNotEmpty(treeContract.getParentId()) && treeContract.getParentId() != 0) {
+                    //填报资料排序
+                    InformationQuery informationQuery = informationQueries.stream().filter(f -> f.getWbsId().equals(treeContract.getPKeyId())).findAny().orElse(null);
+                    if (informationQuery != null) {
+                        informationQuery.setSort(sort);
+                        infos.add(informationQuery);
                     }
 
-                    //修改排序
-                    result.add(next);
-
-                    iterator.remove();
+                    //其他节点
+                    treeContract.setSort(sort++);
+                    result.add(treeContract);
                 }
             }
 
+            for (InformationQuery info : infos) {
+                informationQueryService.updateById(info);
+            }
+
             informationQueryService.updateBatchByPKeyId(result);
 
             return R.data(true);

+ 5 - 3
blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml

@@ -257,7 +257,7 @@
         AND wtc.parent_id = #{parentId}
         AND wtc.node_type != 111
         AND wtc.is_deleted= '0'
-        ORDER BY wtc.sort ASC
+        ORDER BY wtc.sort
     </select>
 
     <select id="queryProcessDataByPrimaryKeyIdAndClassify" resultMap="queryProcessDataMap">
@@ -395,10 +395,12 @@
             query.file_user_id_and_name,
             query.pdf_url,
             query.e_visa_pdf_url,
+            query.sort as qSort,
             (select sort from m_wbs_tree_contract c where c.p_key_id = query.wbs_id ) as sort
         from
         (
             select
+                sort,
                 id,
                 name,
                 number,
@@ -434,7 +436,7 @@
         <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
             and query.createTimes between #{query.startTime} and #{query.endTime}
         </if>
-        order by sort
+        order by sort,qSort
         limit #{current}, #{size}
     </select>
 
@@ -443,7 +445,7 @@
     </select>
 
     <select id="getContractWbsTreeAll" resultType="org.springblade.manager.entity.WbsTreeContract">
-        select * from m_wbs_tree_contract where project_id = #{obj.projectId} and contract_id = #{obj.contractId} and `type` = 1 and status = 1
+        select p_key_id,node_name,node_type,parent_id,sort from m_wbs_tree_contract where project_id = #{obj.projectId} and contract_id = #{obj.contractId} and `type` = 1 and status = 1 order by sort
     </select>
 
 </mapper>

+ 2 - 19
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -433,26 +433,9 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
         //获取数据
         List<InformationQuery> result = this.baseMapper.selectInformationQueryPage(current, page.getSize(), vo);
 
-        //获取所有节点顺序,按照节点排序
-        List<String> wbsIds = result.stream().map(InformationQuery::getWbsId).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
-        List<InformationQuery> resultSort = new ArrayList<>();
-        if (wbsIds.size() > 0) {
-            List<WbsTreeContract> wbsTreeContracts = this.baseMapper.getContractNodeByPrimaryKeyIds(StringUtils.join(wbsIds, ","));
-            if (wbsTreeContracts != null && wbsTreeContracts.size() > 0) {
-                for (WbsTreeContract wbsTreeContract : wbsTreeContracts) {
-                    for (InformationQuery informationQuery : result) {
-                        if (wbsTreeContract.getPKeyId().equals(informationQuery.getWbsId())) {
-                            resultSort.add(informationQuery);
-                        }
-                    }
-                }
-            }
-        }
-
         //转换VO
-        //if (result != null && result.size() != 0) {
-        if (resultSort.size() != 0) {
-            List<InformationQueryVO> voResult = JSONArray.parseArray(JSONObject.toJSONString(resultSort), InformationQueryVO.class);
+        if (result != null && result.size() != 0) {
+            List<InformationQueryVO> voResult = JSONArray.parseArray(JSONObject.toJSONString(result), InformationQueryVO.class);
             //处理流程状态
             voResult.forEach(vor -> {
                 vor.setStartTime(DateUtil.format(vor.getCreateTime(), "yyyy-MM-dd"));

+ 4 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -2577,10 +2577,11 @@ public class ExcelTabController extends BladeController {
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "tabId", value = "元素表", required = true),
             @ApiImplicitParam(name = "linkids", value = "节点信息表", required = true),
-            @ApiImplicitParam(name = "type", value = "(1 元素表关联  2表示新增 3 表示项目节点关联)", required = true)
+            @ApiImplicitParam(name = "type", value = "(1 元素表关联  2表示新增 3 表示项目节点关联)", required = true),
+            @ApiImplicitParam(name = "wbsId", value = "关联树的wbsId", required = true)
     })
-    public R saveLinkeTableInfo(String tabId, String linkids, String type) {
-        return wbsTreePrivateService.saveLinkeTableInfo(tabId, linkids, type);
+    public R saveLinkeTableInfo(String tabId, String linkids, String type,String wbsId) {
+        return wbsTreePrivateService.saveLinkeTableInfo(tabId, linkids, type,wbsId);
     }
 
 

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

@@ -67,7 +67,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     R delTableById(String primaryKeyIds);
 
     // 元素关联
-    R saveLinkeTableInfo(String tabId,String linkids,String type);
+    R saveLinkeTableInfo(String tabId,String linkids,String type,String wbsId);
 
     List<WbsTreePrivate> searchNodeAllTable(String primaryKeyId, String type, String tableType, String contractId, String projectId);
 

+ 10 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -1300,7 +1300,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    public R saveLinkeTableInfo(String tabId, String linkids, String type) {
+    public R saveLinkeTableInfo(String tabId, String linkids, String type,String wbsId) {
         //1 元素表关联  2表示新增 3 表示项目节点关联
         if (com.alibaba.cloud.commons.lang.StringUtils.isEmpty(tabId)) {
             return R.fail("tabId不能为空");
@@ -1318,6 +1318,9 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             wbsTree.setInitTableId(tableInfo.getId());
             wbsTree.setFillRate(tableInfo.getFillRate());
             wbsTree.setTableOwner(tableInfo.getTableOwner());
+
+            wbsTree.setWbsId(wbsId);
+
             wbsTreeMapper.updateById(wbsTree);
         } else if (type.equals("2")) {
             TableInfo tableInfo = tableInfoService.getById(tabId);
@@ -1332,6 +1335,9 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 tree.setNodeName(tableInfo.getTabChName());
                 tree.setFullName(tableInfo.getTabChName());
                 tree.setFillRate(tableInfo.getFillRate());
+
+                tree.setWbsId(wbsId);
+
                 this.submit2(tree);
             }
         } else if (type.equals("3")) {
@@ -1339,6 +1345,9 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             Long pKeyId1 = SnowFlakeUtil.getId();
             wbsTreePrivate.setPKeyId(pKeyId1);
             wbsTreePrivate.setType(2);
+
+            wbsTreePrivate.setWbsId(wbsId);
+
             wbsTreePrivate.setParentId(Long.parseLong(linkids));
             wbsTreePrivateMapper.insert(wbsTreePrivate);
         }