SSM项目-医药采购-08 药品目录导出

第一步:输入查询条件,查询出药品目录 信息
第二步:点击导出按钮
将符合查询条件的所有记录(不是一页的数据)全部导出。
第三步:下载导出文件
SSM项目-医药采购-08 药品目录导出_第1张图片

页面显示:
这里写图片描述
实现:
首先是生成pojo mapper
然后自定义mapper

// 扩展类 用做查询结果  使用继承
public class YpxxCustom extends Ypxx{
    //交易状态名称
    private String jyztmc;  }

// 用做查询条件  使用组合
public class YpxxQueryVo {
    private YpxxCustom ypxxCustom;  }

Dao:

public interface YpxxMapperCustom {
    // 药品目录查询
    public List findYpxxList(YpxxQueryVo ypxxQueryVo) throws Exception;
}

"query_ypxx_where">
        <if test="ypxxCustom != null">
            <if test="ypxxCustom.bm != null and ypxxCustom.bm != ''">
                and ypxx.bm = #{ypxxCustom.bm} 
            if>
            <if test="ypxxCustom.mc != null and ypxxCustom.mc != ''">
                and ypxx.mc = #{ypxxCustom.mc} 
            if>
            <if test="ypxxCustom.jyzt != null and ypxxCustom.jyzt != ''">
                and ypxx.jyzt = #{ypxxCustom.jyzt} 
            if>
        if>
    
    <select id="findYpxxList" parameterType="yycg.business.pojo.vo.YpxxQueryVo"
     resultType="yycg.business.pojo.vo.YpxxCustom">
        select BM,
        SPMC,
        JX,
        GG,
        ZHXS,
        SCQYMC,
        SPMC,
        ZBJG,
        JYZT,
        (select info
        from dictinfo
        where ypxx.jyzt = dictcode
        and typecode = '003') jyztmc
        from ypxx
        <where>
            "query_ypxx_where">
        where>
    select> 

service

接口功能:药品目录 查询
接口参数:查询条件

public class YpxxServiceImpl implements YpxxService {

    @Autowired
    private YpxxMapperCustom ypxxMapperCustom;

    @Override
    public List<YpxxCustom> findYpxxList(YpxxQueryVo ypxxQueryVo)
            throws Exception {
        return ypxxMapperCustom.findYpxxList(ypxxQueryVo);
    }
}

记得配置bean
<bean id="ypxxService" class="yycg.business.service.impl.YpxxServiceImpl">bean>

调用时报错,mapper没有生效
**Invalid bound statement (not found): yycg.business.dao.mapper.YpxxMapperCustom**

注意因为在不同包下面,注意mapper 扫描问题

<property name="basePackage" value="yycg.**.dao.mapper" />

注意java  和 mapper 路径是否匹配  方法名 参数是否正确

action

@Controller
@RequestMapping("ypml")
public class YpxxAction {

    @Autowired
    private YpxxService ypxxService;
    @Autowired
    private SystemConfigService systemConfigService;


    // 导出页面展示
    @RequestMapping("exportYpml")
    public String exportYpml(Model model) throws Exception {

        //药品类别
        List yplblist = systemConfigService.findDictinfoByType("001");
        // 交易状态
        List jyztlist = systemConfigService.findDictinfoByType("003");

        model.addAttribute("yplblist", yplblist);
        model.addAttribute("jyztlist", jyztlist);

        return "/business/ypml/exportYpxx";
    }

    // 导出页面提交
    @RequestMapping("exportYpmlSubmit")
    public @ResponseBody SubmitResultInfo exportYpmlSubmit(YpxxQueryVo ypxxQueryVo)
            throws Exception {

        //导出文件存放的路径,并且是虚拟目录指向的路径
        String filePath = "d:/upload/linshi/";
        //导出文件的前缀
        String filePrefix="ypxx";
        //-1表示关闭自动刷新,手动控制写磁盘的时机,其它数据表示多少数据在内存保存,超过的则写入磁盘
        int flushRows=100;

        //指导导出数据的title
        List fieldNames=new ArrayList();
        fieldNames.add("流水号");
        fieldNames.add("通用名");
        fieldNames.add("剂型");
        fieldNames.add("规格");
        fieldNames.add("转换系数");
        fieldNames.add("生产企业");
        fieldNames.add("商品名称");
        fieldNames.add("中标价格");
        fieldNames.add("交易状态");

        //告诉导出类数据list中对象的属性,让ExcelExportSXXSSF通过反射获取对象的值
        List fieldCodes=new ArrayList();
        fieldCodes.add("bm");// 药品流水号
        fieldCodes.add("mc");// 通用名
        fieldCodes.add("jx");
        fieldCodes.add("gg");
        fieldCodes.add("zhxs");
        fieldCodes.add("scqymc");
        fieldCodes.add("spmc");
        fieldCodes.add("zbjg");
        fieldCodes.add("jyztmc");

        //开始导出,执行一些workbook及sheet等对象的初始创建
        ExcelExportSXXSSF excelExportSXXSSF = ExcelExportSXXSSF.start(filePath, "/upload/", filePrefix, fieldNames, fieldCodes, flushRows);

        // 导出的数据通过service取出
        List list = ypxxService.findYpxxList(ypxxQueryVo);

        excelExportSXXSSF.writeDatasByObject(list);

        //输出文件,返回下载文件的http地址
        String webpath = excelExportSXXSSF.exportFile();

        return ResultUtil.createSubmitResult(
                ResultUtil.createSuccess(Config.MESSAGE, 313, new Object[]{
                        list.size(),
                        webpath
                }));
    }
}

jsp:
"left">药品类别:
                        
                            <select id="ypxxCustom.lb" name="ypxxCustom.lb" style="width:150px">
                                
                                "${yplblist}" var="value">
                                    
                                
                            select>
                        

按钮 :
"btn" href="#" οnclick="ypxxexport()">

"ypxxlistFrom" name="ypxxlistFrom" action="${baseurl}ypml/exportYpmlSubmit.action" method="post">

虚拟路径:
tomcat conf 下server.xml中配置

<Context docBase="D:\upload\linshi" path="/upload" reloadable="false"/>

请求的路径就是虚拟目录http://ip:port/upload/

你可能感兴趣的:(-,-,-,-,-,-【SSM项目yycg】)