027医疗项目

阅读: 评论:0

027医疗项目

027医疗项目

前一篇文章我们写了Service层,这篇文章我们写一下Action层。

实现的功能:


1:我们先下载模板:然后按照模板里面的规则,插入数据。比如存在d盘。

2:然后浏览找到那个文件,上传上去。 然后把excel中数据都插入到数据库。 ---------------------------------------------------------------------------------------------------

我们之前在写导入功能的时候,已经写过了YpxxAction。我们继续在这个Ation中写。

思路:

我们要在Action中完成这么几个方法:

1:导入页面的显示方法:我们总是要有一个方法是能显示出导入功能页面的。

 

2:导入提交的方法:

将文件上传到服务器(实现文件的上传)

调用HSSF事件驱动封装类(Raed那个工具类),导入药品。

 

 

 

  接下来我们具体讲一下怎么代码怎么实现:

首先我们要实现文件上传的话就要去用Springmvc的上传功能,在l中去配置。

如下:

 

我们之前写好了Service 我们在Action中要用这个Service的话,要先把这个类注入到Spring 容器中。所以我们修改l代码:

<beans xmlns=""xmlns:xsi="" xmlns:mvc=""xmlns:context=""xmlns:aop="" xmlns:tx=""xsi:schemaLocation=" .1.xsd  .1.xsd  .1.xsd  .1.xsd  .1.xsd "><!-- 用户管理 --><bean id="userService" class="yycg.bae.service.impl.userServiceimpl"/>
<bean id="systemConfigService" class="yycg.bae.service.impl.SystemConfigServiceImpl"/>
<bean id="YpxxService" class="yycg.business.service.impl.YpxxServiceImpl"/>

<!-- 这个是在药品导入数据库的action中注入的 --> <bean id="HxlsOptRowsInterface" class="yycg.business.service.impl.YpxxImportServiceImpl"/> </beans>

 

 

 然后我们看Action的代码:

package yycg.business.action;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;import yycg.base.pojo.po.Dictinfo;
import yycg.t.Config;
import yycg.sult.ResultUtil;
import yycg.sult.SubmitResultInfo;
import yycg.base.service.SystemConfigService;
import yycg.business.pojo.vo.YpxxCustom;
import yycg.business.pojo.vo.YpxxQueryVo;
import yycg.business.service.YpxxService;
import yycg.util.ExcelExportSXXSSF;
import yycg.util.HxlsOptRowsInterface;
import yycg.util.HxlsRead;
import yycg.util.UUIDBuild;
import yycg.util.Ypxx;@Controller
@RequestMapping("/ypml")
public class YpxxAction {@AutowiredYpxxService ypxxService;@Autowiredprivate SystemConfigService systemConfigService;
@Autowiredprivate HxlsOptRowsInterface ypxximportserviceimpl;//导出页面的展示 @RequestMapping("/exportYpxx")public String exPortYpxx(Model model) throws Exception{/*** 这些数据查出来后填充到查询页面上。*/List<Dictinfo> yplblist=systemConfigService.findDictinfoByType("001");model.addAttribute("yplblist", yplblist);List<Dictinfo> jyztlist=systemConfigService.findDictinfoByType("003");model.addAttribute("jyztlist", jyztlist);return "/business/ypml/exportYpxx";}//导出提交@RequestMapping("/exportYpxxSubmit")public @ResponseBody SubmitResultInfo exPortYpxxsubmit(YpxxQueryVo ypxxQueryVo)throws Exception{//查询到数据List<YpxxCustom> list=ypxxService.findYpxxList(ypxxQueryVo);/** 导出文件存放物理路径* @param fileWebPath* 导出文件web下载路径* @param filePrefix* 导出文件名的前缀 * @param flushRows* 存放在内存的数据量* @param fieldNames* 导出文件列标题* @param fieldCodes* 导出数据对象的字段名称 * @param flushRows*///导出文件存放的路径,并且是虚拟目录指向的路径String filePath = "d:/upload/linshi/";//导出文件的前缀String filePrefix="ypxx";//-1表示关闭自动刷新,手动控制写磁盘的时机,其它数据表示多少数据在内存保存,超过的则写入磁盘int flushRows=100;//指导导出数据的titleList<String> fieldNames=new ArrayList<String>();fieldNames.add("流水号");fieldNames.add("通用名");fieldNames.add("剂型");fieldNames.add("规格");fieldNames.add("转换系数 ");fieldNames.add("生产企业");fieldNames.add("商品名称");fieldNames.add("中标价");fieldNames.add("交易状态");//告诉导出类数据list中对象的属性,让ExcelExportSXXSSF通过反射获取对象的值List<String> fieldCodes=new ArrayList<String>();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");//注意:fieldCodes和fieldNames个数必须相同且属性和title顺序一一对应,这样title和内容才一一对应//开始导出,执行一些workbook及sheet等对象的初始创建,以及表格建在哪里//"/upload/"本来是服务器的磁盘目录,但是我们是一台机器做开发,所以见建立一个虚拟目录。ExcelExportSXXSSF excelExportSXXSSF = ExcelExportSXXSSF.start(filePath, "/upload/", filePrefix, fieldNames, fieldCodes, flushRows);//准备导出的数据,将数据存入list,且list中对象的字段名称必须是刚才传入ExcelExportSXXSSF的名称//执行导出,把数据导入到excel表 excelExportSXXSSF.writeDatasByObject(list);/** new Object[]{list.size(),portFile()}参数:一共导出的数据数量,.exportFile()导出文件。*/ateSuccess(Config.MESSAGE, 313, new Object[]{list.size(),portFile()}));}//载入导入页面@RequestMapping("/importypxx")public String importypxx()throws Exception{return "/business/ypml/importypxx";}//提交按钮(导入数据库)@RequestMapping("/importypxxsubmit")public @ResponseBody SubmitResultInfo importypxxsubmit(@RequestParam MultipartFile ypxximportfile) throws Exception{String fileName_OriginalString&#OriginalFilename();String fileName_new&#UUID()+fileName_OriginalString.substring(fileName_OriginalString.indexOf("."));File targetFile=new File("d:/upload/"+fileName_new);//如果这个路径不存在就创建这个路径if(!ists()){targetFile.mkdirs();}//将文件导入到磁盘 ansferTo(targetFile);//得到物理的路径 String filepath&#AbsolutePath();//将导入的service对象设置到HxlsRead中HxlsRead hxlsRead=new HxlsRead(filepath, 1, ypxximportserviceimpl);hxlsRead.process();ateSuccess(Config.MESSAGE, 906, null));}}

 

本文发布于:2024-02-04 17:39:02,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170712800657889.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:医疗   项目
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23