parent
							
								
									f754990c9e
								
							
						
					
					
						commit
						5571bfd3bb
					
				| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
package shkd.sys.sys.plugin.list;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
 | 
			
		||||
import kd.bos.entity.list.column.AmountColumnDesc;
 | 
			
		||||
import kd.bos.entity.list.column.DynamicTextColumnDesc;
 | 
			
		||||
import kd.bos.list.plugin.AbstractListPlugin;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
import kd.tmc.fbp.common.constant.Constants;
 | 
			
		||||
import kd.tmc.fbp.common.helper.GuaranteeUseHelper;
 | 
			
		||||
import kd.tmc.fbp.common.helper.TmcBusinessBaseHelper;
 | 
			
		||||
import kd.tmc.fbp.common.helper.TmcDataServiceHelper;
 | 
			
		||||
import kd.tmc.fbp.common.util.EmptyUtil;
 | 
			
		||||
import kd.tmc.gm.common.helper.GuaranteeContractHelper;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.math.RoundingMode;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
public class guaranteecontListPlugin extends AbstractListPlugin {
 | 
			
		||||
    private static final String[] gcProps = new String[]{"gcomment", "gcparty", "gsrcbillid", "gsrcbillno", "gsrcbilltype", "gdebtorg", "gdebtorgtext", "gdebtcurrency", "gdebtamount", "gdebtbalance", "gratio", "gexchrate", "gdebtstartdate", "gdebtenddate", "gcontract", "gsrcbillbizamount", "gcreditortype", "gcreditor", "gcreditortext"};
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void packageData(PackageDataEvent e) {
 | 
			
		||||
        super.packageData(e);
 | 
			
		||||
        if (e.getSource() instanceof DynamicTextColumnDesc) {
 | 
			
		||||
            DynamicTextColumnDesc column = (DynamicTextColumnDesc) e.getSource();
 | 
			
		||||
            if ("shkd_dynamictextlistcolum".equals(column.getFieldKey())) {
 | 
			
		||||
                Long id = (Long) e.getRowData().get("id");
 | 
			
		||||
                DynamicObject gContractCcy = e.getRowData().getDynamicObject("currency");
 | 
			
		||||
                Long gContractCcyId = (Long)gContractCcy.getPkValue();
 | 
			
		||||
                QFilter gQF = new QFilter("gcontract.id", "=", id);
 | 
			
		||||
                DynamicObjectCollection gcUseBills = QueryServiceHelper.query("gm_guaranteeuse", String.join(",", gcProps), gQF.toArray());
 | 
			
		||||
                Map<Long, BigDecimal> letterCreditMap = GuaranteeContractHelper.getLetterCreditMap(gcUseBills);
 | 
			
		||||
                Map<Long, BigDecimal> loanBillMap = GuaranteeContractHelper.getLoanBillMap(gcUseBills);
 | 
			
		||||
                BigDecimal sumOfBal = BigDecimal.ZERO;
 | 
			
		||||
                if (!EmptyUtil.isEmpty(gcUseBills)) {
 | 
			
		||||
                    for (DynamicObject gcBIll : gcUseBills) {
 | 
			
		||||
                        if ("cfm_creditlimit".equals(TmcBusinessBaseHelper.getBillFormId(gcBIll.getString("gsrcbilltype")))) {
 | 
			
		||||
                        } else {
 | 
			
		||||
                            BigDecimal debtBalance = gcBIll.getBigDecimal("gdebtbalance");
 | 
			
		||||
                            if ("lc_lettercredit".equals(gcBIll.get("gsrcbilltype")) && EmptyUtil.isNoEmpty((BigDecimal)letterCreditMap.get(gcBIll.getLong("gsrcbillid")))) {
 | 
			
		||||
                                debtBalance = ((BigDecimal)letterCreditMap.get(gcBIll.getLong("gsrcbillid"))).multiply(gcBIll.getBigDecimal("gratio")).divide(Constants.ONE_HUNDRED, 4, RoundingMode.HALF_UP);
 | 
			
		||||
                            } else if (Arrays.asList("cfm_loanbill_b_l", "cfm_loanbill_e_l", "cfm_loanbill", "cim_invest_loanbill").contains(gcBIll.get("gsrcbilltype")) && EmptyUtil.isNoEmpty((BigDecimal)loanBillMap.get(gcBIll.getLong("gsrcbillid")))) {
 | 
			
		||||
                                debtBalance = ((BigDecimal)loanBillMap.get(gcBIll.getLong("gsrcbillid"))).multiply(gcBIll.getBigDecimal("gratio")).divide(Constants.ONE_HUNDRED, 4, RoundingMode.HALF_UP);
 | 
			
		||||
                            }
 | 
			
		||||
                            Long debtBillCcy = gcBIll.getLong("gdebtcurrency");
 | 
			
		||||
                            if (EmptyUtil.isNoEmpty(debtBillCcy) && !gContractCcyId.equals(debtBillCcy) && debtBalance.compareTo(BigDecimal.ZERO) != 0) {
 | 
			
		||||
                                BigDecimal gExchangeRate = gcBIll.getBigDecimal("gexchrate");
 | 
			
		||||
                                debtBalance = debtBalance.multiply(gExchangeRate);
 | 
			
		||||
                            }
 | 
			
		||||
                            sumOfBal = sumOfBal.add(debtBalance);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                e.setFormatValue(sumOfBal);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue