|
@ -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("导入失败");
|
|
|
}
|
|
|
}
|