Ver Fonte

导入工程划分

cr há 2 dias atrás
pai
commit
2c38797cff

+ 14 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -3209,7 +3209,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             int size = list.size();
             Long importId=SnowFlakeUtil.getId();
             try{
-                String sqlList1 = "Select parent_id,node_name,p_id from m_wbs_tree_contract where contract_id=" + wbsTreeContractRoot.getContractId() + " and wbs_id=" + wbsTreeContractRoot.getWbsId() + " and is_deleted=0";
+                String sqlList1 = "Select parent_id,node_name,p_id ,node_type from m_wbs_tree_contract where contract_id=" + wbsTreeContractRoot.getContractId() + " and wbs_id=" + wbsTreeContractRoot.getWbsId() + " and is_deleted=0";
                 List<WbsTreeContract> WbsTreeContractList = jdbcTemplate.query(sqlList1, new BeanPropertyRowMapper<>(WbsTreeContract.class));
                 for (ImportTreeDto dto : list) {
                     if(size-i>=1){
@@ -3886,22 +3886,31 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     private Boolean isExist(ImportTreeDto dto, List<WbsTreeContract> wbsTreeContractList, int type, WbsTreeContract tree) {
         Long contractId = Long.valueOf(tree.getContractId());
         String nodeName = "";
+        Integer nodeType;
         if (type == 1) {
             nodeName = dto.getUnitName();
+            nodeType=1;
         } else if (type == 2) {
             nodeName = dto.getSubUnitName();
+            nodeType=18;
         } else if (type == 3) {
             nodeName = dto.getDivisionName();
+            nodeType=2;
         } else if (type == 4) {
             nodeName = dto.getSubDivisionName();
+            nodeType=3;
         } else if (type == 5) {
             nodeName = dto.getItemName();
+            nodeType=4;
         } else if (type == 6) {
             nodeName = dto.getSubItemName();
+            nodeType=5;
+        } else {
+            nodeType = 0;
         }
         String finalNodeName = nodeName;
         List<Long> list = wbsTreeContractList.stream()
-                .filter(item -> finalNodeName.equals(item.getNodeName()))
+                .filter(item -> finalNodeName.equals(item.getNodeName())&&item.getNodeType()==nodeType)
                 .map(item -> item.getPId())
                 .collect(Collectors.toList());
         if (list.size() == 0) {
@@ -3933,6 +3942,9 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                     ids = Arrays.stream(ids)
                             .filter(i -> !i.equals("0"))
                             .toArray(String[]::new);
+                    if(ids.length<=0){
+                        return false;
+                    }
                     String sql1 = "Select node_name from m_wbs_tree_contract where p_key_id in(" + String.join(",", ids) + ") and contract_id=" + wbsContract.getContractId() + " and is_deleted=0";
                     List<String> nodeNames = jdbcTemplate.query(sql1, new SingleColumnRowMapper<>(String.class));
                     String join = String.join("", nodeNames);