Browse Source

0412更新

master
ruanqi 3 years ago
parent
commit
af5b6f3036
  1. 35
      src/main/java/com/heai/modules/ftp/controller/SysFtpController.java
  2. 24
      src/main/java/com/heai/modules/oss/service/SysOssService.java
  3. 107
      src/main/java/com/heai/modules/oss/service/impl/SysOssServiceImpl.java
  4. 9
      src/main/java/com/heai/modules/taskmanage/dao/TaskDetailDao.java
  5. 2
      src/main/java/com/heai/modules/taskmanage/service/impl/TaskDetailServiceImpl.java
  6. 3
      src/main/resources/application.yml
  7. 69
      src/main/resources/mapper/taskmanage/TaskDatailDao.xml

35
src/main/java/com/heai/modules/ftp/controller/SysFtpController.java

@ -10,6 +10,7 @@ import com.heai.common.utils.ConfigConstant;
import com.heai.common.utils.PageUtils;
import com.heai.common.utils.R;
import com.heai.common.utils.RandomUtil;
import com.heai.modules.factory.entity.TblBaseDataEntity;
import com.heai.modules.ftp.util.FTPUtils;
import com.heai.modules.oss.entity.SysOssEntity;
import com.heai.modules.oss.service.SysOssService;
@ -28,10 +29,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Date;
@ -167,22 +165,23 @@ public class SysFtpController extends AbstractController {
@GetMapping("/downFtpFile/{id}")
public void downFtpFile(@PathVariable("id") Long id, HttpServletResponse response){
// SysOssEntity resultData =sysOssService.getById(id);
// String path = System.getProperty("user.dir");
// File file = new File(path+"/"+resultData.getFileName());
// FTPUtils.ftpDownload(resultData.getUrl(),resultData.getFileName(),file);
// HttpHeaders headers = new HttpHeaders();
// headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
// headers.add("Content-Disposition", "attachment; filename=" + file.getName());
// headers.add("Pragma", "no-cache");
// headers.add("Expires", "0");
// headers.add("Last-Modified", new Date().toString());
// headers.add("ETag", String.valueOf(System.currentTimeMillis()));
// return ResponseEntity.ok().headers(headers).contentLength(file.length()).contentType(MediaType.parseMediaType("application/octet-stream")).body(new FileSystemResource(file));
// //FTPUtils.downFile(response,"",resultData.getNewFileName(),resultData.getFileName());
SysOssEntity resultData =sysOssService.getById(id);
FTPUtils.downFile(response,resultData.getUrl(),resultData.getNewFileName(),resultData.getFileName());
}
/**
* @Description 赫艾ftp下载老失败 用固定路径试试
* @Title downFtpFileNotFtp
* @param id
 * @param response
* @author rq
* @date 2023/11/23 10:47
* @return void
* @throw
*/
@PostMapping(value = "/downFtpFileNotFtp")
public void downFtpFileNotFtp(@RequestParam("id") Long id, HttpServletResponse response) throws IOException {
sysOssService.downLoadObjectFile( id,response);
}
}

24
src/main/java/com/heai/modules/oss/service/SysOssService.java

@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.heai.common.utils.PageUtils;
import com.heai.modules.oss.entity.SysOssEntity;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
@ -27,4 +30,25 @@ public interface SysOssService extends IService<SysOssEntity> {
* @date: 2022/9/22 10:02
*/
List<SysOssEntity> ossList(SysOssEntity params);
/**
* @Description TODO
* @Title downLoadObjectFile
* @param
* @author rq
* @date 2023/4/3 15:40
* @return void
* @throw
*/
void downLoadObjectFile(Long id , HttpServletResponse response) throws IOException;
/**
* @Description TODO
* @Title downLoadObjectFile
* @param
* @author rq
* @date 2023/4/3 15:40
* @return void
* @throw
*/
void downLoadObjectFile2(Long id , HttpServletResponse response) throws IOException;
}

107
src/main/java/com/heai/modules/oss/service/impl/SysOssServiceImpl.java

@ -9,16 +9,22 @@ import com.heai.common.utils.Query;
import com.heai.modules.oss.dao.SysOssDao;
import com.heai.modules.oss.entity.SysOssEntity;
import com.heai.modules.oss.service.SysOssService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.List;
import java.util.Map;
@Slf4j
@Service("sysOssService")
public class SysOssServiceImpl extends ServiceImpl<SysOssDao, SysOssEntity> implements SysOssService {
@Value("${ftp.location}")
private String ftpLocation;
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<SysOssEntity> page = this.page(
@ -34,4 +40,101 @@ public class SysOssServiceImpl extends ServiceImpl<SysOssDao, SysOssEntity> impl
}
@Override
public void downLoadObjectFile(Long id, HttpServletResponse response) throws IOException {
//处理路径和名称
// List<SysOssEntity> getFileData = eamObjectMapper.getFileData(id);
SysOssEntity resultData =getById(id);
if(resultData == null){
throw new RuntimeException("该文件不存在,请刷新列表");
}
String fileAddress=ftpLocation+"/"+resultData.getUrl()+"/"+resultData.getNewFileName();
fileAddress=fileAddress.replace("/","\\");
log.info("下载文件地址:" + fileAddress);
File file = new File(fileAddress);
//读取缓存1kb
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
response.setContentType("application/force-download;charset=utf-8");
String encodedFileName = new String(resultData.getFileName().getBytes("gbk"), "iso8859-1");
response.setHeader("Content-disposition", "attachment; filename=\"" + encodedFileName + "\"");
// log.info("下载文件名称:" + encodedFileName);
//response.setHeader("Content-disposition", "attachment; filename=" + new String(resultData.getFileName().getBytes("UTF-8"),"ISO-8859-1"));
// response.setHeader("Content-disposition", "attachment; filename=\"" + resultData.getFileName() + "\"");
try {
//读取文件
fis = new FileInputStream(file);
//加缓存
bis = new BufferedInputStream(fis);
//开始读取
int i = bis.read(buffer);
//设置输出流
ServletOutputStream os = response.getOutputStream();
//开始循环读取
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
os.close();
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}finally {
if(bis != null) {
bis.close();
}
if(fis != null) {
fis.close();
}
if(bos != null) {
bos.close();
}
if(fos != null) {
fos.close();
}
}
}
@Override
public void downLoadObjectFile2(Long id, HttpServletResponse response) throws IOException {
//处理路径和名称
// List<SysOssEntity> getFileData = eamObjectMapper.getFileData(id);
SysOssEntity resultData =getById(id);
if(resultData == null){
throw new RuntimeException("该文件不存在,请刷新列表");
}
String fileAddress=ftpLocation+"/"+resultData.getUrl()+"/"+resultData.getNewFileName();
fileAddress=fileAddress.replace("/","\\");
log.info("下载文件地址:" + fileAddress);
File file = new File(fileAddress);
try {
if (file.exists()) {
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + resultData.getFileName());
// 读取文件并输出到响应流
FileInputStream fis = new FileInputStream(file);
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
fis.close();
os.close();
} else {
throw new RuntimeException("该文件不存在!");
}
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
}

9
src/main/java/com/heai/modules/taskmanage/dao/TaskDetailDao.java

@ -29,6 +29,15 @@ public interface TaskDetailDao extends BaseMapper<TaskDetailEntity> {
*/
List<TaskDetailVo> taskDetailList(TaskListVo params);
/**
* @author: sxm
* @description: 下达任务具体明细
* @param [params]
* @return: java.util.List<com.heai.modules.taskmanage.vo.TaskDetailVo>
* @date: 2022/10/6 18:46
*/
List<TaskDetailVo> taskDetailListPC(TaskListVo params);
/**
* @author: sxm
* @description: 任务看板数据

2
src/main/java/com/heai/modules/taskmanage/service/impl/TaskDetailServiceImpl.java

@ -49,7 +49,7 @@ public class TaskDetailServiceImpl extends ServiceImpl<TaskDetailDao, TaskDetail
@Override
public List<TaskDetailVo> taskDetailList(TaskListVo params) {
return this.baseMapper.taskDetailList(params);
return this.baseMapper.taskDetailListPC(params);
}
@Override

3
src/main/resources/application.yml

@ -78,4 +78,5 @@ ftp:
ftpIp: '192.168.1.83'
ftpPart: 21
ftpUser: 'xjftpUser'
ftpPwd: 'xjftp123'
ftpPwd: 'xjftp123'
location: 'D:/FTPFiles'

69
src/main/resources/mapper/taskmanage/TaskDatailDao.xml

@ -80,6 +80,75 @@
</if>
</where>
</select>
<select id="taskDetailListPC" resultType="com.heai.modules.taskmanage.vo.TaskDetailVo">
select td.id
, tl.project
, tl.customer
, isnull(u2.username,tl.task_initiator) task_initiator
, tl.task_description
, td.department
, tl.required_completion_date
, td.status
, td.final_status
, tl.task_start_date
, tl.created_date
, tl.created_by
, tl.updated_date
, tl.updated_by
, tl.task_header
, u.username responsible_person
,( u.department + ' | ' + u.username) as dep_user_name
, td.task_id
, dbo.Get_chat_LastType(td.site,td.id,td.created_by) chatLastType
from task_detail td
left join task_list tl on td.task_id = tl.id AND td.site = tl.site
left join users u on td.site = u.site and u.userId = td.responsible_person
left join users u2 on td.site = u2.site and u2.userId = tl.task_initiator
LEFT JOIN report_mapping_ipaddress rmi on rmi.department = u.department
<where>
td.site = #{site}
<if test="ipAddress != null and ipAddress != ''">
and rmi.ipaddress like #{ipAddress}
</if>
<if test="taskInitiator != null and taskInitiator != ''">
and tl.created_by like #{taskInitiator}
</if>
<if test="department != null and department != ''">
and u.department like #{department}
</if>
<if test="customer != null and customer != ''">
and tl.customer like #{customer}
</if>
<if test="project != null and project != ''">
and tl.project like #{project}
</if>
<if test="status != null and status != ''">
and td.status = #{status}
</if>
<if test="finalStatus != null and finalStatus != ''">
and td.final_status = #{finalStatus}
</if>
<if test="responsiblePerson != null and responsiblePerson != ''">
and UPPER(td.responsible_person) like UPPER(#{responsiblePerson})
</if>
<if test="startDate !=null ">
and tl.task_start_date <![CDATA[ >= ]]> #{startDate}
</if>
<if test="endDate !=null ">
and tl.task_start_date <![CDATA[ <= ]]> #{endDate}
</if>
<if test="finishStartDate != null ">
and tl.required_completion_date <![CDATA[ >= ]]> #{finishStartDate}
</if>
<if test="finishEndDate != null ">
and tl.required_completion_date <![CDATA[ <= ]]> #{finishEndDate}
</if>
</where>
</select>
<select id="taskDetailReportList" resultType="com.heai.modules.taskmanage.vo.TaskDetailVo">
select td.id

Loading…
Cancel
Save