Bladeren bron

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf 2 jaren geleden
bovenliggende
commit
fffd1dde7a

+ 7 - 4
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/AddContractTreeNodeVO.java

@@ -31,14 +31,14 @@ public class AddContractTreeNodeVO {
         if (this.halfSelectedList == null) {
             this.halfSelectedList = new ArrayList<>();
         }
-        this.halfSelectedList.add(new Node(primaryKeyId, nodeName));
+        this.halfSelectedList.add(new Node(primaryKeyId, nodeName, null));
     }
 
-    public void setAllSelectedList(String primaryKeyId, String nodeName) {
+    public void setAllSelectedList(String primaryKeyId, String nodeName, String isPeer) {
         if (this.allSelectedList == null) {
             this.allSelectedList = new ArrayList<>();
         }
-        this.allSelectedList.add(new Node(primaryKeyId, nodeName));
+        this.allSelectedList.add(new Node(primaryKeyId, nodeName, isPeer));
     }
 
     @Data
@@ -47,9 +47,12 @@ public class AddContractTreeNodeVO {
 
         private String nodeName;
 
-        public Node(String primaryKeyId, String nodeName) {
+        private String isPeer; //是否同级,仅当前节点 1=是,0=否
+
+        public Node(String primaryKeyId, String nodeName, String isPeer) {
             this.primaryKeyId = primaryKeyId;
             this.nodeName = nodeName;
+            this.isPeer = isPeer;
         }
 
         public Node() {

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormData.java

@@ -216,5 +216,9 @@ public class FormData {
         return !(Func.isNotEmpty(this.values) && this.values.stream().map(ElementData::getValue).anyMatch(Func::isNotEmpty));
     }
 
+    public List<Object> getRawValue(){
+        return this.values.stream().map(ElementData::getValue).collect(Collectors.toList());
+    }
+
 
 }

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

@@ -2688,6 +2688,9 @@ public class InformationWriteQueryController extends BladeController {
         } else {
             //todo 仅当前节点操作
             if (allSelectedNodeList.size() > 0) {
+                if (allSelectedNodeList.size() != 1) {
+                    throw new ServiceException("只能选择单节点进行新增操作");
+                }
                 //查询数据
                 selectedNodeList = this.unifiedCode(allSelectedNodeList, treeContract, "0");
 
@@ -2722,7 +2725,7 @@ public class InformationWriteQueryController extends BladeController {
             });
 
             //处理数据
-            selectedNodeList.forEach(half -> {
+            for (WbsTreeContract half : selectedNodeList) {
                 //处理合同段数据
                 WbsTreeContract newData = new WbsTreeContract();
                 BeanUtils.copyProperties(half, newData);
@@ -2736,12 +2739,22 @@ public class InformationWriteQueryController extends BladeController {
                 //设置父级id
                 if ("1".equals(vo.getSaveType())) {
                     //当前节点及其子节点操作
-                    newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
+                    newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) /*|| treeContract.getOldId().equals(half.getParentId().toString())*/ ? treeContract.getId() : SnowFlakeUtil.getId());
                 } else {
-                    //仅当前节点新增操作时,父级id=选择新增的节点父级id
+                    //TODO 仅当前节点新增操作时,父级id=选择新增的节点父级id(同级情况) or 父级id=选择新增的节点id(不同级情况,也就是下级)
                     if (new Integer("1").equals(half.getType())) {
-                        //节点
-                        newData.setParentId(half.getParentId());
+                        if (vo.getAllSelectedList().size() == 1) {
+                            AddContractTreeNodeVO.Node node = vo.getAllSelectedList().get(0);
+                            if (("1").equals(node.getIsPeer())) {
+                                //同级
+                                newData.setParentId(treeContract.getParentId());
+
+                            } else if (("2").equals(node.getIsPeer())) {
+                                //下一级
+                                newData.setParentId(treeContract.getId());
+
+                            }
+                        }
                     } else if (new Integer("2").equals(half.getType())) {
                         //表
                         newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
@@ -2809,7 +2822,7 @@ public class InformationWriteQueryController extends BladeController {
                     //生成施工日志
                     this.createLedger(newData, saveLedger, null, nodeMap);
                 }
-            });
+            }
         }
         treeContract.setNodeName(vo.getAllSelectedList().get(0).getNodeName());
         R<Boolean> booleanR = this.saveOrCopyNodeTree(saveList, saveLedger, 2, treeContract);
@@ -2859,9 +2872,7 @@ public class InformationWriteQueryController extends BladeController {
             //selectedNodeList.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
             selectedNodeList.removeIf(wbsTreePrivate -> {
                 Long id = wbsTreePrivate.getId();
-                String oldId = wbsTreePrivate.getId().toString();
-                return treeContract.getId() != null && treeContract.getOldId() != null &&
-                        (treeContract.getId().equals(id) || treeContract.getOldId().equals(oldId));
+                return treeContract.getId() != null && treeContract.getId().equals(id);
             });
         }
 
@@ -2982,9 +2993,7 @@ public class InformationWriteQueryController extends BladeController {
             //剔除与当前操作节点相同的ID
             allSelectedNodeLists.removeIf(wbsTreePrivate -> {
                 Long id = wbsTreePrivate.getId();
-                String oldId = wbsTreePrivate.getId().toString();
-                return treeContract.getId() != null && treeContract.getOldId() != null &&
-                        (treeContract.getId().equals(id) || treeContract.getOldId().equals(oldId));
+                return treeContract.getId() != null && treeContract.getId().equals(id);
             });
             //allSelectedNodeLists.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
             //设置到集合中

+ 5 - 0
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -1592,6 +1592,11 @@ public class CustomFunction {
                 min = designD - devD;
                 max = designD + devD;
             }
+            if(min>max){
+                double tmp=max;
+                max=min;
+                min=tmp;
+            }
             result[0] = min;
             result[1] = max;
             return result;

+ 6 - 7
blade-service/blade-manager/src/main/java/com/mixsmart/utils/StringUtils.java

@@ -939,13 +939,12 @@ public class StringUtils {
 
 
     /**
-     * 判断是否为数字,包括小数、负数
-     *
-     * @param value
-     * @return
-     * @author:rock
-     * @time:2020年4月15日 上午10:46:15
-     */
+     * @Description 是否数字
+     * @Param [value]
+     * @return boolean
+     * @Author yangyj
+     * @Date 2022.06.02 14:54
+     **/
     public static boolean isNumber(Object value) {
         if (isEmpty(value)) {
             return false;

+ 17 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1549,7 +1549,7 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
                              FormData dataFd=tec.formDataMap.get(codeList.get(0));
                              String designStr=codeList.get(1);
                              FormData designFd=tec.formDataMap.get(designStr);
-                             String devStr=StringUtils.isEmpty(formula.getDev())?formula.getDev():fd.getEAllowDeviation();
+                             String devStr=StringUtils.isNotEmpty(formula.getDev())?formula.getDev():fd.getEAllowDeviation();
                              if(StringUtils.isEmpty(devStr)){
                                  /*数据库找不到的情况就读取Excel*/
                                  if(tec.wkbMap.isEmpty()){
@@ -1602,17 +1602,23 @@ public  List<ElementData> setScale(Integer scale,List<ElementData> data){
                                  devStr="±100000";
                              }
                              /*设计值可以是数值类型,或空(等效0)*/
-                             if(dataFd!=null&&designFd!=null){
-                                 if(dataFd.getValues().stream().map(ElementData::getValue).anyMatch(StringUtils::isNotEmpty)&&(designFd.getValues().size()>1||designFd.getValues().stream().map(ElementData::getValue).anyMatch(StringUtils::isEmpty))){
-                                     /*多少个设计值暂时默认全部合格,满足绝大部分结果*/
-                                     data=dataFd.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).count();
-                                 }else{
-                                     List<Object>  result =  CustomFunction.b445check(dataFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),designFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),devStr,1 );
-                                     data=result.get(1);
+                             if(dataFd!=null){
+                                    List<Object> values= dataFd.getRawValue();
+                                    boolean nonNumeric=values.stream().filter(StringUtils::isNotEmpty).anyMatch(e->!StringUtils.isNumber(e));
+                                 if(nonNumeric){
+                                   data=values.stream().filter(StringUtils::isNotEmpty).count();
+                                 }else if(designFd!=null){
+                                     if(dataFd.getValues().stream().map(ElementData::getValue).anyMatch(StringUtils::isNotEmpty)&&(designFd.getValues().size()>1||designFd.getValues().stream().map(ElementData::getValue).anyMatch(StringUtils::isEmpty))){
+                                         /*多少个设计值暂时默认全部合格,满足绝大部分结果*/
+                                         data=dataFd.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).count();
+                                     }else{
+                                         List<Object>  result =  CustomFunction.b445check(dataFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),designFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),devStr,1 );
+                                         data=result.get(1);
+                                     }
+                                 }else if(BaseUtils.isNumber(designStr)) {
+                                     List<Object> result = CustomFunction.b445check(dataFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()), 0, devStr, 1);
+                                     data = result.get(1);
                                  }
-                             }else if(dataFd!=null&& BaseUtils.isNumber(designStr)){
-                                     List<Object>  result =  CustomFunction.b445check(dataFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),0,devStr,1 );
-                                     data=result.get(1);
                              }
                          }
                          f = f.replace(m.group(),putDataWithKey(BaseUtils.isNumber(data)?Double.parseDouble(data.toString()):data));