liuyc 2 years ago
parent
commit
5338370666

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

@@ -3224,7 +3224,7 @@ public class InformationWriteQueryController extends BladeController {
             node = this.wbsTreeContractClient.getContractWbsTreeByContractIdAndId(vo.getWbsId(), Long.parseLong(vo.getContractIdRelation()));
         }
         List<QueryProcessDataVO> queryDataResult = new ArrayList<>();
-        if (!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())) {
+        if (!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType() + "")) {
             //不是工序,则查询当前节点下的所有填报节点
             if (node.getParentId() == 0) {
                 queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractIdTwo("", contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());

+ 45 - 35
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -845,10 +845,11 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                     List<Map<String, Object>> mapsList = jdbcTemplate.queryForList("select * from " + initTabName + " where p_key_id = " + pKeyId);
                     if (mapsList.size() > 0) {
                         LinkedCaseInsensitiveMap<Object> maps = (LinkedCaseInsensitiveMap<Object>) mapsList.get(0);
+                        maps.entrySet().removeIf(entry -> entry.getValue() == null || entry.getValue().toString().trim().isEmpty()); //排除空串
                         LinkedHashMap<String, Object> resultMaps = new LinkedHashMap<>(maps);
-                        resultMaps.entrySet().removeIf(entry -> entry.getValue() == null || entry.getValue().toString().trim().isEmpty()); //排除空串
-
                         for (Map.Entry<String, Object> obj : resultMaps.entrySet()) {
+                            List<String> values = new ArrayList<>();
+
                             String key = obj.getKey();
                             Object value = obj.getValue();
 
@@ -928,25 +929,37 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                                                 //下拉框
                                                 tdJL = docJL.select("el-select[placeholderxx~=" + this.escapeRegex(placeholderValue) + ".*]");
                                             }
-
-                                            if (tdJL.size() >= 1) {
+                                            if (tdJL.size() == 1) {
+                                                Element element = tdJL.get(0);
+                                                String keyname = element.attr("keyname");
+                                                if (StringUtils.isNotEmpty(keyname)) {
+                                                    String[] keynameJL = keyname.split("__");
+                                                    String keyJL = keynameJL[0];
+                                                    String keyJLIndex = keynameJL[1];
+
+                                                    InsertDataVO vo = new InsertDataVO();
+                                                    vo.setPKeyId(pKeyIdJL);
+                                                    vo.setInitTabName(initTabNameJL);
+                                                    if (keyJL.length() > 3) { //排除key=key的时候,也就是找不到key值,正常为key_X
+                                                        vo.setKey(keyJL);
+                                                        vo.setData(data + "_^_" + keyJLIndex);
+                                                        resultData.add(vo);
+                                                    }
+                                                }
+                                            } else if (tdJL.size() > 1) { //存在跨单元格,但是数据是100.2391_^_28_4这个格式的,也就是一列只填了一个值,那么不存在☆符号,就会到这里 "非跨单元格(一个单元格)"判断中
                                                 for (Element element : tdJL) {
                                                     String keyname = element.attr("keyname");
                                                     if (StringUtils.isNotEmpty(keyname)) {
                                                         String[] keynameJL = keyname.split("__");
                                                         String keyJL = keynameJL[0];
-                                                        String keyJLIndex = keynameJL[1];
-
-                                                        InsertDataVO vo = new InsertDataVO();
-                                                        vo.setPKeyId(pKeyIdJL);
-                                                        vo.setInitTabName(initTabNameJL);
                                                         if (keyJL.length() > 3) { //排除key=key的时候,也就是找不到key值,正常为key_X
-                                                            vo.setKey(keyJL);
-                                                            vo.setData(data + "_^_" + keyJLIndex);
-                                                            resultData.add(vo);
+                                                            String keyJLIndex = keynameJL[1];
+                                                            if (keyJLIndex.equals(index)) { //位置相同才复制
+                                                                values.add(data + "_^_" + keyJLIndex + "---" + keyJL + "---" + placeholderValue + "tabId:" + pKeyId);
+                                                                break;
+                                                            }
                                                         }
                                                     }
-                                                    break;
                                                 }
                                             }
                                         }
@@ -956,9 +969,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                                 //跨单元格(多个单元格)
                             } else if (value.toString().contains("_^_") && value.toString().contains("☆")) {
                                 String[] oneCells = value.toString().split("☆"); //一个单元格
-
-                                List<String> values = new ArrayList<>();
-
                                 for (String cell : oneCells) {
                                     String[] fieldArr = cell.split("_\\^_");
                                     String data = fieldArr[0];
@@ -1056,26 +1066,26 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                                         }
                                     }
                                 }
+                            }
 
-                                Set<String> dataResult = new HashSet<>();
-                                Set<String> keyResult = new HashSet<>();
-                                Set<String> nameResult = new HashSet<>();
-                                for (String v : values) {
-                                    String[] split1 = v.split("---");
-                                    dataResult.add(split1[0]);
-                                    keyResult.add(split1[1]);
-                                    nameResult.add(split1[2]);
-                                }
-                                if (dataResult.size() > 0 && keyResult.size() > 0) {
-                                    InsertDataVO vo = new InsertDataVO();
-                                    vo.setPKeyId(pKeyIdJL);
-                                    vo.setInitTabName(initTabNameJL);
-                                    vo.setKey(keyResult.stream().findAny().orElse(null));
-                                    vo.setData(StringUtils.join(dataResult, "☆"));
-                                    vo.setDataLength(vo.getData().length());
-                                    vo.setName(nameResult.stream().findAny().orElse(null));
-                                    resultData.add(vo);
-                                }
+                            Set<String> dataResult = new HashSet<>();
+                            Set<String> keyResult = new HashSet<>();
+                            Set<String> nameResult = new HashSet<>();
+                            for (String v : values) {
+                                String[] split1 = v.split("---");
+                                dataResult.add(split1[0]);
+                                keyResult.add(split1[1]);
+                                nameResult.add(split1[2]);
+                            }
+                            if (dataResult.size() > 0 && keyResult.size() > 0) {
+                                InsertDataVO vo = new InsertDataVO();
+                                vo.setPKeyId(pKeyIdJL);
+                                vo.setInitTabName(initTabNameJL);
+                                vo.setKey(keyResult.stream().findAny().orElse(null));
+                                vo.setData(StringUtils.join(dataResult, "☆"));
+                                vo.setDataLength(vo.getData().length());
+                                vo.setName(nameResult.stream().findAny().orElse(null));
+                                resultData.add(vo);
                             }
                         }
                     }