ensign/src/main/java/com/yem/rf/utils/RFUtils.java

124 lines
4.1 KiB
Java

package com.yem.rf.utils;
import com.yem.wm.utils.YEM;
import kd.bos.algo.DataSet;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.metadata.IDataEntityProperty;
import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
import kd.bos.entity.report.FilterInfo;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QFilter;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: TODO
* @Date: 2024/7/8 11:17
* @Created: by ZZSLL
*/
public class RFUtils {
public static QFilter getBaseQFilter() {
return new QFilter("billstatus", "in", new String[]{"C"});
}
public static QFilter getBaseQFilter(String[] args) {
return new QFilter("billstatus", "in", args);
}
public static String formatDate(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(date);
}
public static String formatDate(Date date, String format) {
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
public static String printBigDecimal(Object number) {
BigDecimal num = new BigDecimal(String.valueOf(number));
return num.stripTrailingZeros().toPlainString();
}
public static List<Map<String, Object>> debugDataSet(DataSet dataSet) {
dataSet = dataSet.copy();
List<Map<String, Object>> list = new ArrayList<>();
DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(dataSet);
for (DynamicObject dynamicObject : collection) {
Map<String, Object> map = new LinkedHashMap<>();
DataEntityPropertyCollection properties = dynamicObject.getDataEntityType().getProperties();
for (IDataEntityProperty property : properties) {
String name = property.getName();
if (dynamicObject.containsProperty(name)) {
Object value = dynamicObject.get(name);
map.put(name, value);
}
}
list.add(map);
}
return list;
}
public static Object debugGetIfExist(DataSet dataSet, String propName, int idx) {
dataSet = dataSet.copy();
List<Map<String, Object>> collection = debugDataSet(dataSet);
if (idx > collection.size()) {
return "idx > Collection.size() |" + idx + " > " + collection.size();
}
Map<String, Object> dynamicObject = collection.get(idx);
if (dynamicObject.containsKey(propName)) {
return dynamicObject.get(propName);
} else {
return "不存在属性: " + propName;
}
}
public static List<Object> debugGetIfExist(DataSet dataSet, String propName) {
dataSet = dataSet.copy();
List<Object> list = new ArrayList<>();
List<Map<String, Object>> collection = debugDataSet(dataSet);
for (Map<String, Object> dynamicObject : collection) {
if (dynamicObject.containsKey(propName)) {
list.add(dynamicObject.get(propName));
}
}
return list;
}
public static List<Long> getFBaseDataIds(FilterInfo filter, String propName) {
List<Long> ids = new ArrayList<>();
DynamicObjectCollection collection = filter.getDynamicObjectCollection(propName);
if (collection != null) {
for (DynamicObject d : collection) {
long id = d.getLong("id");
ids.add(id);
}
}
return ids;
}
public static String concatFBaseDataFilter(List<Long> ids, String propName) {
StringBuilder sb = new StringBuilder();
if (YEM.isNotEmpty(ids)) {
sb.append(" AND ").append(propName).append(" IN (");
for (Long i : ids) {
int idx = ids.indexOf(i);
if (idx == ids.size() - 1) {
sb.append(i);
} else {
sb.append(i).append(",");
}
}
sb.append(")");
}
return sb.toString();
}
}