tianyun hai 1 ano
pai
achega
a6b910fce4

+ 1 - 0
springboot-main/src/main/java/com/alvin/Application.java

@@ -8,5 +8,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 public class Application {
     public static void main(String[] args) throws Exception {
         SpringApplication.run(Application.class);
+
     }
 }

+ 28 - 0
springboot-main/src/main/java/com/alvin/controller/UserController.java

@@ -1,9 +1,12 @@
 package com.alvin.controller;
 
+import com.alvin.util.DateUtil;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.concurrent.ConcurrentHashMap;
+
 @RestController
 @RequestMapping("user")
 public class UserController {
@@ -11,4 +14,29 @@ public class UserController {
     public String test1(Integer age) {
         return age + "!";
     }
+
+    public volatile ConcurrentHashMap<String, String> flags=new ConcurrentHashMap<>();
+
+    @GetMapping("startPrint")
+    public String startPrint(String flag) {
+        flags.put(flag, flag);
+        new Thread(() -> {
+            while (flags.contains(flag)) {
+                try {
+                    Thread.sleep(1000);
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+                System.out.println(flag + DateUtil.getEpochMilli());
+            }
+        }).start();
+        return "1";
+    }
+
+    @GetMapping("cancelPrint")
+    public String cancelPrint(String flag) {
+        flags.remove(flag);
+        return "ok";
+    }
+
 }

+ 0 - 15
springboot-main/src/main/java/com/alvin/dao/DbKafkaDao.java

@@ -1,15 +0,0 @@
-package com.alvin.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.alvin.entity.DbKafka;
-
-/**
- * (DbKafka)表数据库访问层
- *
- * @author makejava
- * @since 2022-06-04 14:51:56
- */
-public interface DbKafkaDao extends BaseMapper<DbKafka> {
-
-}
-

+ 0 - 30
springboot-main/src/main/java/com/alvin/entity/DbKafka.java

@@ -1,30 +0,0 @@
-package com.alvin.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-/**
- * (DbKafka)表实体类
- *
- * @author makejava
- * @since 2022-06-04 14:51:56
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DbKafka extends Model<DbKafka> {
-    @TableId(type = IdType.AUTO)
-    private Integer id;
-    private String name;
-    private String jsonStr;
-    @TableLogic
-    private Integer isDelete;
-}
-

+ 0 - 15
springboot-main/src/main/java/com/alvin/service/DbKafkaService.java

@@ -1,15 +0,0 @@
-package com.alvin.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.alvin.entity.DbKafka;
-
-/**
- * (DbKafka)表服务接口
- *
- * @author makejava
- * @since 2022-06-04 14:51:56
- */
-public interface DbKafkaService extends IService<DbKafka> {
-
-}
-

+ 0 - 19
springboot-main/src/main/java/com/alvin/service/impl/DbKafkaServiceImpl.java

@@ -1,19 +0,0 @@
-package com.alvin.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.alvin.dao.DbKafkaDao;
-import com.alvin.entity.DbKafka;
-import com.alvin.service.DbKafkaService;
-import org.springframework.stereotype.Service;
-
-/**
- * (DbKafka)表服务实现类
- *
- * @author makejava
- * @since 2022-06-04 14:51:56
- */
-@Service("dbKafkaService")
-public class DbKafkaServiceImpl extends ServiceImpl<DbKafkaDao, DbKafka> implements DbKafkaService {
-
-}
-

+ 50 - 0
springboot-main/src/main/java/com/alvin/util/ThreadLocalUtil.java

@@ -0,0 +1,50 @@
+package com.alvin.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ThreadLocalUtil {
+
+
+    /**
+     * 定义线程变量
+     */
+    private static final InheritableThreadLocal<Map<String, String>> headerMap =
+            new InheritableThreadLocal<Map<String, String>>() {
+                @Override
+                protected Map<String, String> initialValue() {
+                    return new HashMap<>();
+                }
+            };
+
+    /**
+     * 获取所有共享变量
+     *
+     * @return 共享Map
+     */
+    public static Map<String, String> get() {
+        return headerMap.get();
+    }
+
+    /**
+     * 获取共享变量指定key的value值
+     *
+     * @param key key
+     * @return
+     */
+    public static String get(String key) {
+        return headerMap.get().get(key);
+    }
+
+    /**
+     * 设置共享变量值
+     *
+     * @param key
+     * @param value
+     */
+    public static void set(String key, String value) {
+        headerMap.get().put(key, value);
+    }
+
+
+}

+ 40 - 0
test1/src/main/java/FileToBase64.java

@@ -0,0 +1,40 @@
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Base64;
+
+public class FileToBase64 {
+    public static String convertToBase64(String filePath) throws IOException {
+        try (FileInputStream fileInputStream = new FileInputStream(filePath);
+             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
+
+            byte[] buffer = new byte[4096];
+            int bytesRead;
+            while ((bytesRead = fileInputStream.read(buffer)) != -1) {
+                byteArrayOutputStream.write(buffer, 0, bytesRead);
+            }
+
+            byte[] fileBytes = byteArrayOutputStream.toByteArray();
+            return Base64.getEncoder().encodeToString(fileBytes);
+        }
+    }
+
+    public static void convertToFile(String base64String, String filePath) throws IOException {
+        byte[] fileBytes = Base64.getDecoder().decode(base64String);
+
+        try (FileOutputStream fileOutputStream = new FileOutputStream(filePath)) {
+            fileOutputStream.write(fileBytes);
+        }
+    }
+
+    public static void main(String[] args) {
+        try {
+            String filePath = "/Users/alvin/Downloads/太原华远餐饮管理有限公司-山西小企业会计准则会计报表(展示)-202212.pdf";
+            String base64String = convertToBase64(filePath);
+            System.out.println("Base64 String: " + base64String);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 19 - 1
test1/src/main/java/RecommendationSystemTest.java

@@ -1,3 +1,4 @@
+import jnr.ffi.annotations.In;
 import org.junit.Test;
 
 import java.util.*;
@@ -70,6 +71,16 @@ public class RecommendationSystemTest {
     public void testByExcel() {
         LinkedList<Map<String, Object>> list = ExcelUtil.readExcel("/Users/alvin/Downloads/授用信各资方家数表.xlsx", "用信家数明细表", 0, 0);
 
+        HashMap<String, Object> olds = new HashMap<>();
+        for (Map<String, Object> map : list) {
+            for (String s : map.keySet()) {
+                if (map.get(s) != null && !"企业名称".equalsIgnoreCase(s)) {
+                    olds.put(map.get("企业名称") + s, (int) Double.parseDouble(map.get(s) + ""));
+                }
+            }
+        }
+
+
         HashSet<String> ignore = new HashSet<>();
         ignore.add("企业名称");
         ignore.add("总计");
@@ -99,9 +110,16 @@ public class RecommendationSystemTest {
             Map<String, Double> recommendations = rs.recommendItems(companyName);
             recommendations.entrySet().removeIf(entry -> entry.getValue() == 0.0);
 
+
             HashMap<String, Object> map = new HashMap<>();
-            map.put("企业名称", companyName);
             map.putAll(recommendations);
+
+            for (String s : map.keySet()) {
+                if (olds.containsKey(companyName + s)) {
+                    map.put(s, "已有业务: " + olds.get(companyName + s));
+                }
+            }
+            map.put("企业名称", companyName);
             outRes.add(map);
         }