博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据模型封装--行列都不固定(java)
阅读量:4118 次
发布时间:2019-05-25

本文共 10872 字,大约阅读时间需要 36 分钟。

 
package ims.sinotrust.bean;import ims.sinotrust.util.FormatBigDecimal;import java.io.Serializable;import java.math.BigDecimal;import java.util.ArrayList;import java.util.LinkedHashMap;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 ImportExportBean extends CreditReportViewBean implements Serializable{	private static final long serialVersionUID = 1L;		private static Log logger = LogFactory.getLog(ReportSummaryBean.class);		// 进口总额	private List
showImportTradeSum; //出口总额 private List
showExportTradeSum; //进出口情况年度 private List
yearOfImportAndExport; // 主要自营进口地区 private List
> importCountryData; // 主要自营出口地区-战晓娟修改 private List
> exportCountryData; // Map中存的
<商品编码, 进口商品数据(单位,数据)>
private Map
importProduceMap; // Map中存的
<商品编码, 出口商品数据(单位,数据)>
private Map
exportProduceMap; /** * 进出口情况信息对应的年份 * @return */ private List
getYear(){ if (this.yearOfImportAndExport == null) { this.yearOfImportAndExport = new ArrayList
(); } return this.yearOfImportAndExport; } @SuppressWarnings("unchecked") public void getInportExportYears(ICommonDAOService query, String SBDNum){ //*******根据进口商品总额 添加 年度************ String sql = WebUtils.getMessage("sql", "ReportSummaryBean.sql.add17", new Object[]{SBDNum}); logger.debug("新华信编号:" + SBDNum + " 进出口商品总额&年度: " + sql); List
rsIOPro = query.queryForMapList(sql); int rsIOProSize = rsIOPro.size(); List
showImportTreeYears = new ArrayList
(); List
showExportTreeYears = new ArrayList
(); for (int i = 0; i < rsIOProSize; i++) { String year = this.changeType(rsIOPro.get(i).get("years")); //进口年数 BigDecimal imvalue = this.changeTypeForBigDecimal(rsIOPro.get(i).get("ImpValue")); //出口 BigDecimal exvalue = this.changeTypeForBigDecimal(rsIOPro.get(i).get("ExpValue")); /*importTreeYears.add(imvalue.add(new BigDecimal("0.5")).subtract(new BigDecimal("1"))); exportTreeYears.add(exvalue.add(new BigDecimal("0.5")).subtract(new BigDecimal("1")));*/ showImportTreeYears.add(imvalue.add(new BigDecimal("0.5")).subtract(new BigDecimal("1"))); showExportTreeYears.add(exvalue.add(new BigDecimal("0.5")).subtract(new BigDecimal("1"))); /* showImportTreeYears.add(FormatBigDecimal.BigdecimalFormat(imvalue.add(new BigDecimal("0.5")).subtract(new BigDecimal("1")))); showExportTreeYears.add(FormatBigDecimal.BigdecimalFormat(exvalue.add(new BigDecimal("0.5")).subtract(new BigDecimal("1"))));*/ this.getYear().add(year); //添加到年度列表 } this.setShowImportTradeSum(showImportTreeYears); this.setShowExportTradeSum(showExportTreeYears); } // ************主要自营进口产品************ @SuppressWarnings("unchecked") public void getImportBean(ICommonDAOService query, String SBDNum){ this.getInportExportYears(query, SBDNum); String sql = WebUtils.getMessage("sql", "ReportSummaryBean.sql.add1", new Object[]{SBDNum}); logger.debug("新华信编号:" + SBDNum.toString() + " 主要自营进口产品: " + sql.toString()); List
rsProIn = query.queryForMapList(sql.toString()); Map
importProduceMap = new LinkedHashMap
(); for (String existentYear : this.getYear()) { for (Map map : rsProIn) { if (importProduceMap.size() < 3 ) {//只显示三行数据 String code = this.changeType(map.get("PRODUCTCODE"));//商品编码 String year = this.changeType(map.get("year")); if (!existentYear.equalsIgnoreCase(year)) { //如果不是当前所选年度,则继续找下一条记录 continue; } if(importProduceMap.containsKey(code)){ ImportProduceBean importProductBean = importProduceMap.get(code); String value = FormatBigDecimal.BigdecimalFormat(this.changeTypeForBigDecimal(map.get("TRADEQUANTITY"))); importProductBean.setImportproduct(value); } else { ImportProduceBean importProductBean = new ImportProduceBean(); String unit = this.changeType(map.get("UNITCNAME"));//商品单位 String name = this.changeType(map.get("PRODUCTCNAME"));//商品名称 String value = FormatBigDecimal.BigdecimalFormat(this.changeTypeForBigDecimal(map.get("TRADEQUANTITY"))); importProductBean.setUnit(unit); importProductBean.setProduceName(name); importProductBean.setImportproduct(value); importProduceMap.put(code, importProductBean); } } } } // ***********主要自营进口地区**************** int index = 0; //键值 代表为第i行。 Map
> rowData = new LinkedHashMap
>(); for (String year : this.getYear()) { sql = WebUtils.getMessage("sql", "ReportSummaryBean.sql.add3", new Object[]{SBDNum, year}); logger.debug("新华信编号:" + SBDNum.toString() + " 主要自营进口地区: " + sql.toString()); List
rsAreaIn = query.queryForMapList(sql.toString()); int rsAreaInSize = rsAreaIn.size(); for (int i = 0; i < rsAreaInSize; i++) { String name = this.changeType(rsAreaIn.get(i).get("countryname")); String value = this.changeType(rsAreaIn.get(i).get("importvalue")); String valueImport =this.changeType(showImportTradeSum.get(index)); if(value == null || valueImport == null)continue; float percentage = Float.valueOf(value) / Float.valueOf(valueImport); String name_value = name+"("+FormatBigDecimal.format(percentage * 100)+"%)"; if(rowData.get(i) == null){ Map
newMap = new LinkedHashMap
(); newMap.put(year, name_value); rowData.put(i, newMap); } else { Map
newMap = rowData.get(i); newMap.put(year, name_value); } } index++; } //转化为页面更容易的结构 List
> data = new ArrayList
>(); for(int rowcount: rowData.keySet()){ //得到第rowcount的数据 Map
indexdata = rowData.get(rowcount); //需要进行占位 List
oneRow = new ArrayList
(); for(int j = 0;j < this.getYear().size();j++){ //this.getYear().get(j)年的行数为rowcount的数据 if(indexdata.get(this.getYear().get(j))==null){ oneRow.add("--"); } else{ oneRow.add(indexdata.get(this.getYear().get(j))); } } data.add(oneRow); } this.setImportCountryData(data); this.setImportProduceMap(importProduceMap); this.getExportBean(query, SBDNum); } // ************主要自营出口产品************ @SuppressWarnings("unchecked") public void getExportBean(ICommonDAOService query, String SBDNum){ String sql = WebUtils.getMessage("sql", "ReportSummaryBean.sql.add2", new Object[]{SBDNum}); logger.debug("新华信编号:" + SBDNum.toString() + " 主要自营出口产品: " + sql.toString()); List
rsProIn = query.queryForMapList(sql.toString()); Map
exportProduceMap = new LinkedHashMap
(); for (String existentYear : this.getYear()) { for (Map map : rsProIn) { if (exportProduceMap.size() < 3 ) {//只显示三行数据 String code = this.changeType(map.get("PRODUCTCODE"));//商品编码 String year = this.changeType(map.get("year")); if (!existentYear.equalsIgnoreCase(year)) { //如果不是当前所选年度,则继续找下一条记录 continue; } if(exportProduceMap.containsKey(code)){ ExportProduceBean exportProductBean = exportProduceMap.get(code); String value = FormatBigDecimal.BigdecimalFormat(this.changeTypeForBigDecimal(map.get("TRADEQUANTITY"))); exportProductBean.setExportproduct(value); } else { ExportProduceBean exportProductBean = new ExportProduceBean(); String unit = this.changeType(map.get("UNITCNAME"));//商品单位 String value = FormatBigDecimal.BigdecimalFormat(this.changeTypeForBigDecimal(map.get("TRADEQUANTITY"))); exportProductBean.setUnit(unit); exportProductBean.setExportproduct(value); exportProduceMap.put(code, exportProductBean); } } } } // ***********主要自营出口地区**************** int index = 0; //键值 代表为第i行。 Map
> rowData = new LinkedHashMap
>(); for (String year : this.getYear()) { sql = WebUtils.getMessage("sql", "ReportSummaryBean.sql.add4", new Object[]{SBDNum, year}); logger.debug("新华信编号:" + SBDNum.toString() + " 主要自营出口地区: " + sql.toString()); List
rsAreaIn = query.queryForMapList(sql.toString()); int rsAreaInSize = rsAreaIn.size(); for (int i = 0; i < rsAreaInSize; i++) { String name = this.changeType(rsAreaIn.get(i).get("countryname")); String value = this.changeType(rsAreaIn.get(i).get("importvalue")); String valueExport =this.changeType(showExportTradeSum.get(index)); if(value == null || valueExport == null)continue; float percentage = Float.valueOf(value) / Float.valueOf(valueExport); String name_value = name+"("+FormatBigDecimal.format(percentage * 100)+"%)"; if(rowData.get(i) == null){ Map
newMap = new LinkedHashMap
(); newMap.put(year, name_value); rowData.put(i, newMap); } else { Map
newMap = rowData.get(i); newMap.put(year, name_value); } } index++; } //转化为页面更容易的结构 List
> data = new ArrayList
>(); for(int rowcount: rowData.keySet()){ //得到第rowcount的数据 Map
indexdata = rowData.get(rowcount); //需要进行占位 List
oneRow = new ArrayList
(); for(int j = 0;j < this.getYear().size();j++){ //this.getYear().get(j)年的行数为rowcount的数据 if(indexdata.get(this.getYear().get(j))==null){ oneRow.add("--"); } else{ oneRow.add(indexdata.get(this.getYear().get(j))); } } data.add(oneRow); } this.setExportCountryData(data); this.setExportProduceMap(exportProduceMap); } //对数字进行格式化 public List
getShowImportTradeSum(){ if(showImportTradeSum == null || showImportTradeSum.size() <= 0){ return null; } else { List
newShowImportTradeSum = new ArrayList
(); for(BigDecimal cur : showImportTradeSum){ newShowImportTradeSum.add(FormatBigDecimal.BigdecimalFormat(cur)); } return newShowImportTradeSum; } } public void setShowImportTradeSum(List
showImportTradeSum) { this.showImportTradeSum = showImportTradeSum; } public List
getShowExportTradeSum() { if(showExportTradeSum == null || showExportTradeSum.size() <= 0){ return null; } else { List
newShowExportTradeSum = new ArrayList
(); for(BigDecimal cur : showExportTradeSum){ newShowExportTradeSum.add(FormatBigDecimal.BigdecimalFormat(cur)); } return newShowExportTradeSum; } } public void setShowExportTradeSum(List
showExportTradeSum) { this.showExportTradeSum = showExportTradeSum; } public List
getYearOfImportAndExport() { return yearOfImportAndExport; } public void setYearOfImportAndExport(List
yearOfImportAndExport) { this.yearOfImportAndExport = yearOfImportAndExport; } public Map
getImportProduceMap() { return importProduceMap; } public void setImportProduceMap(Map
importProduceMap) { this.importProduceMap = importProduceMap; } public Map
getExportProduceMap() { return exportProduceMap; } public void setExportProduceMap(Map
exportProduceMap) { this.exportProduceMap = exportProduceMap; } public List
> getExportCountryData() { return exportCountryData; } public void setExportCountryData(List
> exportCountryData) { this.exportCountryData = exportCountryData; } public List
> getImportCountryData() { return importCountryData; } public void setImportCountryData(List
> importCountryData) { this.importCountryData = importCountryData; } }

public class ImportProduceBean {		private String unit;//单位	private String produceName;// 商品名称		private List
importproduct = new ArrayList
();//年度进口产品数据 public String getUnit() { return unit; } public void setUnit(String unit) { this.unit = unit; } public List
getImportproduct() { return importproduct; } public void setImportproduct(String value) { this.importproduct.add(value); } public String getProduceName() { return produceName; } public void setProduceName(String produceName) { this.produceName = produceName; } }

 

转载地址:http://sedpi.baihongyu.com/

你可能感兴趣的文章
为什么新手也要学习微服务架构设计?
查看>>
专题 | 如何抢先一步拿 Offer?
查看>>
那些拿到腾讯、阿里等大厂offer的人,都有这个共同点
查看>>
陆奇、雷军、熊晓鸽聊疫情后的创业风口
查看>>
卖掉 3000 平房子,50 岁程序员回国写代码,三个月内融资 2000 万美元
查看>>
15 岁黑进系统,发挑衅邮件意外获 Offer,不惑之年捐出全部财产,Twitter CEO 太牛了!...
查看>>
一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选
查看>>
国士无双:卖掉美国房子,回国创办姚班,他只为培养一流的程序员!
查看>>
面试细节:为什么 HashMap 默认加载因子非得是0.75?
查看>>
7.20草稿(先别发)
查看>>
蚂蚁金服上市估值2k亿美金!会开发到底有多吃香?
查看>>
美国 AI 博士一针见血:Python 这样学最容易成为高手!
查看>>
漫画:什么是 “职场PUA” ?
查看>>
面试直通卡大放送,微软面试官带你揭秘面试潜规则!
查看>>
程序员必备基础:Git 命令全方位学习
查看>>
华科博士201万,西安交大本科生100万!华为「天才少年」校招薪资曝光
查看>>
令程序员泪流满面的40多个瞬间
查看>>
数据结构,你们都知道吗?
查看>>
ZooKeeper的十二连问,你顶得了嘛?
查看>>
常程跳槽小米,联想:已付竞业协议股权对价 500 万,须偿还
查看>>