This commit is contained in:
panbaolin 2023-08-28 16:45:42 +08:00
commit 376be83157
10 changed files with 68 additions and 68 deletions

View File

@ -42,4 +42,6 @@ public interface Prompt {
String UPLOAD_ERR = "File Upload Failure!"; String UPLOAD_ERR = "File Upload Failure!";
String FILE_NAME_REPEAT = "File With The Same Name Appears, Stop Uploading!"; String FILE_NAME_REPEAT = "File With The Same Name Appears, Stop Uploading!";
String NEED_TIME = "The Start Time Or End Time Cannot Be Empty!";
} }

View File

@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.jeecg.common.constant.DateConstant;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
@Data @Data
@TableName(value = "alarm_contact_group") @TableName(value = "alarm_contact_group")
@ -37,9 +39,9 @@ public class AlarmContactGroup implements Serializable {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time") @TableField(value = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = DateConstant.DATE_TIME,timezone = DateConstant.TIME_ZONE)
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = DateConstant.DATE_TIME)
private LocalDate createTime; private LocalDateTime createTime;
/** /**
* 创建人 * 创建人
@ -51,9 +53,9 @@ public class AlarmContactGroup implements Serializable {
* 修改时间 * 修改时间
*/ */
@TableField(value = "update_time") @TableField(value = "update_time")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = DateConstant.DATE_TIME,timezone = DateConstant.TIME_ZONE)
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = DateConstant.DATE_TIME)
private LocalDate updateTime; private LocalDateTime updateTime;
/** /**
* 修改人 * 修改人

View File

@ -0,0 +1,10 @@
package org.jeecg.modules.base.vo;
import lombok.Data;
import org.jeecg.common.api.QueryRequest;
@Data
public class FileVo extends QueryRequest {
String name;
}

View File

@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -113,7 +114,7 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl<AlarmContactGroupM
String username = JwtUtil.getUserNameByToken(request); String username = JwtUtil.getUserNameByToken(request);
Long id = IdWorker.getId(); Long id = IdWorker.getId();
alarmContactGroup.setId(id.toString()); alarmContactGroup.setId(id.toString());
alarmContactGroup.setCreateTime(LocalDate.now()); alarmContactGroup.setCreateTime(LocalDateTime.now());
alarmContactGroup.setCreateBy(username); alarmContactGroup.setCreateBy(username);
this.baseMapper.insert(alarmContactGroup); this.baseMapper.insert(alarmContactGroup);
if (CollectionUtils.isNotEmpty(alarmContactGroup.getUserIds())){ if (CollectionUtils.isNotEmpty(alarmContactGroup.getUserIds())){
@ -171,7 +172,7 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl<AlarmContactGroupM
alarmContactGroupMemberMapper.insert(alarmContactGroupMember); alarmContactGroupMemberMapper.insert(alarmContactGroupMember);
} }
} }
alarmContactGroup.setUpdateTime(LocalDate.now()); alarmContactGroup.setUpdateTime(LocalDateTime.now());
alarmContactGroup.setUpdateBy(username); alarmContactGroup.setUpdateBy(username);
this.baseMapper.updateById(alarmContactGroup); this.baseMapper.updateById(alarmContactGroup);
result.setSuccess(true); result.setSuccess(true);

View File

@ -38,8 +38,10 @@ public class AlarmLogServiceImpl extends ServiceImpl<AlarmLogMapper, AlarmLog> i
public Result<?> viewAll(AlarmVo alarmVo) { public Result<?> viewAll(AlarmVo alarmVo) {
String startDate = alarmVo.getStartDate(); String startDate = alarmVo.getStartDate();
String endDate = alarmVo.getEndDate(); String endDate = alarmVo.getEndDate();
boolean startNotBlank = StrUtil.isNotBlank(startDate); boolean startBlank = StrUtil.isBlank(startDate);
boolean endtNotBlank = StrUtil.isNotBlank(endDate); boolean endBlank = StrUtil.isBlank(endDate);
boolean blank = startBlank || endBlank;
if (blank)return Result.error(Prompt.NEED_TIME);
// 拼接日期为合理的日期+时间范围 // 拼接日期为合理的日期+时间范围
alarmVo.setStartDate(startDate + DateConstant.TIME_START); alarmVo.setStartDate(startDate + DateConstant.TIME_START);
alarmVo.setEndDate(endDate + DateConstant.TIME_END); alarmVo.setEndDate(endDate + DateConstant.TIME_END);

View File

@ -2,10 +2,12 @@ package org.jeecg.modules.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.DateConstant; import org.jeecg.common.constant.DateConstant;
import org.jeecg.common.constant.Prompt;
import org.jeecg.modules.base.entity.postgre.SysEmailLog; import org.jeecg.modules.base.entity.postgre.SysEmailLog;
import org.jeecg.modules.mapper.SysEmailLogMapper; import org.jeecg.modules.mapper.SysEmailLogMapper;
import org.jeecg.modules.service.ISysEmailLogService; import org.jeecg.modules.service.ISysEmailLogService;
@ -25,7 +27,7 @@ import java.util.stream.IntStream;
public class SysEmailLogServiceImpl extends ServiceImpl<SysEmailLogMapper, SysEmailLog> implements ISysEmailLogService { public class SysEmailLogServiceImpl extends ServiceImpl<SysEmailLogMapper, SysEmailLog> implements ISysEmailLogService {
@Override @Override
public Result totalEmail(String emailId) { public Result<?> totalEmail(String emailId) {
// 当日邮件量 // 当日邮件量
LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysEmailLog::getEmailId,emailId); wrapper.eq(SysEmailLog::getEmailId,emailId);
@ -58,7 +60,7 @@ public class SysEmailLogServiceImpl extends ServiceImpl<SysEmailLogMapper, SysEm
} }
@Override @Override
public Result todayHour(String emailId) { public Result<?> todayHour(String emailId) {
LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysEmailLog::getEmailId,emailId); wrapper.eq(SysEmailLog::getEmailId,emailId);
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
@ -84,7 +86,7 @@ public class SysEmailLogServiceImpl extends ServiceImpl<SysEmailLogMapper, SysEm
return Result.OK(statistic); return Result.OK(statistic);
} }
public Result todayMin(String emailId) { public Result<?> todayMin(String emailId) {
LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysEmailLog::getEmailId,emailId); wrapper.eq(SysEmailLog::getEmailId,emailId);
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
@ -115,7 +117,11 @@ public class SysEmailLogServiceImpl extends ServiceImpl<SysEmailLogMapper, SysEm
} }
@Override @Override
public Result analysis(String emailId, String startDate, String endDate) { public Result<?> analysis(String emailId, String startDate, String endDate) {
boolean startBlank = StrUtil.isBlank(startDate);
boolean endBlank = StrUtil.isBlank(endDate);
boolean blank = startBlank || endBlank;
if (blank)return Result.error(Prompt.NEED_TIME);
String startStr = startDate + DateConstant.TIME_START; String startStr = startDate + DateConstant.TIME_START;
String endStr = endDate + DateConstant.TIME_END; String endStr = endDate + DateConstant.TIME_END;
LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysEmailLog> wrapper = new LambdaQueryWrapper<>();

View File

@ -12,6 +12,7 @@ import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply; import org.apache.commons.net.ftp.FTPReply;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.xmlbeans.impl.xb.xmlconfig.Extensionconfig;
import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.DateConstant; import org.jeecg.common.constant.DateConstant;
@ -21,6 +22,7 @@ import org.jeecg.common.constant.enums.FileTypeEnum;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.FTPUtil; import org.jeecg.common.util.FTPUtil;
import org.jeecg.modules.base.dto.FileDto; import org.jeecg.modules.base.dto.FileDto;
import org.jeecg.modules.base.vo.FileVo;
import org.jeecg.modules.service.ISpectrumFileService; import org.jeecg.modules.service.ISpectrumFileService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -43,17 +45,14 @@ public class SpectrumFileController {
@PostMapping("upload") @PostMapping("upload")
@ApiOperation(value = "谱文件上传",notes = "谱文件上传") @ApiOperation(value = "谱文件上传",notes = "谱文件上传")
public Result<?> upload(@RequestParam MultipartFile file, public Result<?> upload(@RequestParam MultipartFile file){
@RequestParam String choice){ return spectrumFileService.upload(file);
return spectrumFileService.upload(file,choice);
} }
@GetMapping("get") @GetMapping("get")
@ApiOperation(value = "用户谱文件列表",notes = "用户谱文件列表") @ApiOperation(value = "用户谱文件列表",notes = "用户谱文件列表")
public Result<?> get(QueryRequest query){ public Result<?> get(FileVo fileVo){
Integer pageNo = query.getPageNo(); return spectrumFileService.get(fileVo);
Integer pageSize = query.getPageSize();
return spectrumFileService.get(pageNo,pageSize);
} }
public static void unzip(File zipFile, String destDir) throws IOException { public static void unzip(File zipFile, String destDir) throws IOException {

View File

@ -2,12 +2,13 @@ package org.jeecg.modules.service;
import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.base.vo.FileVo;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
public interface ISpectrumFileService { public interface ISpectrumFileService {
Result<?> upload(MultipartFile file,String choice); Result<?> upload(MultipartFile file);
Result<?> get(Integer pageNo,Integer pageSize); Result<?> get(FileVo fileVo);
} }

View File

@ -9,6 +9,7 @@ import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPFile;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.Prompt; import org.jeecg.common.constant.Prompt;
import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.constant.enums.FileTypeEnum; import org.jeecg.common.constant.enums.FileTypeEnum;
@ -16,6 +17,7 @@ import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.FTPUtil; import org.jeecg.common.util.FTPUtil;
import org.jeecg.common.util.PageUtil; import org.jeecg.common.util.PageUtil;
import org.jeecg.modules.base.dto.FileDto; import org.jeecg.modules.base.dto.FileDto;
import org.jeecg.modules.base.vo.FileVo;
import org.jeecg.modules.service.ISpectrumFileService; import org.jeecg.modules.service.ISpectrumFileService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,6 +28,7 @@ import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
@ -36,7 +39,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService {
private FTPUtil ftpUtil; private FTPUtil ftpUtil;
@Override @Override
public Result<?> upload(MultipartFile file, String choice) { public Result<?> upload(MultipartFile file) {
String filename = file.getOriginalFilename(); String filename = file.getOriginalFilename();
boolean isZip = filename.endsWith(FileTypeEnum.zip.getType()); boolean isZip = filename.endsWith(FileTypeEnum.zip.getType());
if (!isZip) return Result.error(Prompt.FILE_TYPE_ERR); if (!isZip) return Result.error(Prompt.FILE_TYPE_ERR);
@ -70,49 +73,14 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService {
ftpClient = ftpUtil.LoginFTP(); ftpClient = ftpUtil.LoginFTP();
if (ObjectUtil.isNull(ftpClient)) if (ObjectUtil.isNull(ftpClient))
return Result.error(Prompt.FTP_ERR); return Result.error(Prompt.FTP_ERR);
// 如果指定目录不存在,直接上传 // 如果指定目录不存在,创建目录
boolean exist = ftpClient.changeWorkingDirectory(filePath); boolean exist = ftpClient.changeWorkingDirectory(filePath);
if (!exist){ if (!exist) ftpClient.makeDirectory(filePath);
ftpClient.makeDirectory(filePath); // 上传所有文件
for (File oneFile : fileList) { for (File oneFile : fileList) {
String fullFilePath = filePath + slash + oneFile.getName(); String fullFilePath = filePath + slash + oneFile.getName();
FileInputStream local = new FileInputStream(oneFile); FileInputStream local = new FileInputStream(oneFile);
ftpClient.storeFile(fullFilePath,local); ftpClient.storeFile(fullFilePath,local);
}
return Result.OK(Prompt.UPLOAD_SUCC);
}
// 如果指定目录存在,则获取指定目录下所有文件名
List<String> remoteFileNames = ListUtil.toList(ftpClient.listNames());
Collection<String> crossFileNames = CollUtil.intersection(fileNames, remoteFileNames);
// 没有重名文件,直接全部导入
if (CollUtil.isEmpty(crossFileNames)){
for (File oneFile : fileList) {
String fullFilePath = filePath + slash + oneFile.getName();
FileInputStream local = new FileInputStream(oneFile);
ftpClient.storeFile(fullFilePath,local);
}
return Result.OK(Prompt.UPLOAD_SUCC);
}
// 有重名文件,根据用户选择进行处理
if (StrUtil.equals("stop",choice)){ // 1.停止上传
return Result.error(Prompt.FILE_NAME_REPEAT);
}else if (StrUtil.equals("over",choice)){ // 2.直接覆盖
for (File oneFile : fileList) {
String fullFilePath = filePath + slash + oneFile.getName();
FileInputStream local = new FileInputStream(oneFile);
ftpClient.storeFile(fullFilePath,local);
}
}else if (StrUtil.equals("skip",choice)){ // 3.保留原文件
for (File oneFile : fileList) {
String oneFileName = oneFile.getName();
if (crossFileNames.contains(oneFileName))
continue;
String fullFilePath = filePath + slash + oneFileName;
FileInputStream local = new FileInputStream(oneFile);
ftpClient.storeFile(fullFilePath,local);
}
}else { // 默认不上传
return Result.error(Prompt.FILE_NAME_REPEAT);
} }
return Result.OK(Prompt.UPLOAD_SUCC); return Result.OK(Prompt.UPLOAD_SUCC);
} catch (IOException e) { } catch (IOException e) {
@ -136,7 +104,9 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService {
} }
@Override @Override
public Result<?> get(Integer pageNo, Integer pageSize) { public Result<?> get(FileVo fileVo) {
Integer pageNo = fileVo.getPageNo();
Integer pageSize = fileVo.getPageSize();
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = user.getUsername(); String username = user.getUsername();
String slash = SymbolConstant.SINGLE_SLASH; String slash = SymbolConstant.SINGLE_SLASH;
@ -151,6 +121,13 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService {
boolean exist = ftpClient.changeWorkingDirectory(filePath); boolean exist = ftpClient.changeWorkingDirectory(filePath);
if (!exist) return Result.OK(page); if (!exist) return Result.OK(page);
List<FTPFile> ftpFiles = ListUtil.toList(ftpClient.listFiles()); List<FTPFile> ftpFiles = ListUtil.toList(ftpClient.listFiles());
// 根据文件名进行过滤
String name = fileVo.getName();
if (StrUtil.isNotBlank(name)){
ftpFiles = ftpFiles.stream()
.filter(file -> StrUtil.containsIgnoreCase(file.getName(),name))
.collect(Collectors.toList());
}
for (FTPFile ftpFile : ftpFiles) { for (FTPFile ftpFile : ftpFiles) {
String fileName = ftpFile.getName(); String fileName = ftpFile.getName();
Calendar calendar = ftpFile.getTimestamp(); Calendar calendar = ftpFile.getTimestamp();

View File

@ -130,7 +130,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
scheduler.scheduleJob(jobDetail, trigger); scheduler.scheduleJob(jobDetail, trigger);
// 启动scheduler // 启动scheduler
scheduler.start(); scheduler.start();
// 获取 JobDetail 对象 // TODO 获取 JobDetail 对象
JobDetail detail = scheduler.getJobDetail(new JobKey(identity)); JobDetail detail = scheduler.getJobDetail(new JobKey(identity));
if (ObjectUtil.isNull(detail)) if (ObjectUtil.isNull(detail))
return Result.OK(Prompt.EXEC_SUCC); return Result.OK(Prompt.EXEC_SUCC);