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 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 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 masterErrMsg = new HashSet<>(); /** * 错误属性,用于比较重复 */ protected Set> 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 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; } }