123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- package kd.cosmic.jkjt.tmc.am.report;
- import kd.bos.orm.query.QFilter;
- import kd.tmc.am.report.bankacct.data.usage.ConcreteStrategyJournal;
- import kd.tmc.fbp.common.util.EmptyUtil;
- import java.math.BigDecimal;
- import java.math.BigInteger;
- import java.util.List;
- import java.util.Map;
- public class ConcreteStrategyJournalEx extends ConcreteStrategyJournal {
- public ConcreteStrategyJournalEx(List<QFilter> qFilterList, Map<String, Object> paramMap, String dimension) {
- super(qFilterList, paramMap, dimension);
- }
- public BigDecimal getBigDecimal(Object objValue) {
- BigDecimal ret = null;
- if(objValue == null || objValue.equals("")){
- return BigDecimal.ZERO;
- }
- if(objValue instanceof BigDecimal) {
- ret = (BigDecimal) objValue;
- } else if( objValue instanceof String ) {
- ret = new BigDecimal( (String) objValue );
- } else if( objValue instanceof BigInteger) {
- ret = new BigDecimal( (BigInteger) objValue );
- } else if( objValue instanceof Number ) {
- ret = new BigDecimal( ((Number)objValue).doubleValue() );
- } else {
- throw new ClassCastException("Not possible to coerce ["+ objValue + "] from class "+ objValue.getClass()+" into a BigDecimal.");
- }
- return ret;
- }
- @Override
- public void setFilter() {
- super.setFilter();
- if (!EmptyUtil.isEmpty(paramMap.get("nckd_amountitem"))) {
- setAmountFilter();
- }
- }
- private void setAmountFilter(){
- String flow = "";
- if (!EmptyUtil.isEmpty(this.paramMap.get("filter_flow"))) {
- flow = String.valueOf(this.paramMap.get("filter_flow"));
- }
- String amountField = "debitamount";
- switch ((String)paramMap.get("nckd_amountitem")) {
- case "0"://等于
- if (paramMap.get("nckd_amount") != null) {
- setAmountFilterSingle(flow, "=");
- }
- break;
- case "1"://大于
- if (paramMap.get("nckd_amount") != null) {
- setAmountFilterSingle(flow, ">");
- }
- break;
- case "2"://小于
- if (paramMap.get("nckd_amount") != null) {
- setAmountFilterSingle(flow, "<");
- }
- break;
- case "3"://介于
- if (paramMap.get("nckd_stramount") != null) {
- super.getFilterList().add(new QFilter(amountField, ">=", getBigDecimal(paramMap.get("nckd_stramount"))));
- }
- if (paramMap.get("nckd_endamount") != null) {
- super.getFilterList().add(new QFilter(amountField, "<=", getBigDecimal(paramMap.get("nckd_endamount"))));
- }
- break;
- case "4"://不介于
- QFilter qFilter = null;
- if (paramMap.get("nckd_stramount") != null) {
- qFilter = new QFilter(amountField, "<", getBigDecimal(paramMap.get("nckd_stramount")));
- }
- if (paramMap.get("nckd_endamount") != null) {
- if(qFilter == null){
- qFilter = new QFilter(amountField, ">", getBigDecimal(paramMap.get("nckd_endamount")));
- } else {
- qFilter.or(new QFilter(amountField, ">", getBigDecimal(paramMap.get("nckd_endamount"))));
- }
- }
- super.getFilterList().add(qFilter);
- break;
- }
- }
- private void setAmountFilterSingle(String flow, String operator){
- BigDecimal amount = getBigDecimal(paramMap.get("nckd_amount"));
- if ("in".equals(flow)) {
- super.getFilterList().add(new QFilter("creditamount", operator, amount));
- } else if ("out".equals(flow)) {
- super.getFilterList().add(new QFilter("debitamount", operator, amount));
- } else {
- QFilter qFilter = new QFilter("creditamount", operator, amount).and(new QFilter("creditamount", ">", 0));
- qFilter.or(new QFilter("debitamount", operator, amount).and(new QFilter("debitamount", ">", 0)));
- super.getFilterList().add(qFilter);
- }
- }
- private void setAmountFilterBetween(String flow){
- BigDecimal amount = getBigDecimal(paramMap.get("nckd_amount"));
- if ("in".equals(flow)) {
- if (paramMap.get("nckd_stramount") != null) {
- super.getFilterList().add(new QFilter("creditamount", ">=", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("creditamount", ">", 0)));
- }
- if (paramMap.get("nckd_endamount") != null) {
- super.getFilterList().add(new QFilter("creditamount", "<=", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("creditamount", ">", 0)));
- }
- } else if ("out".equals(flow)) {
- if (paramMap.get("nckd_stramount") != null) {
- super.getFilterList().add(new QFilter("debitamount", ">=", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("debitamount", ">", 0)));
- }
- if (paramMap.get("nckd_endamount") != null) {
- super.getFilterList().add(new QFilter("debitamount", "<=", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("debitamount", ">", 0)));
- }
- } else {
- if (paramMap.get("nckd_stramount") != null) {
- QFilter qFilter = new QFilter("creditamount", ">=", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("creditamount", ">", 0));
- qFilter.or(new QFilter("debitamount", ">=", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("debitamount", ">", 0)));
- super.getFilterList().add(qFilter);
- }
- if (paramMap.get("nckd_endamount") != null) {
- QFilter qFilter = new QFilter("creditamount", "<=", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("creditamount", ">", 0));
- qFilter.or(new QFilter("debitamount", "<=", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("debitamount", ">", 0)));
- super.getFilterList().add(qFilter);
- }
- }
- }
- private void setAmountFilterNotBetween(String flow){
- QFilter qFilter = null;
- if ("in".equals(flow)) {
- if (paramMap.get("nckd_stramount") != null) {
- qFilter = new QFilter("creditamount", "<", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("creditamount", ">", 0));
- }
- if (paramMap.get("nckd_endamount") != null) {
- if(qFilter == null){
- qFilter = new QFilter("creditamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("creditamount", ">", 0));
- } else {
- qFilter.or(new QFilter("creditamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("creditamount", ">", 0)));
- }
- }
- if(qFilter != null) {
- super.getFilterList().add(qFilter);
- }
- } else if ("out".equals(flow)) {
- if (paramMap.get("nckd_stramount") != null) {
- qFilter = new QFilter("debitamount", "<", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("debitamount", ">", 0));
- }
- if (paramMap.get("nckd_endamount") != null) {
- if(qFilter == null){
- qFilter = new QFilter("debitamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("debitamount", ">", 0));
- } else {
- qFilter.or(new QFilter("debitamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("debitamount", ">", 0)));
- }
- }
- if(qFilter != null) {
- super.getFilterList().add(qFilter);
- }
- } else {
- if (paramMap.get("nckd_stramount") != null) {
- qFilter = new QFilter("creditamount", "<", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("creditamount", ">", 0));
- qFilter.or(new QFilter("debitamount", "<", getBigDecimal(paramMap.get("nckd_stramount"))).and(new QFilter("debitamount", ">", 0)));
- }
- if (paramMap.get("nckd_endamount") != null) {
- if(qFilter == null){
- qFilter = new QFilter("creditamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("creditamount", ">", 0));
- } else {
- qFilter.or(new QFilter("creditamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("creditamount", ">", 0)));
- }
- qFilter.or(new QFilter("debitamount", ">", getBigDecimal(paramMap.get("nckd_endamount"))).and(new QFilter("debitamount", ">", 0)));
- }
- if(qFilter != null) {
- super.getFilterList().add(qFilter);
- }
- }
- }
- }
|