floe 6 miesięcy temu
rodzic
commit
f6a406b7cf

+ 47 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/controller/YdYsController.java

@@ -0,0 +1,47 @@
+package com.malk.lanyun.controller;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.lang.UUID;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSONObject;
+import com.malk.lanyun.entity.Budget;
+import com.malk.lanyun.listener.BudgetListener;
+import com.malk.server.common.McException;
+import com.malk.server.common.McR;
+import com.malk.service.aliwork.YDClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 宜搭传入预算文件解析
+ * @author floe
+ * @date 2024/12/2 21:14
+ */
+
+@Slf4j
+@RestController
+@RequestMapping("/yd/")
+public class YdYsController {
+
+    @Autowired
+    private YDClient ydClient;
+
+    @PostMapping("saveYsDataByFile")
+    public McR saveYsDataByFile(@RequestBody JSONObject param) {
+        log.info("解析预算文件,入参: {} ", param);
+        McException.assertParamException_Null(param,"url","type","yearStr","year");
+        String id= UUID.randomUUID().toString();
+        String fileName = "/home/"+id+".xlsx";
+        String url=ydClient.convertTemporaryUrl(param.getString("url"));
+        HttpUtil.downloadFile(url,fileName);
+        EasyExcel.read(fileName, Budget.class, new BudgetListener(ydClient,param.getString("type"),param.getString("yearStr"),param.getString("year"))).sheet().headRowNumber(3).doRead();
+        FileUtil.del(fileName);
+        return McR.success();
+    }
+
+}

+ 3 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/listener/BudgetListener.java

@@ -110,7 +110,9 @@ public class BudgetListener extends AnalysisEventListener<Budget> {
                 saveYearAndKmbm(totalYs,budget.getKmbm(),kmdl,kmmc);
             }
         }
-        saveYear(totalYearYs);
+        if(!totalYearYs.equals("0")){
+            saveYear(totalYearYs);
+        }
         System.out.println("存储数据库成功!");
     }
 

+ 8 - 2
mjava-lanyun/src/test/java/ysTest.java

@@ -1,3 +1,5 @@
+import cn.hutool.core.lang.UUID;
+import cn.hutool.http.HttpUtil;
 import com.alibaba.excel.EasyExcel;
 import com.malk.lanyun.Boot;
 import com.malk.lanyun.entity.Budget;
@@ -21,10 +23,14 @@ public class ysTest {
 
     @Test
     public void test(){
-        String fileName = "/home/lanyunys - 副本.xlsx";
-        // 这里默认读取第一个sheet
+        String id= UUID.randomUUID().toString();
+        String fileName = "/home/"+id+".xlsx";
+        String url=ydClient.convertTemporaryUrl("/ossFileHandle?appType=APP_ERBDTFS82HOVBPL3NFH0&fileName=APP_ERBDTFS82HOVBPL3NFH0_MDk1MzU4MDE2Ni0xNDE2MzIxNDg1XzlFQTY2OUQxMzFRUUgxWEI4MUJWWjc3ODE3TTcyWVIwQTE3NE1USg$$.xlsx&instId=&type=download");
+        HttpUtil.downloadFile(url,fileName);
         EasyExcel.read(fileName, Budget.class, new BudgetListener(ydClient,"测试","2048","2147512448000")).sheet().headRowNumber(3).doRead();
 //        EasyExcel.read(fileName,new NoModleDataListener()).sheet().headRowNumber(3).doRead();
+
+
     }
 
 

+ 2 - 2
mjava/src/main/java/com/malk/service/aliwork/impl/YDClientImpl.java

@@ -134,11 +134,11 @@ public class YDClientImpl implements YDClient {
     @Override
     public String convertTemporaryUrl(String url, int timeout) {
         Map param = new HashMap();
-        param.put("systemToken", ydConf.getSystemToken());
+        param.put("systemToken", ydConf.getSystemToken()==null?"RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP":ydConf.getSystemToken());
         param.put("userId", YDConf.PUB_ACCOUNT);
         param.put("fileUrl", url);          // URL在param上时, 需要编码 [UtilHttp已经做了编码] - URLEncoder.encode(url, "UTF-8")
         param.put("timeout", timeout);      // 默认1分钟, 最大24小时 [毫秒]
-        return (String) DDR_New.doGet("https://api.dingtalk.com/v1.0/yida/apps/temporaryUrls/" + ydConf.getAppType(), ddClient.initTokenHeader(), param).getResult();
+        return (String) DDR_New.doGet("https://api.dingtalk.com/v1.0/yida/apps/temporaryUrls/" + (ydConf.getAppType()==null?"APP_ERBDTFS82HOVBPL3NFH0":ydConf.getAppType()), ddClient.initTokenHeader(), param).getResult();
     }
 
     @Override