工具类
This commit is contained in:
parent
9500821304
commit
d918f9afb3
|
@ -0,0 +1,85 @@
|
||||||
|
package nc.bs.uapbd.util;
|
||||||
|
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.logging.Logger;
|
||||||
|
import nc.itf.arap.goldentax.SysParaInitQuery;
|
||||||
|
import nc.jdbc.framework.processor.ColumnProcessor;
|
||||||
|
import nc.vo.cmp.util.StringUtils;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pubapp.pattern.pub.SqlBuilder;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工具类
|
||||||
|
*
|
||||||
|
* @author mzr
|
||||||
|
* @date 2025/7/3
|
||||||
|
*/
|
||||||
|
public class MyHelper {
|
||||||
|
private static final BaseDAO dao = new BaseDAO();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据主键查询编码
|
||||||
|
*/
|
||||||
|
public static String transferField(String tableName, String selectField, String pkField, String pk) throws BusinessException {
|
||||||
|
if (StringUtils.isEmpty(pk)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
SqlBuilder sqlBuilder = new SqlBuilder();
|
||||||
|
sqlBuilder.append(" select " + selectField);
|
||||||
|
sqlBuilder.append(" from " + tableName);
|
||||||
|
sqlBuilder.append(" where ");
|
||||||
|
sqlBuilder.append(pkField, pk);
|
||||||
|
Object o = dao.executeQuery(sqlBuilder.toString(), new ColumnProcessor());
|
||||||
|
if (o == null) {
|
||||||
|
throw new BusinessException("未查询到编码信息,sql【" + sqlBuilder + "】");
|
||||||
|
}
|
||||||
|
return o.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查当前组织是否为电力电子
|
||||||
|
*/
|
||||||
|
public static boolean checkIfDldzOrg(String code) throws BusinessException {
|
||||||
|
String targetCode = SysParaInitQuery.getParaString("GLOBLE00000000000000", "DLDZORG");
|
||||||
|
if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) {
|
||||||
|
throw new BusinessException("未配置组织参数,请前往 [业务参数设置-全局] 配置DLDZORG参数");
|
||||||
|
}
|
||||||
|
String[] orgItem = targetCode.split(";");
|
||||||
|
for (String orgCode : orgItem) {
|
||||||
|
if (!orgCode.isEmpty() && orgCode.equals(code)) {
|
||||||
|
Logger.debug("当前处理组织校验为电力电子:" + code);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换特殊字段 如 1/1 转换为小数 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
private String transferSpecialField(String field) {
|
||||||
|
if (field == null || field.trim().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String[] split = field.split("/");
|
||||||
|
if (split.length == 2) {
|
||||||
|
String numStr = split[0].trim();
|
||||||
|
String denStr = split[1].trim();
|
||||||
|
if (denStr.equals("0")) {
|
||||||
|
return "0.00"; // 分母不能为零
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
BigDecimal numerator = new BigDecimal(numStr);
|
||||||
|
BigDecimal denominator = new BigDecimal(denStr);
|
||||||
|
return numerator.divide(denominator, 2, RoundingMode.HALF_UP).toString();
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return field; // 非法数字,返回原字段
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return field;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue