數據模型封裝--行列固定(java)

package ims.sinotrust.bean;

import ims.sinotrust.util.FormatBigDecimal;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import snt.common.dao.base.ICommonDAOService;
import snt.common.web.util.WebUtils;

public class ShareHolderAndStocksBean extends CreditReportViewBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private static Log logger = LogFactory.getLog(ShareHolderAndStocksBean.class);
	
	/**
	 * 出資方式,到位率List
	 */
	private List<ShareHolderDataBean> shareholderdata;

	/**
	 * 出資額,份額List
	 */
	private List<StocksDataBean> stockdata;
	

	private String shareTotal;//份額的合計
	
	private String shareMoneyTotal;//出資額 合計
	
	private String title;//爲另一個模塊提供標題,如果所有股東中,有一個是上市股東那麼就顯示上級主管單位背景,否則顯示主要股東背景。
	
	private boolean exsitHigherAuthorities;//存在上級主管單位這個模塊
	
	public String getShareTotal() {
		return shareTotal;
	}
	public void setShareTotal(String shareTotal) {
		this.shareTotal = shareTotal;
	}
	public String getShareMoneyTotal() {
		return shareMoneyTotal;
	}
	public void setShareMoneyTotal(String shareMoneyTotal) {
		this.shareMoneyTotal = shareMoneyTotal;
	}
	
	
	
	/**
	 * 按輸入SBDNum查詢股東及股份對象
	 * @param query
	 * @param SBDNum
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public ShareHolderAndStocksBean getShareHolderAndStocksBean(ICommonDAOService query, String SBDNum) {
		long stime = System.currentTimeMillis();
		String querySql = WebUtils.getMessage("sql", "ShareHolderBean.sql", new Object[]{SBDNum});
		logger.debug("新華信編號:" + SBDNum.toString() + " 查詢股東及股份: " + querySql.toString());
		List<Map> result = query.queryForMapList(querySql.toString());
		
		ShareHolderAndStocksBean sh = new ShareHolderAndStocksBean();
		List<ShareHolderDataBean>  shareholderdata = new ArrayList<ShareHolderDataBean>();
		List<StocksDataBean>  stocksrdata = new ArrayList<StocksDataBean>();
		BigDecimal ShareMoneyTotal = new BigDecimal(0.0);
        BigDecimal SharesTotal = new BigDecimal(0.0);	
        boolean isHaveGtOneShHolder = false;
	    for(int i = 0;i<result.size();i++){
	    	String ifHolder = this.changeType(result.get(i).get("ifHolder"));//是否股東
	    	if(ifHolder != null && ifHolder.equals("1")){
	    		isHaveGtOneShHolder = true;
	    	}
	    	if(ifHolder != null && ifHolder.equals("0")){//根據田春莉提供的報告預覽中涉及的開關選項.txt 修改
	    		exsitHigherAuthorities = true;
	    	}
	    	String corpName = this.changeType(result.get(i).get("CorpName"));//股東名稱
	    	String shares= FormatBigDecimal.format(this.changeTypeForBigDecimal(result.get(i).get("shares")));//股份(%)
	    	String shareMoney = FormatBigDecimal.format(this.changeTypeForBigDecimal(result.get(i).get("shareMoney")));//出資額 千元
	    	
	    	String formOfInvestment = this.changeType(result.get(i).get("FORMOFINVESTMENT"));//出資方式
	    	String paidupCapital = this.changeType(result.get(i).get("PAIDUPCAPITAL"));//資金到位率(%)
	    	String currencyName = this.changeType(result.get(i).get("CurrencyName") == null ? "" : "(" + this.changeType(result.get(i).get("CurrencyName")) + ")");//幣種
	    	String holderId = this.changeType(result.get(i).get("HolderId"));//股東編號
	    	//set份額,出資額
	    	StocksDataBean stocksdatabean = new StocksDataBean();
	    	stocksdatabean.setCorpName(corpName);
	    	stocksdatabean.setCurrencyName(currencyName);
	    	stocksdatabean.setShares(shares);
	    	if(this.changeType(result.get(i).get("CurrencyName")).equals(WebUtils.getMessage("currency.rmb_1"))){
	    		stocksdatabean.setShareMoney(shareMoney);
	    	}else{
	    		stocksdatabean.setShareMoney(shareMoney+currencyName);
	    	}	    	
	    	stocksdatabean.setIfHolder(ifHolder);	
	    	stocksdatabean.setHolderId(holderId);
	    	stocksrdata.add(stocksdatabean);
        	//set出資方式,到位率
        	 ShareHolderDataBean shareholderdatabean = new ShareHolderDataBean();
        	 if((paidupCapital != null) || (formOfInvestment != null)){	        		
     			shareholderdatabean.setCorpName(corpName);
     			shareholderdatabean.setPaidupCapital(paidupCapital);
     			shareholderdatabean.setFormOfInvestment(formOfInvestment);	 
     			shareholderdata.add(shareholderdatabean);
   	      	 }
        	 //求合計
        	 if(shareMoney!=null){
        		 ShareMoneyTotal = ShareMoneyTotal.add(this.changeTypeForBigDecimal(result.get(i).get("shareMoney")));//出資額 千元
     	     }
        	 if(shares!=null){
        		 SharesTotal = SharesTotal.add(this.changeTypeForBigDecimal(result.get(i).get("shares")));//股份(%)
        	 }   
	    }
	    if(isHaveGtOneShHolder){
	    	sh.setTitle(WebUtils.getMessage("jsp_CRV_.AEFA_00001"));
	    } else {
	    	sh.setTitle(WebUtils.getMessage("java_.CCM_00059"));
	    }
	    sh.setShareMoneyTotal(FormatBigDecimal.format(ShareMoneyTotal));
        sh.setShareTotal(FormatBigDecimal.format(SharesTotal));	  
	    sh.setStockdata(stocksrdata);
	    sh.setShareholderdata(shareholderdata);
	    logger.debug("新華信編號:" + SBDNum.toString() +"股東信息:"+(System.currentTimeMillis()-stime)+"毫秒");
		return sh;		
	}
	
	public List<StocksDataBean> getStockdata() {
		return stockdata;
	}
	public void setStockdata(List<StocksDataBean> stockdata) {
		this.stockdata = stockdata;
	}
	public List<ShareHolderDataBean> getShareholderdata() {
		return shareholderdata;
	}
	public void setShareholderdata(List<ShareHolderDataBean> shareholderdata) {
		this.shareholderdata = shareholderdata;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public boolean isExsitHigherAuthorities() {
		return exsitHigherAuthorities;
	}
	public void setExsitHigherAuthorities(boolean exsitHigherAuthorities) {
		this.exsitHigherAuthorities = exsitHigherAuthorities;
	}

}
package ims.sinotrust.bean;

import java.io.Serializable;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
 * <p>Title: </p>
 *
 * <p>Description:出資額,份額 </p>
 *
 * <p>Company: sinotrust</p>
 * 
 * @author conglin
 *
 */
public class StocksDataBean implements Serializable{
	
	private static final long serialVersionUID = -8704765159975887696L;

	@SuppressWarnings("unused")
	private static Log logger = LogFactory.getLog(StocksDataBean.class);
	
	private String corpName;//股東名稱
	private String shares;//股份|份額(%)
	private String shareMoney;//出資額 千元
	private String currencyName;//幣種
	private String ifHolder;//是否股東
	private String holderId;//股東編號

	public String getHolderId() {
		return holderId;
	}
	public void setHolderId(String holderId) {
		this.holderId = holderId;
	}
	public String getIfHolder() {
		return ifHolder;
	}
	public void setIfHolder(String ifHolder) {
		this.ifHolder = ifHolder;
	}
		
	public String getCurrencyName() {
		return currencyName;
	}
	public void setCurrencyName(String currencyName) {
		this.currencyName = currencyName;
	}
	public String getCorpName() {
		return corpName;
	}
	public void setCorpName(String corpName) {
		this.corpName = corpName;
	}
	public String getShares() {
		return shares;
	}
	public void setShares(String shares) {
		this.shares = shares;
	}
	public String getShareMoney() {
		return shareMoney;
	}
	public void setShareMoney(String shareMoney) {
		this.shareMoney = shareMoney;
	}
	
	
}

/** * 改變類型爲 BigDecimal<p> * 主要爲了對 null 值作統一處理。如果 rs 爲空,則返回 null ;如果 rs 不爲空,則返回 new BigDecimal(rs.toString()) * @param rs * @return */protected BigDecimal changeTypeForBigDecimal(Object rs) {if (rs == null) {return null;}else {return new BigDecimal(rs.toString().trim());}}

/**
	 * 格式化BigDecimal,兩位小數,美國格式輸出
	 * @param bd BigDecimal
	 * @return String
	 */
	@SuppressWarnings("deprecation")
	public static synchronized String format(Object obj) {
		if (obj == null)
			return "--";
		if (obj instanceof java.sql.Date) {
			if (Locale.ENGLISH.getLanguage().equalsIgnoreCase(WebUtils.getLocale().getLanguage())) {
				java.sql.Date may = (java.sql.Date)obj;
				if (5 == may.getMonth() + 1) {
					return EDATEFORMATOFMAY.format(obj);
				}
				return EDATEFORMAT.format(obj);
			} else {
				return CDATEFORMAT.format(obj);
			}
			
//			if (Locale.CHINESE.getLanguage().equalsIgnoreCase(WebUtils.getLocale().getLanguage())) {
//				return CDATEFORMAT.format(obj);
//			} else {
//				return EDATEFORMAT.format(obj);
//			}
		} else if (obj instanceof java.util.Date) {
			if (Locale.ENGLISH.getLanguage().equalsIgnoreCase(WebUtils.getLocale().getLanguage())) {
				java.sql.Date may = (java.sql.Date)obj;
				if (5 == may.getMonth() + 1) {
					return EDATEFORMATOFMAY.format(obj);
				}
				return EDATEFORMAT.format(obj);
			} else {
				return CDATEFORMAT.format(obj);
			}
//			if (Locale.CHINESE.getLanguage().equalsIgnoreCase(WebUtils.getLocale().getLanguage())) {
//				return CDATEFORMAT.format(obj);
//			} else {
//				return EDATEFORMAT.format(obj);
//			}
		} else if (obj instanceof BigDecimal) {
			return DECIMALFORMAT.format(obj);
		} else if (obj instanceof Float) {
			return DECIMALFORMAT.format(obj);
		} else if (obj instanceof Double) {
			return DECIMALFORMAT.format(obj);
		} else {
			return obj.toString();
		}
	}

/**
	 * 改變變量類型爲String<p>
	 * 主要爲了對 null 值作統一的處理。如果 rs 爲空,則返回 "";如果 rs 不爲空,則返回 rs.toString()
	 * @param rs
	 * @return
	 */
	protected String changeType(Object rs) {
		String re = null;
		if (rs == null) {
			re = null;
		}else {
			re = rs.toString().trim();
		}
		return re;
	}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章