|  | @ -12,11 +12,22 @@ import com.yihu.jw.restmodel.wlyy.HouseUserContant;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import jxl.write.Colour;
 | 
	
		
			
				|  |  | import jxl.write.WritableCellFormat;
 | 
	
		
			
				|  |  | import org.apache.log4j.spi.ErrorCode;
 | 
	
		
			
				|  |  | import org.apache.poi.ss.usermodel.*;
 | 
	
		
			
				|  |  | import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 | 
	
		
			
				|  |  | import org.json.JSONObject;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.data.domain.Page;
 | 
	
		
			
				|  |  | import org.springframework.http.MediaType;
 | 
	
		
			
				|  |  | import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | import java.io.OutputStream;
 | 
	
		
			
				|  |  | import java.util.HashMap;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
	
		
			
				|  | @ -25,7 +36,7 @@ import java.util.Map;
 | 
	
		
			
				|  |  |  * @created 2018/9/19 17:29
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Api(value = "UserController", description = "用户信息", tags = {"用户"})
 | 
	
		
			
				|  |  | @RequestMapping("/user")
 | 
	
		
			
				|  |  | @RequestMapping(value = "/user", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | public class UserController  extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -130,6 +141,136 @@ public class UserController  extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /******************************   导入导出   ***********************************/
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @RequestMapping("/exportToExcel")
 | 
	
		
			
				|  |  |     public void exportToExcel(
 | 
	
		
			
				|  |  |             HttpServletResponse response,
 | 
	
		
			
				|  |  |             @ApiParam(name = "city", value = "所在市区", required = false)@RequestParam(required = false, name = "city") String city,
 | 
	
		
			
				|  |  |             @ApiParam(name = "activated", value = "用户状态", required = false)@RequestParam(required = false, name = "activated") String activated ,
 | 
	
		
			
				|  |  |             @ApiParam(name = "name", value = "姓名/手机号", required = false)@RequestParam(required = false, name = "name") String name ,
 | 
	
		
			
				|  |  |             @ApiParam(name = "sort", value = "使用次数排序", required = false)@RequestParam(required = false, name = "sort") String sort) throws ManageException {
 | 
	
		
			
				|  |  |         Envelop envelop = new Envelop();
 | 
	
		
			
				|  |  |         //获取用户数据
 | 
	
		
			
				|  |  |         Map<String, String> map = new HashMap<>();
 | 
	
		
			
				|  |  |         map.put("cityCode",city);
 | 
	
		
			
				|  |  |         map.put("activated",activated);
 | 
	
		
			
				|  |  |         map.put("name",name);
 | 
	
		
			
				|  |  |         map.put("telephone",name);
 | 
	
		
			
				|  |  |         List<User> userList = userService.userList( map, sort);
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String fileName = "标准数据集"+"_";
 | 
	
		
			
				|  |  |             //设置下载
 | 
	
		
			
				|  |  |             response.setContentType("octets/stream");
 | 
	
		
			
				|  |  |             response.setHeader("Content-Disposition", "attachment; filename="
 | 
	
		
			
				|  |  |                     + new String( fileName.getBytes("gb2312"), "ISO8859-1" )+".xlsx");
 | 
	
		
			
				|  |  |             OutputStream os = response.getOutputStream();
 | 
	
		
			
				|  |  |             //获取导出数据集
 | 
	
		
			
				|  |  |             JSONObject order = new JSONObject();
 | 
	
		
			
				|  |  |             order.put("id","asc");
 | 
	
		
			
				|  |  |             //获取导出数据元
 | 
	
		
			
				|  |  |             String ids="";
 | 
	
		
			
				|  |  |             User userInfo;
 | 
	
		
			
				|  |  |             for(int i=0;i<userList.size();i++){
 | 
	
		
			
				|  |  |                 userInfo =   userList.get(i);
 | 
	
		
			
				|  |  |                 if(i!=0){
 | 
	
		
			
				|  |  |                     ids+=",";
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 ids +=userInfo.getId();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //写excel
 | 
	
		
			
				|  |  |             Workbook workbook = new XSSFWorkbook();
 | 
	
		
			
				|  |  |             int k=0;
 | 
	
		
			
				|  |  |             User metaData = null;
 | 
	
		
			
				|  |  |             int row=0;
 | 
	
		
			
				|  |  |                 //创建Excel工作表 指定名称和位置
 | 
	
		
			
				|  |  |                 String streetName = "健康小屋-用户列表";
 | 
	
		
			
				|  |  |                 Sheet sheet = workbook.createSheet(streetName);
 | 
	
		
			
				|  |  |                 addStaticCell(sheet);
 | 
	
		
			
				|  |  |                 addCell(sheet,1,0,"测试行");//名称
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //添加数据元信息
 | 
	
		
			
				|  |  |                 WritableCellFormat wc = new WritableCellFormat();
 | 
	
		
			
				|  |  |                 wc.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN, Colour.SKY_BLUE);//边框
 | 
	
		
			
				|  |  |                 for(int j=0;k<userList.size(); j++,k++){
 | 
	
		
			
				|  |  |                     metaData = userList.get(k);
 | 
	
		
			
				|  |  |                     row=j+2;
 | 
	
		
			
				|  |  |                     addCell(sheet,0,row,j+1+"");//序号
 | 
	
		
			
				|  |  |                     addCell(sheet,1,row, metaData.getId());//内部id
 | 
	
		
			
				|  |  |                     addCell(sheet,2,row, metaData.getLoginCode());//登录名
 | 
	
		
			
				|  |  |                     addCell(sheet,3,row, metaData.getName());//名称
 | 
	
		
			
				|  |  |                     addCell(sheet,4,row, metaData.getGender());//性别
 | 
	
		
			
				|  |  |                     addCell(sheet,5,row, metaData.getTelephone());//电话
 | 
	
		
			
				|  |  |                     addCell(sheet,6,row, metaData.getCityName() + metaData.getAreaName() + metaData.getStreet());//地区
 | 
	
		
			
				|  |  |                     addCell(sheet,7,row, metaData.getFacilityUsedCount().toString());//使用设施次数
 | 
	
		
			
				|  |  |                     addCell(sheet,8,row, metaData.getIdCardNo());//身份证
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //写入工作表
 | 
	
		
			
				|  |  |             workbook.write(os);
 | 
	
		
			
				|  |  |             workbook.close();
 | 
	
		
			
				|  |  |             os.flush();
 | 
	
		
			
				|  |  |             os.close();
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             Envelop.getError("导出用户列表失败!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //添加单元格内容
 | 
	
		
			
				|  |  |     private void addCell(Sheet sheet,int column,int row,String data){
 | 
	
		
			
				|  |  |         Row sheetRow = sheet.getRow(row);
 | 
	
		
			
				|  |  |         if(sheetRow==null){
 | 
	
		
			
				|  |  |             sheetRow = sheet.createRow(row);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Cell cell= sheetRow.createCell(column);
 | 
	
		
			
				|  |  |         cell.setCellValue(data);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     //添加单元格内容带样式
 | 
	
		
			
				|  |  |     private void addCell(Sheet sheet,int column,int row,String data,CellStyle cellStyle){
 | 
	
		
			
				|  |  |         Row sheetRow = sheet.getRow(row);
 | 
	
		
			
				|  |  |         if(sheetRow==null){
 | 
	
		
			
				|  |  |             sheetRow = sheet.createRow(row);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Cell cell= sheetRow.createCell(column);
 | 
	
		
			
				|  |  |         cell.setCellValue(data);
 | 
	
		
			
				|  |  |         cell.setCellStyle(cellStyle);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //excel中添加固定内容
 | 
	
		
			
				|  |  |     private void addStaticCell(Sheet sheet){
 | 
	
		
			
				|  |  |         addCell(sheet,0,0,"名称");
 | 
	
		
			
				|  |  |         addCell(sheet,0,1,"标识");
 | 
	
		
			
				|  |  |         addCell(sheet,0,2,"参考");
 | 
	
		
			
				|  |  |         addCell(sheet,0,3,"备注");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //设置样式
 | 
	
		
			
				|  |  |         Workbook workbook = sheet.getWorkbook();
 | 
	
		
			
				|  |  |         CellStyle style = workbook.createCellStyle();
 | 
	
		
			
				|  |  |         style.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());//設置背景色
 | 
	
		
			
				|  |  | //        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
 | 
	
		
			
				|  |  | //        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
 | 
	
		
			
				|  |  |         Font font = workbook.createFont();
 | 
	
		
			
				|  |  |         font.setFontName("黑体");
 | 
	
		
			
				|  |  |         font.setFontHeightInPoints((short) 12);
 | 
	
		
			
				|  |  |         style.setFont(font);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         addCell(sheet,0,4,"序号",style);
 | 
	
		
			
				|  |  |         addCell(sheet,1,4,"内部标识",style);
 | 
	
		
			
				|  |  |         addCell(sheet,2,4,"数据元编码",style);
 | 
	
		
			
				|  |  |         addCell(sheet,3,4,"数据元名称",style);
 | 
	
		
			
				|  |  |         addCell(sheet,4,4,"数据元定义",style);
 | 
	
		
			
				|  |  |         addCell(sheet,5,4,"数据类型",style);
 | 
	
		
			
				|  |  |         addCell(sheet,6,4,"表示形式",style);
 | 
	
		
			
				|  |  |         addCell(sheet,7,4,"术语范围值",style);
 | 
	
		
			
				|  |  |         addCell(sheet,8,4,"列名",style);
 | 
	
		
			
				|  |  |         addCell(sheet,9,4,"列类型",style);
 | 
	
		
			
				|  |  |         addCell(sheet,10,4,"列长度",style);
 | 
	
		
			
				|  |  |         addCell(sheet,11,4,"主键",style);
 | 
	
		
			
				|  |  |         addCell(sheet,12,4,"可为空",style);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 |