diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java index 29f5e22..47ee775 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java @@ -506,4 +506,6 @@ public class UserProjectController { } + + } \ No newline at end of file diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectResultController.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectResultController.java index bd2e10c..47c3554 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectResultController.java +++ b/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); + } + /** * 结果分页 diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/entity/struct/UploadResultStruct.java b/tduck-project/src/main/java/com/tduck/cloud/project/entity/struct/UploadResultStruct.java new file mode 100644 index 0000000..da25d2e --- /dev/null +++ b/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 files; + + @Data + public static class UploadFile { + private String fileName; + private String url; + } +} diff --git a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectResultService.java b/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectResultService.java index 4e8292a..2392833 100644 --- a/tduck-project/src/main/java/com/tduck/cloud/project/service/UserProjectResultService.java +++ b/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 userProjectItemEntityList = userProjectItemService.list(Wrappers.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 resultEntityList = this.list(Wrappers.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; + } } \ No newline at end of file diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java index 9bbe144..edf07f5 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java +++ b/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) {