Browse Source

导出文件

dev
wangqing 4 years ago
parent
commit
5fcbad3996
  1. 2
      tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java
  2. 12
      tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectResultController.java
  3. 22
      tduck-project/src/main/java/com/tduck/cloud/project/entity/struct/UploadResultStruct.java
  4. 9
      tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectResultService.java
  5. 45
      tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java
  6. 6
      tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java

2
tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java

@ -506,4 +506,6 @@ public class UserProjectController {
}
}

12
tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectResultController.java

@ -125,6 +125,18 @@ public class UserProjectResultController {
IoUtil.close(out);
}
/**
* 填写附件导出
*
* @param request
* @return
*/
@Login
@GetMapping("/download/file")
public void downloadProjectResultFile(QueryProjectResultRequest request) {
projectResultService.downloadProjectResultFile(request);
}
/**
* 结果分页

22
tduck-project/src/main/java/com/tduck/cloud/project/entity/struct/UploadResultStruct.java

@ -0,0 +1,22 @@
package com.tduck.cloud.project.entity.struct;
import lombok.Data;
import java.util.List;
/**
* @author : wangqing
* @description : 上传收集结果
* @create : 2021/06/07 16:37
**/
@Data
public class UploadResultStruct {
private List<UploadFile> files;
@Data
public static class UploadFile {
private String fileName;
private String url;
}
}

9
tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectResultService.java

@ -2,6 +2,7 @@ package com.tduck.cloud.project.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tduck.cloud.common.util.Result;
import com.tduck.cloud.project.entity.UserProjectResultEntity;
import com.tduck.cloud.project.request.QueryProjectResultRequest;
import com.tduck.cloud.project.vo.ExportProjectResultVO;
@ -38,4 +39,12 @@ public interface UserProjectResultService extends IService<UserProjectResultEnti
* @return
*/
ExportProjectResultVO exportProjectResult(QueryProjectResultRequest request);
/**
* 下载项目结果中的附件
*
* @param request
* @return
*/
Result downloadProjectResultFile(QueryProjectResultRequest request);
}

45
tduck-project/src/main/java/com/tduck/cloud/project/service/impl/UserProjectResultServiceImpl.java

@ -1,8 +1,11 @@
package com.tduck.cloud.project.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -12,17 +15,21 @@ import com.tduck.cloud.common.entity.BaseEntity;
import com.tduck.cloud.common.exception.BaseException;
import com.tduck.cloud.common.util.AddressUtils;
import com.tduck.cloud.common.util.RedisUtils;
import com.tduck.cloud.common.util.Result;
import com.tduck.cloud.project.entity.UserProjectItemEntity;
import com.tduck.cloud.project.entity.UserProjectResultEntity;
import com.tduck.cloud.project.entity.enums.ProjectItemTypeEnum;
import com.tduck.cloud.project.entity.struct.UploadResultStruct;
import com.tduck.cloud.project.mapper.UserProjectResultMapper;
import com.tduck.cloud.project.request.QueryProjectResultRequest;
import com.tduck.cloud.project.service.UserProjectItemService;
import com.tduck.cloud.project.service.UserProjectResultService;
import com.tduck.cloud.project.vo.ExportProjectResultVO;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -107,4 +114,42 @@ public class UserProjectResultServiceImpl extends ServiceImpl<UserProjectResultM
allHeaderList.addAll(titleList);
return new ExportProjectResultVO(allHeaderList, resultList);
}
/**
* 下载项目结果中的附件
*
* @param request
* @return
*/
@Override
public Result downloadProjectResultFile(QueryProjectResultRequest request) {
List<UserProjectItemEntity> userProjectItemEntityList = userProjectItemService.list(Wrappers.<UserProjectItemEntity>lambdaQuery()
.eq(UserProjectItemEntity::getProjectKey, request.getProjectKey())
.eq(UserProjectItemEntity::getType, ProjectItemTypeEnum.UPLOAD));
String filed = "filed";
// 临时下载文件位置
ApplicationHome home = new ApplicationHome(getClass());
File path = home.getSource();
StringBuffer downloadPath = new StringBuffer(path.getParentFile().toString()).append(request.getProjectKey()).append(File.separator);
//结果
List<UserProjectResultEntity> resultEntityList = this.list(Wrappers.<UserProjectResultEntity>lambdaQuery()
.eq(UserProjectResultEntity::getProjectKey, request.getProjectKey())
.le(ObjectUtil.isNotNull(request.getEndDateTime()), UserProjectResultEntity::getCreateTime, request.getEndDateTime())
.ge(ObjectUtil.isNotNull(request.getBeginDateTime()), UserProjectResultEntity::getCreateTime, request.getBeginDateTime())
.orderByDesc(BaseEntity::getCreateTime));
resultEntityList.forEach(result -> {
userProjectItemEntityList.forEach(item -> {
StringBuffer tempDownloadPath = downloadPath.append(item.getFormItemId());
UploadResultStruct uploadResult = MapUtil.get(result.getProcessData(), filed + item.getFormItemId(), UploadResultStruct.class);
if (CollectionUtil.isNotEmpty(uploadResult.getFiles())) {
uploadResult.getFiles().forEach(ufile -> {
File downFile = FileUtil.file(tempDownloadPath.append(File.separator)
.append(result.getId()).append(File.separator).append(ufile.getFileName()).toString());
HttpUtil.downloadFile(ufile.getUrl(), downFile);
});
}
});
});
return null;
}
}

6
tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java

@ -2,7 +2,6 @@ package com.tduck.cloud.wx.mp.service.impl;
import cn.hutool.core.util.StrUtil;
import com.tduck.cloud.wx.mp.service.WxMpUserMsgService;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
@ -16,10 +15,11 @@ import org.springframework.stereotype.Service;
* @create : 2020-12-02 10:36
**/
@Service
@RequiredArgsConstructor
public class WxMpUserMsgServiceImpl implements WxMpUserMsgService {
private final WxMpService wxMpService;
@Lazy
@Autowired
private WxMpService wxMpService;
@Override
public void sendKfTextMsg(String appId, String openId, String content) {

Loading…
Cancel
Save