|  | @ -0,0 +1,153 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.base.endpoint.open.nologin;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.doctor.BaseDoctorService;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.doctor.excelImport.BaseDoctorExcelDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.service.doctor.excelImport.BaseDoctorExcelDOReader;
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.business.ManageException;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.base.BaseRequestMapping;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.poi.hssf.usermodel.HSSFRow;
 | 
	
		
			
				|  |  | import org.apache.poi.hssf.usermodel.HSSFSheet;
 | 
	
		
			
				|  |  | import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 | 
	
		
			
				|  |  | import org.apache.poi.ss.usermodel.Workbook;
 | 
	
		
			
				|  |  | import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | import org.springframework.web.multipart.MultipartFile;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | import java.io.*;
 | 
	
		
			
				|  |  | import java.net.URLEncoder;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | @RequestMapping("/excelControl")
 | 
	
		
			
				|  |  | @Api(value = "不走网关接口", description = "不走网关接口", tags = {"base基础服务 - 不走网关接口"})
 | 
	
		
			
				|  |  | public class BaseServiceNologin extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorService baseDoctorService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorExcelDOReader doctorExcelDOReader;
 | 
	
		
			
				|  |  |     @GetMapping("/exportExcel")
 | 
	
		
			
				|  |  |     public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("/home/医生模板信息.xls"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // 根据页面index 获取sheet页
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             HSSFSheet sheet = wb.getSheet("Sheet1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for (int i = 0; i < 2; i++) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // 创建HSSFRow对象
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 HSSFRow row = sheet.createRow(i + 1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // 创建HSSFCell对象 设置单元格的值
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 row.createCell(0).setCellValue("张三" + i);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 row.createCell(1).setCellValue("1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 row.createCell(2).setCellValue("1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 row.createCell(3).setCellValue("210503199507250333");
 | 
	
		
			
				|  |  |                 row.createCell(4).setCellValue("18841409773");
 | 
	
		
			
				|  |  |                 row.createCell(5).setCellValue("350211A1002/0000001/1303");
 | 
	
		
			
				|  |  |                 row.createCell(6).setCellValue("1302");
 | 
	
		
			
				|  |  |                 row.createCell(7).setCellValue("admin");
 | 
	
		
			
				|  |  |                 row.createCell(8).setCellValue("1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // 输出Excel文件
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             OutputStream output = new BufferedOutputStream(response.getOutputStream());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             response.reset();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // 设置文件头
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             /*response.setHeader("Content-Disposition",
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     "attchement;filename=" + new String("人员信息.xls".getBytes("gb2312"), "ISO8859-1"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             response.setContentType("application/msexcel");*/
 | 
	
		
			
				|  |  |             response.setCharacterEncoding("UTF-8");
 | 
	
		
			
				|  |  |             response.setContentType("application/x-msdownload");
 | 
	
		
			
				|  |  |             /*response.setHeader("Content-Disposition", "attachment; filename="
 | 
	
		
			
				|  |  |                     + new String( "医生模板信息".getBytes("gb2312"), "ISO8859-1" )+".xls");*/
 | 
	
		
			
				|  |  |             response.setHeader("Content-Disposition", "attachment; filename="
 | 
	
		
			
				|  |  |                     + URLEncoder.encode("医生模板信息.xls","UTF-8"));
 | 
	
		
			
				|  |  |             wb.write(output);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             wb.close();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 判断文件格式
 | 
	
		
			
				|  |  |      * @param in
 | 
	
		
			
				|  |  |      * @param fileName
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private static Workbook getWorkbook(InputStream in, String fileName) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Workbook book = null;
 | 
	
		
			
				|  |  |         String filetype = fileName.substring(fileName.lastIndexOf("."));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(".xls".equals(filetype)) {
 | 
	
		
			
				|  |  |             book = new HSSFWorkbook(in);
 | 
	
		
			
				|  |  |         } else if (".xlsx".equals(filetype)) {
 | 
	
		
			
				|  |  |             book = new XSSFWorkbook(in);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             throw new Exception("请上传excel文件!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return book;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     @PostMapping(value = BaseRequestMapping.BaseDoctor.DOCTOR_INFO_IMPORT)
 | 
	
		
			
				|  |  |     @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "基础医生信息列表导入")
 | 
	
		
			
				|  |  |     public Envelop importData(
 | 
	
		
			
				|  |  |             @ApiParam(name = "file", value = "文件", required = true)
 | 
	
		
			
				|  |  |             @RequestPart(value = "file") MultipartFile file,
 | 
	
		
			
				|  |  |             HttpServletRequest request) throws IOException, ManageException {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             request.setCharacterEncoding("UTF-8");
 | 
	
		
			
				|  |  | //            AExcelReader excelReader = new BaseDoctorExcelDOReader();
 | 
	
		
			
				|  |  |             InputStream inputStream = file.getInputStream();
 | 
	
		
			
				|  |  |             Workbook workbook = getWorkbook(inputStream,file.getOriginalFilename());
 | 
	
		
			
				|  |  |             doctorExcelDOReader.read(workbook);
 | 
	
		
			
				|  |  |             //验证未通过(暂无验证)
 | 
	
		
			
				|  |  |             List<BaseDoctorExcelDO> errorLs = doctorExcelDOReader.getErrorLs();
 | 
	
		
			
				|  |  |             List<BaseDoctorExcelDO> correctLs = doctorExcelDOReader.getCorrectLs();
 | 
	
		
			
				|  |  |             if(correctLs.size()>0){
 | 
	
		
			
				|  |  |                 Map<String, Object> result = baseDoctorService.batchInsertDoctor(correctLs);
 | 
	
		
			
				|  |  |                 result.put("errorLs", errorLs);
 | 
	
		
			
				|  |  |                 int errors = errorLs.size();
 | 
	
		
			
				|  |  |                 int corrects = correctLs.size();
 | 
	
		
			
				|  |  |                 String msg = "当前导入成功"+corrects+"条数据"+";失败"+errors+"条数据";
 | 
	
		
			
				|  |  |                 return success(msg, result);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return failed("导入异常,请检查导入文件格式" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return failed("导入失败");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |