资料维护开发

This commit is contained in:
zhangqinlin
2021-09-06 18:16:41 +08:00
parent f86e5d55f7
commit a1176fe827
17 changed files with 440 additions and 95 deletions
+18
View File
@@ -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>
@@ -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("批量删除成功!");
}
@@ -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();
}
}
}
}
@@ -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;
}
}
@@ -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;
@@ -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;
}
@@ -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;
}
@@ -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);
}
@@ -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)
@@ -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>
@@ -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);
}
/**
* 添加
*/
@@ -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);
}
@@ -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-authortaoyan date:20200811 for:配置类数据获取
if(oConvertUtils.isEmpty(emailFrom)){
StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class);
setEmailFrom(staticConfig.getEmailFrom());
}
//update-end-authortaoyan 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();
}
}
}
@@ -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("发短信");
}
}
@@ -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("发微信消息模板");
}
}