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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.changhong.epc.count.service.count.model;
 
import com.changhong.epc.bean.tenant.norm.extend.AppStanderExtend;
import com.changhong.epc.bean.tenant.norm.extend.SuppStanderExtend;
import com.changhong.epc.bean.tenant.system.ErrSystemMsg;
import com.changhong.epc.constter.count.format.ConstFormatMsg;
import com.iemsoft.framework.cloud.core.tools.MsgTool;
import lombok.Data;
import org.springframework.ui.ModelMap;
 
import java.util.*;
 
@Data
public class CountNormErrStart implements ConstFormatMsg {
 
    /**
     * 错误类型
     */
    protected static final Map<Integer, String> ERR_TYPE;
    
    /**
     * 计算不在标准内
     */
    public static final Integer COUNT_NOT_STANDARD        = 0;
 
    /**
     * 行程未关联票据
     */
    public static final Integer NOT_JOIN_BILL            = 1;
    
    /**
     * 主数据缺失
     */
    public static final Integer NOT_MASTER_BILL            = 3;
 
    static{
        Map<Integer, String> err = new HashMap<>();
        /**
         * 计算不在标准内
         */
        err.put(COUNT_NOT_STANDARD, "不在补助标准范围内");
        /**
         * 行程未关联票据
         */
        err.put(NOT_JOIN_BILL, "行程未关联票据");
        err.put(NOT_MASTER_BILL, "主数据缺失");
        ERR_TYPE = Collections.unmodifiableMap(err);
    }
 
 
 
    /**
     * 错误类型
     */
    private Integer errType;
 
    /**
     * 错误信息
     */
    protected String errMsg;
 
    /**
     * 主数据缺少错误信息
     */
    protected Set<ErrSystemMsg> masterErrMsg = new HashSet<>();
 
    /**
     * 错误属性,用于比较重复
     */
    protected Set<Map<String, Object>> propInfo = new HashSet<>();
 
    /**
     * 清空属性的错误信息
     * @Title: clearErrProp
     * @return void    返回类型
     * @throws
     */
    public void clearErrProp() {
        this.errType = null;
        this.masterErrMsg.clear();
    }
    
    /**
     * 添加属性的错误信息
     * @Title: addErrProp
     
     * @param @param err    设定文件
     * @return void    返回类型
     * @throws
     */
    public void addBillErr(ErrSystemMsg e) {
        this.masterErrMsg.add(e);
        this.errType = NOT_MASTER_BILL;
    }
 
    /**
     * 不在标准内
     * @param appStander
     * @param suppStanderCount
     */
    public void notStandard(List<AppStanderExtend> appStander, SuppStanderExtend suppStanderCount){
        this.propInfo = new HashSet<>();
        StringBuilder standardStr = new StringBuilder();
        String ss = null;
        appStander.stream()
                .forEach(as -> {
                    standardStr.append(as.getDefName()).append(',');
                    this.propInfo.add(new ModelMap(as.getMasDefineCode(), as.getDefName()));
                });
        if(standardStr.length() > 0){
            ss = standardStr.substring(0, standardStr.length() -1);
        }
        this.setErrMsg(String.format(
                // 费用类型--交通费,报销方式--标准内据实报销,错误提示--[交通类型,交通席别]不在补助标准范围内
                "%s--%s,%s--%s,%s--[%s]%s"
                , MsgTool.get(MONEY_TYPE), suppStanderCount.getTypeName()
                , MsgTool.get(WAY_TYPE), MsgTool.get(suppStanderCount.getName())
                , MsgTool.get(ERR_TITLE), ss , MsgTool.get(NO_STANDARD)
                ));
        this.errType = COUNT_NOT_STANDARD;
    }
 
    /**
     * 是否存在错误信息
     * @Title: isExistErr
     
     * @param @return    设定文件
     * @return boolean    返回类型
     * @throws
     */
    public boolean isExistErr() {
        return this.errType != null;
    }
    
    /**
     * 获得错误消息
     * @Title: getMsg
     
     * @param @return    设定文件
     * @return String    返回类型
     * @throws
     */
    public String getMsg() {
        return errMsg;
    }
 
}