package cn.com.goldenwater.dcproj.controller.general; import cn.com.goldenwater.core.web.BaseController; import cn.com.goldenwater.core.web.BaseResponse; import cn.com.goldenwater.dcproj.model.BisInspAll; import cn.com.goldenwater.dcproj.model.BisInspKeyRegister; import cn.com.goldenwater.dcproj.param.TypeExportParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.GeneralDownloadService; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; 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; /** * @ClassName GeneralDownloadController * @Description 通用下载 * @Author liyz * @Date 2019/3/6 10:26 * @Version 1.0 **/ @Api(value = "通用下载", tags = "通用下载") @RestController @RequestMapping("/dc/gd/base") public class GeneralDownloadController extends BaseController { private Logger logger = LoggerFactory.getLogger(getClass()); @Value("${export.basePath}") public String exportBasePath; @Autowired private GeneralDownloadService generalDownloadService; @Autowired private OlBisInspOrgService inspOrgService; @ApiOperation(value = "下载", notes = "") @RequestMapping(value = "/download/{uuid}", method = {RequestMethod.GET, RequestMethod.POST}) public void downLoad(HttpServletResponse response, @PathVariable String uuid) { try { response.setCharacterEncoding("UTF-8"); File file = new File(exportBasePath + File.separator + uuid + ".zip"); if (file.exists()) { String name = "数据.zip"; response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(name, "UTF-8")); InputStream inputStream = new FileInputStream(file); OutputStream os = response.getOutputStream(); int len = 0; byte[] buffer = new byte[4096]; while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) { os.write(buffer, 0, len); } inputStream.close(); os.flush(); os.close(); } } catch (Exception e) { e.printStackTrace(); } } @ApiOperation(value = "根据engId和tableId生成人饮Excel", notes = "") @RequestMapping(value = "/create", method = {RequestMethod.GET, RequestMethod.POST}) public void createExcel(HttpServletResponse response, HttpServletRequest request, @RequestBody TypeExportParam typeExportParam) { try { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter printWriter = response.getWriter(); typeExportParam.setOrgId(getCurrentOrgId()); generalDownloadService.createExcel(typeExportParam, printWriter); } catch (Exception e) { e.printStackTrace(); } } @ApiOperation(value = "根据用户ID生成水毁Excel", notes = "") @RequestMapping(value = "/create/sh", method = {RequestMethod.GET, RequestMethod.POST}) public void createShuiHuiExcel(HttpServletResponse response, HttpServletRequest request, @RequestBody TypeExportParam typeExportParam) { try { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter printWriter = response.getWriter(); typeExportParam.setOrgId(getCurrentOrgId()); generalDownloadService.createShuiHuiExcel(typeExportParam, printWriter); } catch (Exception e) { e.printStackTrace(); } } @ApiOperation(value = "根据用户id生成水库Excel", notes = "参数字段说明:{\n\r" + " \"type\":\"rsvr\",\n\r" + " \"presId\":\"用户id\",\n\r" + " \"pType\":\"1\",\n\r" + " \"tableIds\":\"选中的表的id的列表\",\n\r" + " \"ids\":\"选中的树的节点的id的列表\",\n\r" + " }") @RequestMapping(value = "/create/sk", method = {RequestMethod.GET, RequestMethod.POST}) public void createShuiKuExcel(HttpServletResponse response, HttpServletRequest request, @RequestBody TypeExportParam typeExportParam) { try { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter printWriter = response.getWriter(); typeExportParam.setOrgId(getCurrentOrgId()); generalDownloadService.createShuiKuExcel(typeExportParam, printWriter); } catch (Exception e) { e.printStackTrace(); } } @ApiOperation(value = "根据presId获取adCode", notes = "") @RequestMapping(value = "/getadCodeByPresId", method = {RequestMethod.GET, RequestMethod.POST}) public BaseResponse getadCodeByPresId(@ApiParam(name = "presId", value = "presId") @RequestParam() String presId, @ApiParam(name = "ptype", value = "ptype") @RequestParam() String ptype) { String adCodes = ""; try { adCodes = generalDownloadService.selectAdCodeByUserId(presId, ptype, getCurrentOrgId()); } catch (Exception e) { e.printStackTrace(); } return buildSuccessResponse(adCodes); } @ApiOperation(value = "根据presId获取pid", notes = "") @RequestMapping(value = "/getPidByPresId", method = {RequestMethod.GET, RequestMethod.POST}) public BaseResponse getPidByPresId(@ApiParam(name = "presId", value = "presId") @RequestParam() String presId, @ApiParam(name = "type", value = "type") @RequestParam() String type) { String pid = ""; try { String adCode = inspOrgService.getProvince(getCurrentOrgId()); pid = generalDownloadService.getPidByPersid(presId, type, adCode); } catch (Exception e) { e.printStackTrace(); } return buildSuccessResponse(pid); } @ApiOperation(value = "根据用户名获取人饮所有节点", notes = "") @RequestMapping(value = "/getRyNode", method = RequestMethod.GET) public BaseResponse> getRyNode( @RequestParam(value = "userId", required = false) String userId, @RequestParam(value = "orgType", required = false) String orgType) { List list = generalDownloadService.getRyNode(userId, orgType, getCurrentOrgId()); return buildSuccessResponse(list); } @ApiOperation(value = "根据用户名获取人饮所有节点(分省)", notes = "") @RequestMapping(value = "/getRyNodeProvincial", method = RequestMethod.GET) public BaseResponse> getRyNodeProvincial( @RequestParam(value = "userId", required = false) String userId, @RequestParam(value = "orgType", required = false) String orgType, @RequestParam(value = "level", required = false) String level) { String province = inspOrgService.getProvince(getCurrentOrgId()); if (StringUtils.isNotBlank(province)) { province = province.substring(0, 2); } List list = generalDownloadService.getRyNodeProvincial(userId, orgType, level, province); return buildSuccessResponse(list); } @ApiOperation(value = "获取量化平凡左侧树,单独接口(分省)", notes = "") @RequestMapping(value = "/getRsraqgNodeProvincial", method = RequestMethod.GET) public BaseResponse> getRsraqgNodeProvincial( @RequestParam(value = "userId", required = false) String userId, @RequestParam(value = "level", required = false) String level) { String province = inspOrgService.getProvince(getCurrentOrgId()); if (StringUtils.isNotBlank(province)) { province = province.substring(0, 2); } List list = generalDownloadService.getRsraqgNodeProvincial(userId, level, province); return buildSuccessResponse(list); } @ApiOperation(value = "获取报表左侧树通用接口,排除组") @RequestMapping(value = "/getNodeProvincialExceptGroup", method = RequestMethod.GET) public BaseResponse> getNodeProvincialExceptGroup(@RequestParam Map param) { String province = inspOrgService.getProvinceFlag(getCurrentOrgId()); param.put("province", province); param.put("userid", param.get("userId")); List list = generalDownloadService.getNodeProvincialExceptGroup(param); return buildSuccessResponse(list); } @ApiOperation(value = "根据用户名获取水资源所有节点(分省)", notes = "") @RequestMapping(value = "/getSzyNodeProvincial", method = RequestMethod.GET) public BaseResponse> getSzyNodeProvincial( @RequestParam(value = "userId", required = false) String userId) { List list = generalDownloadService.getSzyNodeProvincial(userId); return buildSuccessResponse(list); } @ApiOperation(value = "根据用户ID和督查类型获取流域节点") @RequestMapping(value = "/getLyNode", method = RequestMethod.GET) public BaseResponse> getLyNode( @RequestParam(value = "userId", required = false) String userId, @RequestParam(value = "orgType", required = false) String orgType) { List list = generalDownloadService.getLyNode(userId, orgType, getCurrentOrgId()); return buildSuccessResponse(list); } @ApiOperation(value = "根据用户ID和工程类型获取工程节点 ") @RequestMapping(value = "/getGcNode", method = {RequestMethod.GET, RequestMethod.POST}) public BaseResponse> getGcNode(@RequestBody TypeParam typeParam) { typeParam.setOrgId(getCurrentOrgId()); List list = generalDownloadService.getGcNode(typeParam); return buildSuccessResponse(list); } }