Przeglądaj źródła

文件上传下载代码预览初始化

fyz 1 miesiąc temu
rodzic
commit
8193485abb

+ 8 - 12
mjava-mankalong/src/main/java/com/malk/mankalong/controller/SubFormImageController.java

@@ -57,22 +57,18 @@ public class SubFormImageController {
         log.info("收到子表转图片请求: formUuid={}, 映射数量={}",
                 request.getFormUuid(), request.getMappings().size());
 
-        List<ImageResultDTO> results = subFormImageService.generateImages(request);
-
-        int successCount = (int) results.stream().filter(r -> r.getError() == null).count();
-        int failCount = results.size() - successCount;
+        String downloadUrl = subFormImageService.generateImages(request);
 
+//        int successCount = (int) results.stream().filter(r -> r.getError() == null).count();
+//        int failCount = results.size() - successCount;
+//
         ApiResponse.BatchResult batchResult = ApiResponse.BatchResult.builder()
-                .total(results.size())
-                .successCount(successCount)
-                .failCount(failCount)
-                .results(results)
                 .build();
+//
+//        String message = String.format("处理完成: 成功 %d, 失败 %d", successCount, failCount);
+//        log.info(message);
 
-        String message = String.format("处理完成: 成功 %d, 失败 %d", successCount, failCount);
-        log.info(message);
-
-        return ResponseEntity.ok(ApiResponse.ok(batchResult, message));
+        return ResponseEntity.ok(ApiResponse.ok(batchResult, downloadUrl));
     }
 
     /**

+ 46 - 0
mjava-mankalong/src/main/java/com/malk/mankalong/enums/TypeEnum.java

@@ -0,0 +1,46 @@
+package com.malk.mankalong.enums;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * 企业资质附件类型枚举
+ * 对应上传材料清单
+ */
+@Getter
+public enum TypeEnum {
+
+    ENGINEERING_TYPE("工程类", "GZLxjv9VGqorBKX0T62wdkdX86EDybno"),
+    SERVICE_CATEGORY("服务类", "1zknDm0WRaXyDpbKf0p54BnN8BQEx5rG"),
+    PROCUREMENT_CATEGORY("采购类", "QBnd5ExVEvepBEN7sgm1P29xJyeZqMmz"),
+    FRANCHISE_TYPE("加盟类", "14dA3GK8gjlgxBabun3apGNnJ9ekBD76"),
+    SALE_TYPE("销售类", "R4GpnMqJzGpyemjBTkemllP78Ke0xjE3"),
+    OTHER_TYPE("其他类", "OG9lyrgJPzNYvkR5uv5kKAjjWzN67Mw4");
+
+    /** 存储编码(库中存此字段) */
+    @JsonValue
+    private final String code;
+    /** 中文描述 */
+    private final String desc;
+
+    TypeEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    /**
+     * 根据编码反向匹配枚举
+     */
+    public static TypeEnum getByCode(String code) {
+        for (TypeEnum type : values()) {
+            if (type.getCode().equals(code)) {
+                return type;
+            }
+        }
+        return null;
+    }
+    // 2. 直接根据code获取desc(封装一步到位)
+    public static String getDescByCode(String code) {
+        TypeEnum type = getByCode(code);
+        return type == null ? "" : type.getDesc();
+    }
+}

+ 25 - 9
mjava-mankalong/src/main/java/com/malk/mankalong/service/Impl/ContractTemplateService.java

@@ -7,6 +7,7 @@ import com.malk.mankalong.entity.dto.ResultQueryRequest;
 import com.malk.mankalong.entity.dto.TaskCreateRequest;
 import com.malk.mankalong.entity.vo.ResultQueryResult;
 import com.malk.mankalong.entity.vo.TaskCreateResult;
+import com.malk.mankalong.enums.TypeEnum;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McR;
@@ -148,23 +149,38 @@ public class ContractTemplateService {
         ResultQueryResult result = raw.getData();
         if (result.getPdfStatus().equals("COMPLETED")){
 
-            String savePath = fileDownloadService.download(result.getDownloadUrl(), result.getFileName());
+            String imageFilePath = result.getDownloadUrl();
+            String fileName = result.getFileName();
+            Map formData = ydClient.queryData(YDParam.builder()
+                            .appType(appType)
+                            .systemToken(systemToken)
+                            .formInstanceId(instanceId)
+                            .useLatestVersion(true)
+                            .build(),
+                    YDConf.FORM_QUERY.retrieve_id).getFormData();
 
-            Map uploadInfo = ddImplService.uploadFileFormUrlForOverflow(ddClient.getAccessToken(), "admin", savePath);
-            String spaceId = UtilMap.getString(uploadInfo, "spaceId");
-            String unionId = UtilMap.getString(uploadInfo, "unionId");
-            String dentryId = UtilMap.getString(uploadInfo, "id");
-
-            Map map = ddClientStorage.searchFiles(ddClient.getAccessToken(), spaceId, unionId, dentryId, null);
+            String formType = UtilMap.getString(formData, "textField_mspzgras");
+            Map uploadInfo = ddImplService.uploadFileFormUrlForKnowledge(ddClient.getAccessToken(), "02145933103936490950", TypeEnum.getDescByCode(formType), imageFilePath,fileName);
 
             log.info("文件上传信息:{}",uploadInfo);
-
+            String resourceUrl = "https://alidocs.dingtalk.com/i/nodes/"+UtilMap.getString(uploadInfo,"id") +"?utm_scene=team_space";
+//            String savePath = fileDownloadService.download(result.getDownloadUrl(), result.getFileName());
+//
+//            Map uploadInfo = ddImplService.uploadFileFormUrlForOverflow(ddClient.getAccessToken(), "admin", savePath);
+//            String spaceId = UtilMap.getString(uploadInfo, "spaceId");
+//            String unionId = UtilMap.getString(uploadInfo, "unionId");
+//            String dentryId = UtilMap.getString(uploadInfo, "id");
+//
+//            Map map = ddClientStorage.searchFiles(ddClient.getAccessToken(), spaceId, unionId, dentryId, null);
+//
+//            log.info("文件上传信息:{}",uploadInfo);
+//
             ydClient.operateData(YDParam.builder()
                     .appType(appType)
                     .systemToken(systemToken)
                     .formInstanceId(instanceId)
                     .useLatestVersion(true)
-                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_msnynxia", UtilMap.getString(map,url))))
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_msnynxia", resourceUrl)))
                     .build(), YDConf.FORM_OPERATION.update);
         }
         log.info("查询结果 → pdfStatus={}  fileName={}", result.getPdfStatus(), result.getFileName());

+ 9 - 3
mjava-mankalong/src/main/java/com/malk/mankalong/service/Impl/SubFormImageServiceImpl.java

@@ -12,6 +12,7 @@ import com.malk.mankalong.entity.dto.ImageResultDTO;
 import com.malk.mankalong.entity.dto.SubFormImageMappingDTO;
 import com.malk.mankalong.entity.dto.SubFormImageRequest;
 import com.malk.mankalong.entity.dto.TaskCreateRequest;
+import com.malk.mankalong.entity.vo.ResultQueryResult;
 import com.malk.mankalong.entity.vo.TaskCreateResult;
 import com.malk.mankalong.service.SubFormImageService;
 import com.malk.mankalong.util.TableImageGenerator;
@@ -64,6 +65,7 @@ public class SubFormImageServiceImpl implements SubFormImageService {
     private DDClient ddClient;
     @Autowired
     private ContractTemplateService contractTemplateService;
+
     @PostConstruct
     public void init() {
         this.imageGenerator = new TableImageGenerator(imageConfig);
@@ -80,7 +82,10 @@ public class SubFormImageServiceImpl implements SubFormImageService {
     }
 
     @Override
-    public List<ImageResultDTO> generateImages(SubFormImageRequest request) {
+//    public List<ImageResultDTO> generateImages(SubFormImageRequest request) {
+//            results.add(builder.build());
+//}
+    public String generateImages(SubFormImageRequest request) {
         List<ImageResultDTO> results = new ArrayList<>();
 
         List<Map> formData = request.getFormData();
@@ -187,11 +192,12 @@ public class SubFormImageServiceImpl implements SubFormImageService {
                     .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_msmw2a66", task.getData().getFillTaskId())))
                     .build(), YDConf.FORM_OPERATION.update);
         }else {
+            McR<ResultQueryResult> resultQueryResultMcR = contractTemplateService.pollUntilComplete(task.getData().getFillTaskId(), 30, 1000);
 
+            return resultQueryResultMcR.getData().getDownloadUrl();
         }
 
-
-        return results;
+        return null;
     }
     @Autowired
     private YDClient ydClient;

+ 3 - 1
mjava-mankalong/src/main/java/com/malk/mankalong/service/SubFormImageService.java

@@ -2,6 +2,7 @@ package com.malk.mankalong.service;
 
 import com.malk.mankalong.entity.dto.ImageResultDTO;
 import com.malk.mankalong.entity.dto.SubFormImageRequest;
+import com.malk.server.common.McR;
 
 import java.util.List;
 import java.util.Map;
@@ -17,7 +18,8 @@ public interface SubFormImageService {
      * @param request 包含多个子表数据与 insertImageId 映射的请求
      * @return 每个映射的图片生成结果列表
      */
-    List<ImageResultDTO> generateImages(SubFormImageRequest request);
+    String generateImages(SubFormImageRequest request);
+//    List<ImageResultDTO> generateImages(SubFormImageRequest request);
 
     List<String> getFormFields(String formUuid);
 }