资料维护开发
This commit is contained in:
@@ -20,6 +20,24 @@
|
||||
<groupId>com.jero.boot</groupId>
|
||||
<artifactId>jero-boot-module-system</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-mail</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-velocity</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- 如果需要微服务版本,则以上API注释,释放该API
|
||||
<dependency>
|
||||
<groupId>com.jero.boot</groupId>
|
||||
|
||||
+49
-23
@@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.data.entity.ChildrenFindByName;
|
||||
import com.jero.data.entity.DTO.PayCaseCommitteeSubitemDTO;
|
||||
import com.jero.data.entity.PayCaseCommitteeSubitem;
|
||||
import com.jero.data.entity.VO.payCaseCommitteeSubitemVO;
|
||||
@@ -19,12 +21,15 @@ import com.jero.data.mapper.PayCaseCommitteeSubitemMapper;
|
||||
import com.jero.data.service.IPayCaseCommitteeSubitemService;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 分标委成员表
|
||||
@@ -37,18 +42,17 @@ import io.swagger.annotations.ApiOperation;
|
||||
@RequestMapping("/payCaseCommitteeSubitem/payCaseCommitteeSubitem")
|
||||
@Slf4j
|
||||
public class PayCaseCommitteeSubitemController extends JeroController<PayCaseCommitteeSubitem, IPayCaseCommitteeSubitemService> {
|
||||
|
||||
@Autowired
|
||||
private IPayCaseCommitteeSubitemService payCaseCommitteeSubitemService;
|
||||
|
||||
@Autowired
|
||||
@Resource
|
||||
private PayCaseCommitteeSubitemMapper payCaseCommitteeSubitemMapper;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
|
||||
* @return
|
||||
*
|
||||
*/
|
||||
@AutoLog(value = "分标委成员表-搜索")
|
||||
@ApiOperation(value="分标委成员表-搜索", notes="分标委成员表-搜索",response = FindByName.class)
|
||||
@@ -65,33 +69,62 @@ public class PayCaseCommitteeSubitemController extends JeroController<PayCaseCom
|
||||
.like(StringUtils.isNotBlank(companyName), "pm.company_name", companyName)
|
||||
.like(StringUtils.isNotBlank(fenBiaoWeiName), "pe.name", fenBiaoWeiName);
|
||||
Page<PayCaseCommitteeSubitem> page = new Page<>(pageNo, pageSize);
|
||||
IPage<FindByName> pageList = payCaseCommitteeSubitemMapper.list(page,queryWrapper);
|
||||
IPage<FindByName> pageList = payCaseCommitteeSubitemMapper.list(page, queryWrapper);
|
||||
List<FindByName> records = pageList.getRecords();
|
||||
if (!CollectionUtils.isEmpty(records)) {
|
||||
try {
|
||||
records.forEach(p -> {
|
||||
if (!CollectionUtils.isEmpty(p.getList())) {
|
||||
for (ChildrenFindByName q:p.getList()
|
||||
) {
|
||||
if (!org.apache.commons.lang3.StringUtils.isBlank(q.getPhone())){
|
||||
q.setPhone(PasswordUtil.decrypt(q.getPhone()));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
pageList.setRecords(records);
|
||||
} catch (Exception e) {
|
||||
log.error("手机号、邮箱解密异常!", e);
|
||||
}
|
||||
}
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "分标委成员表-列表查询")
|
||||
@ApiOperation(value="分标委成员表-列表查询", notes="分标委成员表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<?> queryPageList(@RequestParam(name="id",required =true) String id) {
|
||||
public Result<?> queryPageList(@RequestParam(name="id") String id) {
|
||||
QueryWrapper<PayCaseCommitteeSubitem> queryWrapper = Wrappers.query();
|
||||
queryWrapper.eq("pm.committee_id",id);
|
||||
queryWrapper.eq("pm.committee_id", id);
|
||||
List<payCaseCommitteeSubitemVO> list = payCaseCommitteeSubitemMapper.list2(queryWrapper);
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
try {
|
||||
list.forEach(p -> {
|
||||
if (!org.apache.commons.lang3.StringUtils.isBlank(p.getPhoneNamber())) {
|
||||
p.setPhoneNamber(PasswordUtil.decrypt(p.getPhoneNamber()));
|
||||
}
|
||||
if (!org.apache.commons.lang3.StringUtils.isBlank(p.getEmail())) {
|
||||
p.setEmail(PasswordUtil.decrypt(p.getEmail()));
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error("手机号、邮箱解密异常!", e);
|
||||
}
|
||||
}
|
||||
return Result.OK(list);
|
||||
}
|
||||
/**
|
||||
* 校验
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "分标委成员表-新增时校验重复")
|
||||
@ApiOperation(value="分标委成员表-新增时校验重复", notes="分标委成员表-新增时校验重复")
|
||||
@ApiImplicitParam(name = "id", value = "联系人主键", dataType = "String", required = true)
|
||||
@GetMapping(value = "/voiled")
|
||||
public Result<?> voiled(@RequestParam(name="id") String id) {
|
||||
LambdaQueryWrapper<PayCaseCommitteeSubitem> lambdaQueryWrapper = new LambdaQueryWrapper();
|
||||
LambdaQueryWrapper<PayCaseCommitteeSubitem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(PayCaseCommitteeSubitem::getContactsId, id);
|
||||
List<PayCaseCommitteeSubitem> list = payCaseCommitteeSubitemService.list(lambdaQueryWrapper);
|
||||
if (list.size() > 0) {
|
||||
@@ -101,12 +134,8 @@ public class PayCaseCommitteeSubitemController extends JeroController<PayCaseCom
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* @param payCaseCommitteeSubitemDTO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "分标委成员表-添加")
|
||||
@ApiOperation(value="分标委成员表-添加", notes="分标委成员表-添加")
|
||||
@@ -117,15 +146,14 @@ public class PayCaseCommitteeSubitemController extends JeroController<PayCaseCom
|
||||
payCaseCommitteeSubitemService.save(payCaseCommitteeSubitem);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "分标委成员表-通过id删除")
|
||||
@ApiOperation(value="分标委成员表-通过id删除", notes="分标委成员表-通过id删除")
|
||||
@GetMapping(value = "/delete")
|
||||
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||
public Result<?> delete(@RequestParam(name="id") String id) {
|
||||
payCaseCommitteeSubitemService.removeById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
@@ -133,13 +161,11 @@ public class PayCaseCommitteeSubitemController extends JeroController<PayCaseCom
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "分标委成员表-批量删除")
|
||||
@ApiOperation(value="分标委成员表-批量删除", notes="分标委成员表-批量删除")
|
||||
@GetMapping(value = "/deleteBatch")
|
||||
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||
public Result<?> deleteBatch(@RequestParam(name="ids") String ids) {
|
||||
this.payCaseCommitteeSubitemService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
+192
-27
@@ -1,8 +1,14 @@
|
||||
package com.jero.data.controller;
|
||||
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
import javax.activation.MimetypesFileTypeMap;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -13,6 +19,7 @@ import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.data.entity.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -21,14 +28,22 @@ import com.jero.data.mapper.PayDataFileMapper;
|
||||
import com.jero.data.service.IPayDataDirectoryService;
|
||||
import com.jero.data.service.IPayDataFileService;
|
||||
import com.jero.data.service.IPayFileDownloadRecordService;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import com.jero.meeting.service.IPayMeetingSituationService;
|
||||
import com.jero.modules.message.handle.impl.EmailSendMsgHandle;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -56,6 +71,9 @@ public class PayDataFileController extends JeroController<PayDataFile, IPayDataF
|
||||
@Resource
|
||||
private IOSSFileService iossFileService;
|
||||
|
||||
@Resource
|
||||
private IPayMeetingSituationService payMeetingSituationService;
|
||||
//拼接目录结构
|
||||
StringBuffer stringBuffer;
|
||||
|
||||
@Autowired
|
||||
@@ -74,11 +92,12 @@ public class PayDataFileController extends JeroController<PayDataFile, IPayDataF
|
||||
@RequestParam(name="id") String id,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="fileName",required =false) String fileName
|
||||
QueryFileList2 queryFileList2,HttpServletRequest req
|
||||
|
||||
) {
|
||||
QueryWrapper<Object> queryWrapper = new QueryWrapper<>();
|
||||
QueryWrapper<QueryFileList2> queryWrapper = QueryGenerator.initQueryWrapper(queryFileList2, req.getParameterMap());
|
||||
queryWrapper.eq("pd.id",id);
|
||||
queryWrapper.like(StringUtils.isNotBlank(fileName),"of.fileName",fileName);
|
||||
queryWrapper.eq("pd.type",1);
|
||||
queryWrapper.orderByDesc("pf.create_time");
|
||||
Page<PayDataFile> page = new Page<>(pageNo, pageSize);
|
||||
IPage<QueryFileList2> pageList = payDataFileMapper.pageData(page, queryWrapper);
|
||||
@@ -115,6 +134,7 @@ public class PayDataFileController extends JeroController<PayDataFile, IPayDataF
|
||||
IPage<QueryFileList> pageList = payDataFileMapper.pageDataMeeting(page,queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 资料列表添加
|
||||
*
|
||||
@@ -219,15 +239,91 @@ public class PayDataFileController extends JeroController<PayDataFile, IPayDataF
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 分发
|
||||
*
|
||||
*/
|
||||
@AutoLog(value = "资料维护(资料和会议)-分发")
|
||||
@ApiOperation(value="资料维护(资料和会议)-分发", notes="资料维护(资料和会议)-分发")
|
||||
@GetMapping(value = "/distribute")
|
||||
public Result<?> distribute(@RequestParam(name="ids") String ids,@RequestParam(name="dataIds") String dataIds) {
|
||||
|
||||
/**
|
||||
* @description: 根据会议id查询参会企业列表
|
||||
* @author: zhangqinlin
|
||||
* @date: 2021-09-03
|
||||
* @version: V1.0
|
||||
*/
|
||||
@AutoLog(value = "根据会议id查询参会企业列表")
|
||||
@ApiOperation(value="根据会议id查询参会企业列表", notes="根据会议id查询参会企业列表")
|
||||
@GetMapping(value = "/queryListByMeetingId")
|
||||
public Result<List<PayMeetingSituation>> queryCompanyByMeetingId(
|
||||
@RequestParam(name="meetingId") String meetingId
|
||||
) {
|
||||
LambdaQueryWrapper<PayMeetingSituation> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(PayMeetingSituation::getMeetingId, meetingId);
|
||||
lambdaQueryWrapper.groupBy(PayMeetingSituation::getCompanyId);
|
||||
List<PayMeetingSituation> list = payMeetingSituationService.list(lambdaQueryWrapper);
|
||||
return Result.OK(list);
|
||||
}
|
||||
/**
|
||||
* @description: 根据公司id和会议id查询参会人员列表
|
||||
* @author: zhangqinlin
|
||||
* @date: 2021-09-06
|
||||
* @version: V1.0
|
||||
*/
|
||||
@AutoLog(value = "根据公司id和会议id查询参会人员列表")
|
||||
@ApiOperation(value="根据会议id和会议id查询参会人员列表", notes="根据会议id和会议id查询参会人员列表")
|
||||
@GetMapping(value = "/queryListByCompanyId")
|
||||
public Result<List<queryPeopleByCompanyIdAndMeetingId>> queryPeopleByCompanyIdAndMeetingId(
|
||||
@RequestParam(name="meetingId") String meetingId,
|
||||
@RequestParam(name="companyId") String companyId
|
||||
) {
|
||||
QueryWrapper<queryPeopleByCompanyIdAndMeetingId> QueryWrapper = new QueryWrapper<>();
|
||||
QueryWrapper.eq("ps.company_id", companyId);
|
||||
QueryWrapper.eq("ps.meeting_id", meetingId);
|
||||
List<queryPeopleByCompanyIdAndMeetingId> list = payDataFileMapper.queryPeopleByCompanyIdAndMeetingId(QueryWrapper);
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
try {
|
||||
list.forEach(p -> {
|
||||
if (!org.apache.commons.lang3.StringUtils.isBlank(p.getEmail())) {
|
||||
p.setEmail(PasswordUtil.decrypt(p.getEmail()));
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error("手机号、邮箱解密异常!", e);
|
||||
}
|
||||
}
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 分发
|
||||
* @author: zhangqinlin
|
||||
* @date: 2021-09-06
|
||||
* @version: V1.0
|
||||
*/
|
||||
@AutoLog(value = "分发")
|
||||
@ApiOperation(value="分发", notes="分发")
|
||||
@GetMapping(value = "/distribute")
|
||||
public Result<?> distribute(
|
||||
@RequestParam(name="FileName") String FileName,
|
||||
@RequestParam(name="mails") String mails
|
||||
) {
|
||||
StringBuilder stringBuilder = new StringBuilder("会议邮件注意查收");
|
||||
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle();
|
||||
emailHandle.SendMsgAndFile(mails, stringBuilder.toString(), stringBuilder.toString(), FileName);
|
||||
return Result.OK("分发成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 批量分发
|
||||
* @author: zhangqinlin
|
||||
* @date: 2021-09-06
|
||||
* @version: V1.0
|
||||
*/
|
||||
@AutoLog(value = "批量分发")
|
||||
@ApiOperation(value="批量分发", notes="批量分发")
|
||||
@GetMapping(value = "/distributes")
|
||||
public Result<?> distributes(
|
||||
@RequestParam(name="FileNameS") String FileNameS,
|
||||
@RequestParam(name="mails") String mails
|
||||
) {
|
||||
StringBuilder stringBuilder = new StringBuilder("会议邮件注意查收");
|
||||
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle();
|
||||
emailHandle.SendMsgAndFile(mails, stringBuilder.toString(), stringBuilder.toString(), FileNameS);
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
@@ -260,9 +356,9 @@ public class PayDataFileController extends JeroController<PayDataFile, IPayDataF
|
||||
ArrayList<String> fileIdList = new ArrayList<>(Arrays.asList(fileIds.split(",")));
|
||||
ArrayList<PayDataFile> list = new ArrayList<>();
|
||||
stringBuffer = new StringBuffer();
|
||||
findToTree(dataId,dataType);
|
||||
findToTree(dataId, dataType);
|
||||
stringBuffer.deleteCharAt(stringBuffer.lastIndexOf("/"));
|
||||
for ( String id:fileIdList){
|
||||
for (String id : fileIdList) {
|
||||
PayDataFile payDataFile = new PayDataFile();
|
||||
payDataFile.setFilePath(stringBuffer.toString());
|
||||
payDataFile.setFileId(id);
|
||||
@@ -273,23 +369,92 @@ public class PayDataFileController extends JeroController<PayDataFile, IPayDataF
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, PayDataFile payDataFile) {
|
||||
return super.exportXls(request, payDataFile, PayDataFile.class, "资料维护");
|
||||
}
|
||||
/**
|
||||
* 导出下载
|
||||
*
|
||||
*/
|
||||
@AutoLog(value = "导出下载")
|
||||
@ApiOperation(value="导出下载", notes="导出下载")
|
||||
@GetMapping(value = "/importFile")
|
||||
public void importFile(@RequestParam(name="fileName") String fileName) {
|
||||
ArrayList<String> fileIdList = new ArrayList<>(Arrays.asList(fileName.split(",")));
|
||||
zipFileDownload(fileIdList);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
*
|
||||
* 打包下载
|
||||
* @param paths 目前处理是文件绝对路径, TODO 此处可以改成 List<File> 去处理 或者网络图片下载流
|
||||
*/
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
return super.importExcel(request, response, PayDataFile.class);
|
||||
public static void zipFileDownload(List<String> paths){
|
||||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
||||
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
|
||||
//循环将文件写入压缩流
|
||||
DataOutputStream os = null;
|
||||
//设置压缩流:直接写入response,实现边压缩边下载
|
||||
ZipOutputStream zipos = null;
|
||||
try {
|
||||
response.reset();
|
||||
response.setCharacterEncoding("utf-8");
|
||||
response.setContentType("multipart/form-data");
|
||||
//设置压缩包的名字
|
||||
//解决不同浏览器压缩包名字含有中文时乱码的问题
|
||||
String downloadName = UUID.randomUUID().toString() +".zip";
|
||||
String agent = request.getHeader("USER-AGENT");
|
||||
try {
|
||||
//针对IE或者以IE为内核的浏览器:
|
||||
if (agent.contains("MSIE") || agent.contains("Trident")) {
|
||||
downloadName = java.net.URLEncoder.encode(downloadName, "UTF-8");
|
||||
} else {
|
||||
//非IE浏览器的处理:
|
||||
downloadName = new String(downloadName.getBytes("UTF-8"),"ISO-8859-1");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
|
||||
zipos = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
|
||||
zipos.setMethod(ZipOutputStream.DEFLATED); //设置压缩方法
|
||||
for (String path : paths){
|
||||
StringBuffer url = new StringBuffer("D:\\opt\\upFiles");
|
||||
url.append("\\" + path+".pdf");
|
||||
File file = new File(url.toString());
|
||||
if(file.exists()){
|
||||
try {
|
||||
//添加ZipEntry,并ZipEntry中写入文件流
|
||||
//这里,防止要下载的文件有重名的导致下载失败
|
||||
zipos.putNextEntry(new ZipEntry("folder/"+ file.getName()));
|
||||
os = new DataOutputStream(zipos);
|
||||
InputStream is = new FileInputStream(file);
|
||||
byte[] b = new byte[100];
|
||||
int length = 0;
|
||||
while((length = is.read(b))!= -1){
|
||||
os.write(b, 0, length);
|
||||
}
|
||||
is.close();
|
||||
zipos.closeEntry();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
try {
|
||||
if (os!= null){
|
||||
os.flush();
|
||||
os.close();
|
||||
}
|
||||
if (zipos != null){
|
||||
zipos.close();
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+74
-11
@@ -1,21 +1,34 @@
|
||||
package com.jero.data.controller;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import javax.activation.MimetypesFileTypeMap;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.data.entity.PayCaseCommitteeExcel;
|
||||
import com.jero.data.entity.PayCaseCommitteeSubitem;
|
||||
import com.jero.data.entity.PayDistributionRecord;
|
||||
import com.jero.data.entity.PayFileDownloadRecord;
|
||||
import com.jero.data.service.IPayFileDownloadRecordService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -31,6 +44,8 @@ import io.swagger.annotations.ApiOperation;
|
||||
@RequestMapping("/payFileDownloadRecord/payFileDownloadRecord")
|
||||
@Slf4j
|
||||
public class PayFileDownloadRecordController extends JeroController<PayFileDownloadRecord, IPayFileDownloadRecordService> {
|
||||
@Value("${jero.path.upload}")
|
||||
private String upLoadPath;
|
||||
@Autowired
|
||||
private IPayFileDownloadRecordService payFileDownloadRecordService;
|
||||
|
||||
@@ -51,22 +66,70 @@ public class PayFileDownloadRecordController extends JeroController<PayFileDownl
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<PayFileDownloadRecord> queryWrapper = QueryGenerator.initQueryWrapper(payFileDownloadRecord, req.getParameterMap());
|
||||
queryWrapper.orderByDesc("createTime");
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
Page<PayFileDownloadRecord> page = new Page<PayFileDownloadRecord>(pageNo, pageSize);
|
||||
IPage<PayFileDownloadRecord> pageList = payFileDownloadRecordService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param request
|
||||
* @param payFileDownloadRecord
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, PayFileDownloadRecord payFileDownloadRecord) {
|
||||
return super.exportXls(request, payFileDownloadRecord, PayFileDownloadRecord.class, "资料下载记录");
|
||||
}
|
||||
@AutoLog(value = "资料下载")
|
||||
@ApiOperation(value="资料下载", notes="资料下载")
|
||||
@GetMapping(value = "download")
|
||||
public void download(
|
||||
@RequestParam("fileName") 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);
|
||||
download(filename, response);
|
||||
}
|
||||
|
||||
|
||||
public static void download(String filename, HttpServletResponse res) throws IOException {
|
||||
// 发送给客户端的数据
|
||||
OutputStream outputStream = res.getOutputStream();
|
||||
byte[] buff = new byte[1024];
|
||||
BufferedInputStream bis = null;
|
||||
// 读取filename
|
||||
bis = new BufferedInputStream(new FileInputStream(new File("D:\\opt\\upFiles\\"+filename +".pdf")));
|
||||
int i = bis.read(buff);
|
||||
while (i != -1) {
|
||||
outputStream.write(buff, 0, buff.length);
|
||||
outputStream.flush();
|
||||
i = bis.read(buff);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
*
|
||||
*/
|
||||
@AutoLog(value = "资料下载记录-导出")
|
||||
@ApiOperation(value="资料下载记录-导出", notes="资料下载记录-导出")
|
||||
@GetMapping(value = "/exportXls",produces = "text/text;charset=utf-8")
|
||||
public ModelAndView customExportXlsList() {
|
||||
QueryWrapper<PayFileDownloadRecord> queryWrapper = Wrappers.query();
|
||||
List<PayFileDownloadRecord> list = payFileDownloadRecordService.list(queryWrapper);
|
||||
// Step.3 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
mv.addObject(NormalExcelConstants.FILE_NAME, "资料下载记录"); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
mv.addObject(NormalExcelConstants.CLASS, PayCaseCommitteeExcel.class);
|
||||
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
|
||||
ExportParams exportParams=new ExportParams("资料下载记录", "资料下载记录");
|
||||
exportParams.setImageBasePath(upLoadPath);
|
||||
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
|
||||
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, list);
|
||||
return mv;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-4
@@ -31,8 +31,7 @@ public class PayFileDownloadRecord implements Serializable {
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private java.lang.String id;
|
||||
/**文件id*/
|
||||
@Excel(name = "文件id", width = 15)
|
||||
|
||||
@ApiModelProperty(value = "文件id")
|
||||
private java.lang.String fileId;
|
||||
/**文件名称*/
|
||||
@@ -51,8 +50,7 @@ public class PayFileDownloadRecord implements Serializable {
|
||||
@Excel(name = "下载用户名称", width = 15)
|
||||
@ApiModelProperty(value = "下载用户名称")
|
||||
private java.lang.String downloadName;
|
||||
/**会议名称*/
|
||||
@Excel(name = "会议名称", width = 15)
|
||||
|
||||
@ApiModelProperty(value = "会议名称")
|
||||
private java.lang.String meetingName;
|
||||
/**创建人*/
|
||||
|
||||
@@ -19,6 +19,9 @@ public class QueryFileList {
|
||||
@ApiModelProperty(value = "目录层级")
|
||||
private java.lang.String filePath;
|
||||
|
||||
@ApiModelProperty(value = "会议id")
|
||||
private java.lang.String meetingId;
|
||||
|
||||
@ApiModelProperty(value = "会议名称")
|
||||
private java.lang.String meetingName;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import lombok.Data;
|
||||
@ApiModel(value = "资料(网盘)列表")
|
||||
public class QueryFileList2 {
|
||||
@ApiModelProperty(value = "主键id")
|
||||
private java.lang.String id;
|
||||
private java.lang.String keyId;
|
||||
|
||||
@ApiModelProperty(value = "资料id")
|
||||
private java.lang.String dataId;
|
||||
|
||||
+5
-2
@@ -19,8 +19,11 @@ public class payCaseCommitteeSubitemVO {
|
||||
private java.lang.String contactsName;
|
||||
|
||||
@ApiModelProperty(value = "联系人手机号")
|
||||
private String PhoneNamber;
|
||||
private String phoneNamber;
|
||||
|
||||
@ApiModelProperty(value = "邮箱")
|
||||
private String email;
|
||||
|
||||
@ApiModelProperty(value = "职务")
|
||||
private String Post;
|
||||
private String post;
|
||||
}
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.jero.data.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@Data
|
||||
public class queryPeopleByCompanyIdAndMeetingId {
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "姓名")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty(value = "邮箱")
|
||||
private String email;
|
||||
}
|
||||
+8
-5
@@ -1,16 +1,17 @@
|
||||
package com.jero.data.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.data.entity.PayDataFile;
|
||||
import com.jero.data.entity.*;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.data.entity.QueryFileList;
|
||||
import com.jero.data.entity.QueryFileList2;
|
||||
import com.jero.data.entity.QueryFileListBySearch;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: pay_data_file
|
||||
* @Author: jeecg-boot
|
||||
@@ -19,7 +20,9 @@ import org.apache.ibatis.annotations.Param;
|
||||
*/
|
||||
public interface PayDataFileMapper extends BaseMapper<PayDataFile> {
|
||||
|
||||
IPage<QueryFileList2> pageData(Page<PayDataFile> page, @Param(Constants.WRAPPER) QueryWrapper<Object> queryWrapper);
|
||||
IPage<QueryFileList2> pageData(Page<PayDataFile> page, @Param(Constants.WRAPPER) QueryWrapper<QueryFileList2> queryWrapper);
|
||||
|
||||
IPage<QueryFileList> pageDataMeeting(Page<PayDataFile> page, @Param(Constants.WRAPPER) QueryWrapper<QueryFileListBySearch> queryWrapper);
|
||||
|
||||
List<queryPeopleByCompanyIdAndMeetingId> queryPeopleByCompanyIdAndMeetingId(@Param(Constants.WRAPPER) QueryWrapper<queryPeopleByCompanyIdAndMeetingId> queryWrapper);
|
||||
}
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
|
||||
|
||||
<select id="list2" resultType="com.jero.data.entity.VO.payCaseCommitteeSubitemVO">
|
||||
SELECT pm.id as id,pt.name as contactsName,pm.company_name as companyName,pt.post as post,pt.phone as PhoneNamber
|
||||
SELECT pm.id as id,pt.name as contactsName,pm.company_name as companyName,pt.post as post,pt.phone as phoneNamber,pt.email
|
||||
from
|
||||
pay_case_committee pe
|
||||
left JOIN pay_case_committee_subitem pm on (pe.id = pm.committee_id)
|
||||
|
||||
+11
-1
@@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.data.mapper.PayDataFileMapper">
|
||||
<select id="pageData" resultType="com.jero.data.entity.QueryFileList2">
|
||||
SELECT pf.id as id,
|
||||
SELECT pf.id as keyId,
|
||||
pf.file_id as dataId,
|
||||
pf.file_path as filePath,
|
||||
of.file_name as fileName,
|
||||
@@ -19,6 +19,7 @@
|
||||
pf.file_id as dataId,
|
||||
pf.file_path as filePath,
|
||||
of.file_name as fileName,
|
||||
pd.meetingId,
|
||||
pm.meeting_name as meetingName,
|
||||
pm.start_time as meetingTime,
|
||||
dt.downLodeTime,
|
||||
@@ -29,4 +30,13 @@
|
||||
FROM pay_file_download_record GROUP BY file_id) dt on (pf.file_id=dt.file_id)
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="queryPeopleByCompanyIdAndMeetingId" resultType="com.jero.data.entity.queryPeopleByCompanyIdAndMeetingId">
|
||||
SELECT
|
||||
ps.user_id as id,
|
||||
ps.user_name as userName,
|
||||
pm.email as email
|
||||
FROM pay_meeting_situation as ps left join pay_contacts_management as pm on(ps.user_id=pm.id)
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
-18
@@ -65,24 +65,6 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 根据会议id查询参会企业列表
|
||||
* @author: zhangqinlin
|
||||
* @date: 2021-09-03
|
||||
* @version: V1.0
|
||||
*/
|
||||
@AutoLog(value = "根据会议id查询参会企业列表")
|
||||
@ApiOperation(value="根据会议id查询参会企业列表", notes="根据会议id查询参会企业列表")
|
||||
@GetMapping(value = "/queryListByMeetingId")
|
||||
public Result<List<PayMeetingSituation>> queryListByMeetingId(
|
||||
@RequestParam(name="meetingId") Integer meetingId
|
||||
) {
|
||||
LambdaQueryWrapper<PayMeetingSituation> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(PayMeetingSituation::getMeetingId, meetingId);
|
||||
List<PayMeetingSituation> list = payMeetingSituationService.list(lambdaQueryWrapper);
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*/
|
||||
|
||||
+2
@@ -3,4 +3,6 @@ package com.jero.modules.message.handle;
|
||||
public interface ISendMsgHandle {
|
||||
|
||||
void SendMsg(String es_receiver, String es_title, String es_content);
|
||||
|
||||
void SendMsgAndFile(String es_receiver, String es_title, String es_content,String fileName);
|
||||
}
|
||||
|
||||
+44
-2
@@ -4,12 +4,15 @@ import com.jero.common.util.SpringContextUtils;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.config.StaticConfig;
|
||||
import com.jero.modules.message.handle.ISendMsgHandle;
|
||||
import org.springframework.mail.SimpleMailMessage;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.mail.javamail.JavaMailSender;
|
||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class EmailSendMsgHandle implements ISendMsgHandle {
|
||||
static String emailFrom;
|
||||
@@ -42,4 +45,43 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
|
||||
}
|
||||
|
||||
}
|
||||
//带附件发送邮件,多人多邮件;
|
||||
@Override
|
||||
public void SendMsgAndFile(String es_receiver, String es_title, String es_content, String fileName) {
|
||||
JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender");
|
||||
MimeMessage message = mailSender.createMimeMessage();
|
||||
MimeMessageHelper helper = null;
|
||||
//update-begin-author:taoyan date:20200811 for:配置类数据获取
|
||||
if(oConvertUtils.isEmpty(emailFrom)){
|
||||
StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class);
|
||||
setEmailFrom(staticConfig.getEmailFrom());
|
||||
}
|
||||
//update-end-author:taoyan date:20200811 for:配置类数据获取
|
||||
try {
|
||||
ArrayList<String> mailList = new ArrayList<>(Arrays.asList(es_receiver.split(",")));
|
||||
for (String mail:mailList){
|
||||
if(!StringUtils.isBlank(mail)) {
|
||||
helper = new MimeMessageHelper(message, true);
|
||||
// 设置发送方邮箱地址
|
||||
helper.setTo(es_receiver);
|
||||
helper.setFrom(emailFrom);
|
||||
helper.setSubject(es_title);
|
||||
helper.setText(es_content, true);
|
||||
ArrayList<String> fileList = new ArrayList<>(Arrays.asList(fileName.split(",")));
|
||||
for(String file :fileList) {
|
||||
if(!StringUtils.isBlank(file)) {
|
||||
StringBuffer url = new StringBuffer("D:\\opt\\upFiles");
|
||||
url.append("\\" + file+".pdf");
|
||||
FileSystemResource filePath = new FileSystemResource(new File(url.toString()));
|
||||
helper.addAttachment(file, filePath);
|
||||
}
|
||||
}
|
||||
mailSender.send(message);
|
||||
}
|
||||
}
|
||||
} catch (MessagingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -12,4 +12,11 @@ public class SmsSendMsgHandle implements ISendMsgHandle {
|
||||
log.info("发短信");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void SendMsgAndFile(String es_receiver, String es_title, String es_content, String fileName) {
|
||||
// TODO Auto-generated method stub
|
||||
log.info("发短信");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
@@ -11,4 +11,11 @@ public class WxSendMsgHandle implements ISendMsgHandle {
|
||||
log.info("发微信消息模板");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void SendMsgAndFile(String es_receiver, String es_title, String es_content, String fileName) {
|
||||
// TODO Auto-generated method stub
|
||||
log.info("发微信消息模板");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user