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;
|
}
|
|
}
|