From dd4668b1b14376b83f2c53438bbbb3e34f76604e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com> Date: Wed, 16 Dec 2020 15:57:47 +0800 Subject: [PATCH] fix --- pom.xml | 7 ++ .../controller/ResultRecordController.java | 15 +-- .../controller/ExportController.java | 108 ++++++++++++++++++ 3 files changed, 118 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 5fc6ee94..54874c8a 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,7 @@ 5.2.3 1.18.4 3.17 + 2.2 /work/linzi ${project.artifactId}-${project.version}.jar @@ -255,6 +256,12 @@ suibian + + cn.wanghaomiao + JsoupXpath + ${jsoupXpath.version} + + diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index cdac9256..358ef7fd 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -1458,23 +1458,14 @@ public class ResultRecordController extends AbstractController { @ApiOperation("导出绩效详情报表") @GetMapping("/recordDetailExport") - @ApiResponses({@ApiResponse(code = 200,message = "成功",response = RecordDetailExportResp.class)}) + @ApiResponses({@ApiResponse(code = 200,message = "成功",response = ResultRecordDetailDto.class)}) public R recordDetailExport(Long recordId){ - RecordDetailExportResp resp = new RecordDetailExportResp(); Map map = Maps.newHashMap(); map.put("id",recordId); - R respnse = getDetail(map); - if(respnse.isSuccess()){ - ResultRecordDetailDto resultRecordDetailDto = (ResultRecordDetailDto) respnse.get("data"); - //chartResultService.selectLevelDetailList(req); - // TODO 暂时按照详情页面数据返回 - - resp.setRecortModelDtos(resultRecordDetailDto.getRecortModelDtos()); - } - - return R.ok().put("data",resp); + return getDetail(map); } + @ApiOperation("保存绩效详情报表计划") @PostMapping("/recordDetailExplan") @ApiResponses({@ApiResponse(code = 200,message = "成功")}) diff --git a/src/main/java/com/lz/modules/performance/controller/ExportController.java b/src/main/java/com/lz/modules/performance/controller/ExportController.java index 9c801f47..f7b79a8c 100644 --- a/src/main/java/com/lz/modules/performance/controller/ExportController.java +++ b/src/main/java/com/lz/modules/performance/controller/ExportController.java @@ -2,11 +2,15 @@ package com.lz.modules.performance.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.XmlUtil; +import cn.hutool.http.HtmlUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import cn.hutool.poi.excel.StyleSet; +import com.alibaba.druid.sql.visitor.functions.If; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; +import com.lz.common.utils.HttpUtil; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.service.StaffService; import com.lz.modules.flow.model.ResultDetailDto; @@ -19,12 +23,23 @@ import com.lz.modules.performance.req.ChartResultReq; import com.lz.modules.performance.res.LevelDetailExportRes; import com.lz.modules.performance.service.ChartResultService; import com.lz.modules.sys.service.app.ResultRecordService; +import com.sun.deploy.net.HttpUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; +import org.apache.http.HeaderElement; +import org.apache.http.HttpEntity; +import org.apache.http.client.entity.GzipDecompressingEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.utils.HttpClientUtils; +import org.apache.http.impl.client.DefaultHttpClient; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; +import org.jsoup.Jsoup; +import org.seimicrawler.xpath.JXDocument; +import org.seimicrawler.xpath.JXNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -32,12 +47,21 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.util.HtmlUtils; +import org.w3c.dom.Document; +import sun.net.www.http.HttpClient; +import sun.plugin2.os.windows.Windows; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; import java.lang.reflect.Field; import java.math.BigDecimal; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -408,4 +432,88 @@ public class ExportController { " ],\n" + " \"weight\": 1\n" + " }*/ + + + public static void main(String[] args) { + //域名 + String domain = ""; + //项目名 + String projectName = ""; + //分支名 + String branchName = ""; + //session + String session = ""; + //分页 ?limit=40&offset=120 + + + + try { + URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/version_performance_2.0").openConnection(); + //URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/graphs/master").openConnection(); + HttpURLConnection connection = (HttpURLConnection) urlConnection; + connection.setRequestMethod("GET"); + connection.addRequestProperty("Host", "gitlab.ldxinyong.com"); + + connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0"); + + connection.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); + connection.addRequestProperty("Accept-Encoding", "gzip, deflate"); + connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"); + connection.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22"); + + //connection.addRequestProperty("Referer", "http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/master"); + + //connection.addRequestProperty("Connection", "keep-alive"); + + //connection.addRequestProperty("Upgrade-Insecure-Requests", "1"); + + //connection.addRequestProperty("If-None-Match", "W/\"352c90856827b53f3735109727c9f3a1\""); + + connection.addRequestProperty("Cookie", "_gitlab_session=4e14c53a8cb378a65fda996b0bc15021; sidebar_collapsed=false"); + connection.connect();// 连接会话 + // 获取输入流 + BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); + String line; + StringBuilder sb = new StringBuilder(); + while ((line = br.readLine()) != null) {// 循环读取流 + sb.append(line); + } + br.close();// 关闭流 + connection.disconnect();// 断开连接 + System.out.println(sb.toString()); + JXDocument document = JXDocument.create(sb.toString()); + JXNode jxNode = document.selNOne("//*[@id='commits-list']"); + List sel = jxNode.sel("//*[@class='commits-row']"); + for(JXNode jx:sel){ + List sel2 = jx.sel("//*[@class='commit flex-row js-toggle-container']"); + for(JXNode j:sel2){ + String avatar = j.sel("//img[@class='avatar s36 hidden-xs has-tooltip']/@src").get(0).toString(); + System.out.println("头像 " + avatar); + + String commit = j.sel("//a[@class='commit-row-message item-title']/text()").get(0).toString(); + System.out.println("摘要 " + commit); + + String name = j.sel("//a[@class='commit-author-link has-tooltip']/text()").get(0).toString(); + System.out.println("姓名 " + name); + + String time = j.sel("//time[@class='js-timeago']/@datetime").get(0).toString(); + System.out.println("时间 " + time); + + + String version = j.sel("//div[@class='label label-monospace']/text()").get(0).toString(); + System.out.println("版本 " + version); + + } + + + + } + System.out.println(); + + } catch (IOException e) { + e.printStackTrace(); + } + + } + }