add:远程在研项目

This commit is contained in:
zhangqinlin
2021-12-14 12:00:18 +08:00
parent e327a0b5d0
commit 64bb24381f
4 changed files with 107 additions and 30 deletions
@@ -190,12 +190,12 @@ public class PayCaseCommitteeSubitemController extends JeroController<PayCaseCom
return Result.OK(list);
}
/**
* 分标委表导出
*
*
*/
@RequiresPermissions("committee:export")
@AutoLog(value = "分标委表导出-导出")
@ApiOperation(value="分标委表导出-导出", notes="分标委表导出-导出")
@@ -1,9 +1,11 @@
package com.jero.project.controller;
import java.io.IOException;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
@@ -56,38 +58,40 @@ public class PayResearchProjectController extends JeroController<PayResearchProj
return Result.OK(pageList);
}
//
// /**
// * 第三方在研项目
// *
// * @param
// * @param pageNo
// * @param pageSize
// * @param
// * @return
// */
// @AutoLog(value = "第三方在研项目-分页列表查询")
// @ApiOperation(value="第三方在研项目-分页列表查询", notes="第三方在研项目-分页列表查询")
// @GetMapping(value = "/listForThree")
// public Result<?> listForThree(@RequestParam(name="abbreviation",required = true) String abbreviation,
// @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
// @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
// ) {
//// IPage<PayResearchProject> pageList = payResearchProjectService.listForThree(pageNo,pageSize,abbreviation);
// return Result.OK(pageList);
// }
/**
* 第三方在研项目
*
* @param
* @param pageNo
* @param pageSize
* @param
* @return
*/
@AutoLog(value = "第三方在研项目-分页列表查询")
@ApiOperation(value="第三方在研项目-分页列表查询", notes="第三方在研项目-分页列表查询")
@GetMapping(value = "/listForThree")
public Result<?> listForThree(@RequestParam(name="abbreviation",required = true) String abbreviation,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="projectName",required = false) String projectName
) {
JSONObject pageList = payResearchProjectService.listForThree(pageNo,pageSize,abbreviation,projectName);
return Result.OK(pageList);
}
/**
* 添加
* 第三方在研项目-下载
*
* @param payResearchProject
* @param fileId
* @return
*/
@AutoLog(value = "在研项目-添加")
@ApiOperation(value="在研项目-添加", notes="在研项目-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayResearchProject payResearchProject) {
payResearchProjectService.save(payResearchProject);
return Result.OK("添加成功!");
@AutoLog(value = "第三方在研项目-下载")
@ApiOperation(value="在研项目-下载", notes="在研项目-下载")
@GetMapping(value = "/downLoad")
public void downLoad(@RequestParam(name="fileId",required = true) Integer fileId,
@RequestParam(name="fileName",required = true) String fileName
) throws IOException {
payResearchProjectService.downLoad(fileId,fileName);
}
/**
@@ -1,8 +1,12 @@
package com.jero.project.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.project.entity.PayResearchProject;
import com.baomidou.mybatisplus.extension.service.IService;
import java.io.IOException;
/**
* @Description: pay_research_project
* @Author: jeecg-boot
@@ -11,4 +15,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IPayResearchProjectService extends IService<PayResearchProject> {
JSONObject listForThree(Integer pageNo, Integer pageSize, String abbreviation, String projectName);
void downLoad(Integer fileId,String fileName) throws IOException;
}
@@ -1,22 +1,32 @@
package com.jero.project.service.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.project.entity.PayResearchProject;
import com.jero.project.mapper.PayResearchProjectMapper;
import com.jero.project.service.IPayResearchProjectService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.io.Charsets;
import org.checkerframework.checker.units.qual.K;
import org.mybatis.logging.Logger;
import org.mybatis.logging.LoggerFactory;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.activation.MimetypesFileTypeMap;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.security.SecureRandom;
import java.util.HashMap;
/**
* @Description: pay_research_project
@@ -28,7 +38,15 @@ import java.security.SecureRandom;
@Slf4j
public class PayResearchProjectServiceImpl extends ServiceImpl<PayResearchProjectMapper, PayResearchProject> implements IPayResearchProjectService {
private String keys="qczxd00001_memberSystem";
private String KEYS="qczxd00001_memberSystem";//密匙
private String PREFIXS ="appId=QC_APP01&abbreviation=TC114SC";//列表获取参数
private String PREFIXF ="appId=QC_APP01&fid=";//文件下载参数
private String URL ="http://www.catarc.org.cn:8088/zxd/serviceInterface/getProjectInfoPage";
private String URLF ="http://www.catarc.org.cn:8088/zxd/serviceInterface/downloadProjectFile";
/**
* 加密,并将结果转成16进制字符串
*
@@ -58,4 +76,51 @@ public class PayResearchProjectServiceImpl extends ServiceImpl<PayResearchProjec
return null;
}
@Override
public JSONObject listForThree(Integer pageNo, Integer pageSize, String abbreviation,String projectName) {
String s = PREFIXS + abbreviation;
String encrypt = encrypt(s, KEYS);
HashMap<String, Object> map = new HashMap<>();
map.put("appId","QC_APP01");
map.put("abbreviation",encrypt);
map.put("pageNo",pageNo);
map.put("pageSize",pageSize);
map.put("projectName",projectName);
String s1 = HttpUtil.get(URL, map);
JSONObject jsonObject = JSONObject.parseObject(s1);
return jsonObject;
}
@Override
public void downLoad(Integer fileId,String fileName) throws IOException {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletResponse response = requestAttributes.getResponse();
String type = new MimetypesFileTypeMap().getContentType(fileName);
// 设置contenttype,即告诉客户端所发送的数据属于什么类型
response.setHeader("Content-type",type);
// 设置编码
String hehe = new String(fileName.getBytes("utf-8"), "iso-8859-1");
// 设置扩展头,当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
response.setHeader("Content-Disposition", "attachment;filename=" + hehe);
OutputStream outputStream = response.getOutputStream();
String s = PREFIXF + fileId;
String encrypt = encrypt(s, KEYS);
HashMap<String, Object> map = new HashMap<>();
map.put("appId", "QC_APP01");
map.put("fid", encrypt);
byte[] bytes = HttpUtil.downloadBytes(URLF + "?" + "appId=QC_APP01&" + "fid=" + encrypt);
byte[] buff = new byte[1024];
ByteArrayInputStream bis = null;
// 读取filename
bis = new ByteArrayInputStream(bytes);
int i = bis.read(buff);
while (i != -1) {
outputStream.write(buff, 0, buff.length);
outputStream.flush();
i = bis.read(buff);
}
bis.close();
outputStream.close();
}
}