CommonUtils.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package kd.cosmic.jkjt.tmc.bei.common;
  2. import kd.bos.algo.DataSet;
  3. import kd.bos.algo.Row;
  4. import kd.bos.entity.report.FilterInfo;
  5. import kd.bos.entity.report.FilterItemInfo;
  6. import kd.bos.entity.report.parser.QFilterParserFactory;
  7. import kd.bos.logging.Log;
  8. import kd.bos.logging.LogFactory;
  9. import kd.bos.orm.query.QFilter;
  10. import kd.bos.util.StringUtils;
  11. import java.math.BigDecimal;
  12. import java.math.RoundingMode;
  13. import java.util.HashSet;
  14. import java.util.Iterator;
  15. import java.util.List;
  16. import java.util.Set;
  17. public class CommonUtils {
  18. private static final Log logger = LogFactory.getLog(CommonUtils.class);
  19. /**
  20. * 将金额(BigDecimal)转换为“万元”单位,保留1位小数
  21. *
  22. * @param amount 金额(单位:元)
  23. * @return 转换后的万元字符串,如 "0.2万元"
  24. */
  25. public static String convertToTenThousandYuan(BigDecimal amount) {
  26. if (amount == null) {
  27. return "0万元";
  28. }
  29. // 转换为万元:除以 10000
  30. BigDecimal tenThousand = amount.divide(new BigDecimal("10000"), 1, RoundingMode.HALF_UP);
  31. return tenThousand.stripTrailingZeros().toPlainString() + "万元";
  32. }
  33. public static Set getFieldValue(DataSet ds, String fieldName){
  34. Iterator<Row> it = ds.copy().iterator();
  35. Set<Object> fieldValueSet = new HashSet<>();
  36. while (it.hasNext()){
  37. fieldValueSet.add(it.next().get(fieldName));
  38. }
  39. return fieldValueSet;
  40. }
  41. public static DataSet joinDataSetList(List<DataSet> dataSetList){
  42. DataSet dataSet = null;
  43. for(DataSet dt : dataSetList){
  44. if(dataSet == null){
  45. dataSet = dt;
  46. }else{
  47. dataSet = dt.union(dataSet);
  48. }
  49. }
  50. return dataSet;
  51. }
  52. public static QFilter getQFilterFormInfo(FilterInfo filterInfo,String filterName,String qFilterName){
  53. if(filterInfo != null){
  54. FilterItemInfo filterItem = filterInfo.getFilterItem(filterName);
  55. if(filterItem != null){
  56. QFilter filter = QFilterParserFactory.createQFilterProcessor(filterItem.getCompareType())
  57. .buildQFilterByFilterItem(filterItem);
  58. if(StringUtils.isNotEmpty(qFilterName)){
  59. filter.__setProperty(qFilterName);
  60. return filter;
  61. }
  62. }
  63. }
  64. return null;
  65. }
  66. }