zm
2020-05-18 a18bfacbf56b401f6e0fdae8710fbca4df8cff77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package cn.autoform.web.formula.tool;
 
import java.util.Map;
import java.util.Objects;
 
import cn.autoform.web.formula.info.FormCpn;
import cn.autoform.web.formula.info.impl.cpn.ChildCpn;
import cn.autoform.web.formula.prop.Attribute;
 
public class FormCpnTool{
    
    public static double sumValByCpn(FormCpn formCpn){
        FormCpn parent = formCpn.getParentCpn();
        if(parent == null || !(parent instanceof ChildCpn)){
            return 0;
        }
        Map<Integer, Map<String, FormCpn>> values = ((ChildCpn)parent).getFormCpnValues();
        double sum = 0;
        try{
            if(values == null || values.isEmpty()){
                return Double.parseDouble(Objects.toString(formCpn.get(Attribute.value), "0"));
            }
            for(Map<String, FormCpn> col:values.values()){
                sum += Double.parseDouble(Objects.toString(col.get(formCpn.getFieldId()).get(Attribute.value), "0"));
            }
        }catch (NumberFormatException e) {
            sum = 0;
        }
        return sum;
    }
    
}