springmvc实现数据分析,采用echarts图形分析,统计种类以及数量。

本文介绍了如何使用SpringMVC框架结合echarts进行数据分析,并通过图表展示统计的种类和数量。文章展示了实现过程中的关键代码,包括实体类、接口、Service层和Controller的实现,以及最终的效果图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springmvc实现数据分析,采用echarts图形分析,统计种类以及数量。

先来几张效果图片先:
年份数据分析比较]![(https://img-blog.youkuaiyun.com/20180912221138687?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfZ2FuZ19wZW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
种类数据分析]![(https://img-blog.youkuaiyun.com/20180912221245254?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfZ2FuZ19wZW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
各个年份数据详情]![(https://img-blog.youkuaiyun.com/20180912221309742?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfZ2FuZ19wZW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

  • springmvc配置文件说明可参考可问度娘

后端代码:
实体类:(设计是为多系统设计,故软件idsyssoftid;//软件功能号IASFuncID可忽略;)

package com.hxp.model;

import java.util.Date;

/**
 * 资产申购实体
 * @author HuangXiaoPeng
 *
 */
public class AssetBuy {
   
   
     private Integer id;//id
     private Date applyTime;//申请时间
     private String bassetName;//物品名称
     private String bassetModel;//规格型号
     private Integer bassetAmount;//数量
     private Double bassetPrice;//单价
     private Double bassetSumprice;//总额
     private Integer unitId;//计量单位id
     private String unitName;//计量单位名称
     private String bassetDetail;//申购详情配置
     private String applyContent;//申请说明
     private Integer state;//状态(1待批,2作废,3待报,4待评价,5验收)
     private String REPORTER;//操作者
     private String REPORTERName;//申请者名称
     private Date updateTime;//更新时间
     private String syssoftid;//软件id
     private String IASFuncID;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Date getApplyTime() {
        return applyTime;
    }
    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }
    public String getBassetName() {
        return bassetName;
    }
    public void setBassetName(String bassetName) {
        this.bassetName = bassetName;
    }
    public String getBassetModel() {
        return bassetModel;
    }
    public void setBassetModel(String bassetModel) {
        this.bassetModel = bassetModel;
    }
    public Integer getBassetAmount() {
        return bassetAmount;
    }
    public void setBassetAmount(Integer bassetAmount) {
        this.bassetAmount = bassetAmount;
    }
    public Double getBassetPrice() {
        return bassetPrice;
    }
    public void setBassetPrice(Double bassetPrice) {
        this.bassetPrice = bassetPrice;
    }
    public Double getBassetSumprice() {
        return bassetSumprice;
    }
    public void setBassetSumprice(Double bassetSumprice) {
        this.bassetSumprice = bassetSumprice;
    }
    public Integer getUnitId() {
        return unitId;
    }
    public void setUnitId(Integer unitId) {
        this.unitId = unitId;
    }
    public String getUnitName() {
        return unitName;
    }
    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }
    public String getBassetDetail() {
        return bassetDetail;
    }
    public void setBassetDetail(String bassetDetail) {
        this.bassetDetail = bassetDetail;
    }
    public String getApplyContent() {
        return applyContent;
    }
    public void setApplyContent(String applyContent) {
        this.applyContent = applyContent;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public String getREPORTER() {
        return REPORTER;
    }
    public void setREPORTER(String rEPORTER) {
        REPORTER = rEPORTER;
    }

    public String getREPORTERName() {
        return REPORTERName;
    }
    public void setREPORTERName(String rEPORTERName) {
        REPORTERName = rEPORTERName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getSyssoftid() {
        return syssoftid;
    }
    public void setSyssoftid(String syssoftid) {
        this.syssoftid = syssoftid;
    }
    public String getIASFuncID() {
        return IASFuncID;
    }
    public void setIASFuncID(String iASFuncID) {
        IASFuncID = iASFuncID;
    }

}

接口

package com.hxp.dao;

import java.util.List;

import com.hxp.model.AssetBuy;
import com.hxp.model.PageBean;
/**
 * 资产申购事务接口
 * @author HuangXiaoPeng
 *
 */
public interface AssetBuyDao {
   
   

    public List<AssetBuy> findDataBySoftId(String softId);//通过软件id查询申购表单的的统计数据,统计数据为种类和该种类的申购数量。状态在(4)

    public List<AssetBuy> findAllSuccessData(PageBean pageBean,String softId,AssetBuy s_assetBuy);//根据软件id查询申购列表,状态在状态在(2,4)的数据

    public List<String> findYearBySoftId(String softId);//通过软件id查询,状态为4的申购单中的年份列表

    public List<String> findBassetNameBySoftId(String softId);//通过软件id查询,状态为4的申购单中的物品名称组合

    public List<AssetBuy> findDataByYearAndSoftId(String year,String softid);//通过软件id查询,状态为4的申购单中的物品,并且返回名称和数量数据

}

接口实现

package com.hxp.dao.Impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.stereotype.Repository;

import com.hxp.dao.AssetBuyDao;
import com.hxp.model.AssetBuy;
import com.hxp.model.PageBean;
import com.hxp.util.DateUtil;
import com.hxp.util.StringUtil;

/**
 * 资产申购事务实现接口
 * 
 * @author HuangXiaoPeng
 *
 */
@Repository("assetBuyDao")
public class AssetBuyDaoImpl implements AssetBuyDao {
   
   

    @Resource
    private JdbcTemplate jdbcTemplate;


    @Override
    public List<AssetBuy> findDataBySoftId(String softId) {
        StringBuffer sb = new StringBuffer(
                "select bassetName,sum(bassetAmount) as bassetAmount,unitName from t_assetbuy t1,t_assetunit t2 where t1.unitId=t2.id and t1.State=4 and t1.SYSSOFTID=? group by bassetName order by bassetAmount");
        final List<AssetBuy> assetBuyList = new ArrayList<AssetBuy>();
        jdbcTemplate.query(sb.toString(), new Object[] { softId },
                new RowCallbackHandler() {
                    @Override
                    public void processRow(ResultSet rs) throws SQLException {
                        AssetBuy assetBuy = new AssetBuy();
                        assetBuy.setBassetName(rs.getString("bassetName"));// 名称
                        assetBuy.setBassetAmount(rs.getInt("bassetAmount"));// 数量
                        assetBuy.setUnitName(rs.getString("unitName"));// 计量单位
                        assetBuyList.add(assetBuy);
                    }
                });
        return assetBuyList;
    }

    @Override
    public List<AssetBuy> findAllSuccessData(PageBean pageBean, String softId,
            AssetBuy s_assetBuy) {
        StringBuffer sb = new StringBuffer(
                "select * from t_assetbuy t1,t_assetunit t2 where t1.unitId=t2.id");
        if (StringUtil.isEmpty(softId)) {
            sb.append(" and t1.State=6");// 状态设置为无效
        } else {
            sb.append(" and t1.State in (2,4)");// 状态设置为无效
            sb.append(" and t1.SYSSOFTID=" + softId);
            if (s_assetBuy != null) {
                if (StringUtil.isNotEmpty(s_assetBuy.getBassetName())) {
                    sb.append(" and t1.bassetName like '%"
                            + s_assetBuy.getBassetName() + "%'");
                }
                if (StringUtil.isNotEmpty(s_assetBuy.getREPORTER())) {
                    sb.append(" and t1.REPORTER like '%"
                            + s_assetBuy.getREPORTER() + "%'");
                }
                if (StringUtil.isNotEmpty(s_assetBuy.getBassetDetail())) {
                    sb.append(" and t1.bassetDetail like '%"
                            + s_assetBuy.getBassetDetail() + "%'");
                }
            }
        }
        sb.append(" order by bassetAmount");
        if (pageBean != null) {
            sb.append(" limit " + pageBean.getStart() + 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值