Browse Source

Merge remote-tracking branch 'origin/test-merge' into test-merge

LHB 1 tháng trước cách đây
mục cha
commit
3c2dde0e0f

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateQueryVO.java

@@ -33,4 +33,7 @@ public class WbsTreePrivateQueryVO {
 
     @ApiModelProperty(value = "是否在客户端新增时隐藏,0否1是")
     private Integer isAddConceal;
+
+    @ApiModelProperty("参数掩码")
+    private String uniqueCode;
 }

+ 36 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateTableVO.java

@@ -0,0 +1,36 @@
+package org.springblade.manager.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import org.springblade.manager.entity.WbsTree;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class WbsTreePrivateTableVO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    private Integer sort;
+
+    @ApiModelProperty(value = "表单list")
+    List<WbsNodeTableVO> list;
+
+    public WbsTreePrivateTableVO() {
+    }
+    public WbsTreePrivateTableVO(String title, List<WbsNodeTableVO> list) {
+        this.title = title;
+        this.list = list;
+    }
+}

+ 47 - 12
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -393,29 +393,64 @@ public class WbsTreePrivateController extends BladeController {
     @GetMapping("/get-group-node-tables")
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "查询当前节点下所有元素表并分类", notes = "传入父节点id、wbsId、projectId")
-    public R<Map<String, List<WbsNodeTableVO>>> findAndGroupNodeTableByCondition(@RequestParam("parentId") String parentId,
+    public R<List<WbsTreePrivateTableVO>> findAndGroupNodeTableByCondition(@RequestParam("parentId") String parentId,
                                                             @RequestParam("wbsId") String wbsId,
                                                             @RequestParam("projectId") String projectId) {
         R<List<WbsNodeTableVO>> r = findNodeTableByCondition(parentId, wbsId, projectId);
         List<WbsNodeTableVO> data = r.getData();
+        List<WbsTreePrivateTableVO> list = new ArrayList<>();
         if (data != null && !data.isEmpty()) {
-            Map<String, List<WbsNodeTableVO>> groupMap = data.stream().collect(Collectors.groupingBy(vo -> {
-                String tableOwner = vo.getTableOwner();
-                if (StringUtil.isNumeric(tableOwner)) {
-                    int i = Integer.parseInt(tableOwner);
-                    if (i > 0 && i <= 3) {
-                        return "施工方";
-                    } else if (i > 3 && i <= 6) {
-                        return "监理方";
+            Integer wbsType = null;
+            if (StringUtil.isNumeric(wbsId)) {
+                List<WbsInfo> query = jdbcTemplate.query("select id, wbs_type from m_wbs_info where is_deleted = 0 and id = " + Long.parseLong(wbsId), new BeanPropertyRowMapper<>(WbsInfo.class));
+                if (!query.isEmpty()) {
+                    wbsType = query.get(0).getWbsType();
+                }
+            }
+            Map<Integer, List<WbsNodeTableVO>> groupMap;
+            if (wbsType != null && wbsType == 1) {
+                groupMap = data.stream().collect(Collectors.groupingBy(vo -> {
+                    String tableOwner = vo.getTableOwner();
+                    if (StringUtil.isNumeric(tableOwner)) {
+                        int i = Integer.parseInt(tableOwner);
+                        if (i > 0 && i <= 3) {
+                            return 1;
+                        } else if (i > 3 && i <= 6) {
+                            return 2;
+                        }
+                    }
+                    return 3;
+                }));
+            } else if (wbsType != null && wbsType == 2) {
+                groupMap = data.stream().collect(Collectors.groupingBy(vo -> {
+                    String tableType = vo.getTableType();
+                    if (StringUtil.isNumeric(tableType)) {
+                        int i = Integer.parseInt(tableType);
+                        if (i == 1 ) {
+                            return 2;
+                        } else if (i == 2 ) {
+                            return 1;
+                        }
                     }
+                    return 3;
+                }));
+            } else {
+                list.add(new WbsTreePrivateTableVO("", data));
+                return R.data(list);
+            }
+            String[][] titles = {{"施工方", "监理方", "其他"}, {"报告表", "记录表", "其他"}};
+            for (int i = 1; i <= 3; i++) {
+                List<WbsNodeTableVO> wbsNodeTableVOS = groupMap.get(i);
+                if (wbsNodeTableVOS != null && !wbsNodeTableVOS.isEmpty()) {
+                    list.add(new WbsTreePrivateTableVO(titles[wbsType - 1][i - 1], wbsNodeTableVOS));
                 }
-                return "其他";
-            }));
-            return R.data(groupMap);
+            }
+            return R.data(list);
         }
         return R.fail(200, "未查询到数据");
     }
 
+
     @GetMapping("/remove-table")
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "删除节点下的元素表", notes = "传入表单id、wbsId、projectId")

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

@@ -380,6 +380,8 @@
             ) AS "has_children",
             d.update_time AS "updateTime",
             d.update_user AS "updateUser",
+            d.unique_code AS "uniqueCode",
+            d.partition_code AS "partitionCode",
             (select name from blade_user where id = d.update_user) AS "updateUserName"
         FROM
             m_wbs_tree_private d

+ 10 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -404,12 +404,18 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         itemsMap.values().stream().filter(Measurement::isMatching).forEach(t -> {
                             ElementBlock g = null;
                             FormData vfd = t.getValue();
+                            List<CurrentNode> nodeType46 = getNodeType46(tec);
+                            List<Long> ids = nodeType46.stream().map(CurrentNode::getPkId).collect(Collectors.toList());
                             if (vfd.executable() && vfd.getFormula().getRelyList() != null) {
                                 List<String> relyList = vfd.getFormula().getRelyList();
                                 /*先从公式去匹配*/
-                                Optional<ElementBlock> op = elementBlockList.stream().filter(e -> relyList.contains(e.getCode())).findAny();
-                                if (op.isPresent()) {
-                                    g = op.get();
+                                List<ElementBlock> list = elementBlockList.stream().filter(e -> relyList.contains(e.getCode())).collect(Collectors.toList());
+                                for (ElementBlock e : list) {
+                                    e.getList().removeIf(ik -> !ids.contains(ik.getPkeyId()));
+                                    if (!e.getList().isEmpty()) {
+                                        g = e;
+                                        break;
+                                    }
                                 }
                             } else {
                                 /*只有不存在配置的前提下才能尝试自动匹配*/
@@ -422,7 +428,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                             if (g != null) {
                                 /*手写部分的数据加载*/
                                 if (t.getPoint().contains("混凝土强度") && false) {
-                                    List<Long> ids = getNodeType46(tec).stream().map(CurrentNode::getPkId).collect(Collectors.toList());
+//                                    List<Long> ids = getNodeType46(tec).stream().map(CurrentNode::getPkId).collect(Collectors.toList());
                                     /*质检附表m_20230316104657_1636197331206406144*/
                                     List<Map<String, Object>> listMaps = this.jdbcTemplate.queryForList("select a.p_key_id,b.key_10 name,b.key_6 design,b.key_5 data from m_wbs_tree_contract a join m_20230316104657_1636197331206406144 b on a.p_key_id=b.p_key_id where  a.is_deleted=0 and a.parent_id =" + tec.getCurrentNode().getId());
                                     if (listMaps.size() > 0) {
@@ -462,8 +468,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
                                 List<ItemBlock> itemBlockList = g.getList();
                                 int originSize = itemBlockList.size();
-                                List<CurrentNode> nodeType46 = getNodeType46(tec);
-                                List<Long> ids = nodeType46.stream().map(CurrentNode::getPkId).collect(Collectors.toList());
 
                                 Map<Long, CurrentNode> sortInfoMap  = nodeType46.stream().collect(Collectors.toMap(CurrentNode::getPkId, info -> info,
                                         (oldInfo, newInfo) -> newInfo));

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -564,6 +564,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         wrapper.eq(vo.getClassName() != null, WbsTreePrivate::getClassName, vo.getClassName());
         wrapper.eq(vo.getUnitName() != null, WbsTreePrivate::getUnitName, vo.getUnitName());
         wrapper.like(vo.getQueryValue() != null && !vo.getQueryValue().isEmpty() ,WbsTreePrivate::getNodeName, vo.getQueryValue());
+        wrapper.like(vo.getUniqueCode() != null && !vo.getUniqueCode().isEmpty() ,WbsTreePrivate::getUniqueCode, vo.getUniqueCode());
         if (vo.getMajorDataType() != null) {
             if (vo.getMajorDataType() > 0) {
                 wrapper.eq(WbsTreePrivate::getMajorDataType, vo.getMajorDataType());