Browse Source

4/23 工单修改

lwhhszx 1 year ago
parent
commit
7f5fe6bc2a
24 changed files with 231 additions and 511 deletions
  1. 44 0
      src/main/java/com/example/xiaoshiweixinback/business/utils/ImageUtil.java
  2. 0 46
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/DataProcessHandler.java
  3. 0 5
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IProcessData.java
  4. 0 23
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IncoPatInventorAddressHandler.java
  5. 0 59
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IncoPatPatentAffairHandler.java
  6. 0 17
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IncoPatUCMainHandler.java
  7. 0 15
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IntegerHandler.java
  8. 0 42
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatSnapPatentAffairHandler.java
  9. 0 24
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatentTypeHandler.java
  10. 0 23
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatenticsAgencyAndAgentHandler.java
  11. 0 73
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatenticsPatentAffairHandler.java
  12. 0 18
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatenticsStringHandler.java
  13. 0 20
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/SplitBySerialNumberAndRemoveLineFeedHandler.java
  14. 0 28
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/SplitOriginalAndTranslationHandler.java
  15. 0 22
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/StringHandler.java
  16. 0 22
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/StringSpecialHandler.java
  17. 0 18
      src/main/java/com/example/xiaoshiweixinback/business/utils/handler/TimeHandler.java
  18. 10 1
      src/main/java/com/example/xiaoshiweixinback/controller/ImportPatentController.java
  19. 15 9
      src/main/java/com/example/xiaoshiweixinback/controller/ProductController.java
  20. 15 0
      src/main/java/com/example/xiaoshiweixinback/entity/product/HotProductDeleteDTO.java
  21. 42 27
      src/main/java/com/example/xiaoshiweixinback/service/ProductService.java
  22. 32 18
      src/main/java/com/example/xiaoshiweixinback/service/common/OPSService.java
  23. 72 0
      src/main/java/com/example/xiaoshiweixinback/service/importPatent/excel/GetOPSFileByExcelService.java
  24. 1 1
      src/main/resources/application-dev.yml

+ 44 - 0
src/main/java/com/example/xiaoshiweixinback/business/utils/ImageUtil.java

@@ -0,0 +1,44 @@
+package com.example.xiaoshiweixinback.business.utils;
+
+import com.example.xiaoshiweixinback.business.properties.BaseProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+@Component
+public class ImageUtil {
+
+    public BufferedImage getByUrl(String imageUrl) throws Exception {
+        URL url = new URL(imageUrl);
+        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
+        /**设置请求方式为"GET"*/
+        httpConn.setRequestMethod("GET");
+        /**超时响应时间为5秒*/
+        httpConn.setConnectTimeout(5 * 1000);
+        httpConn.connect();
+        InputStream is = httpConn.getInputStream();
+        // 读取图片
+        BufferedImage bufImage = ImageIO.read(is);
+        return bufImage;
+    }
+    public static BufferedImage getByByte( byte[] b) throws Exception {
+        ByteArrayInputStream in = new ByteArrayInputStream(b);    //将b作为输入流;
+        BufferedImage image = ImageIO.read(in);
+        return image;
+    }
+    public static File cutImage(BufferedImage bufferedImage, Integer x, Integer y, String name) throws Exception {
+        BufferedImage newBufferedImage = bufferedImage.getSubimage(x, y, bufferedImage.getWidth(), bufferedImage.getHeight()-300);
+        File imgCutFile = new File(name);
+        ImageIO.write(newBufferedImage, "jpeg", imgCutFile);
+        return imgCutFile;
+
+    }
+
+}

+ 0 - 46
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/DataProcessHandler.java

@@ -1,46 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-public class DataProcessHandler {
-    public interface IProcessData {
-        Object processData(Object data, Object code);
-    }
-
-    public DataProcessHandler() {
-    }
-
-    public static Object getData(String typeName, String jarOrClassPath) {
-
-        if (jarOrClassPath != null) {
-            try {
-                //用路径创建Url
-                URL url = new URL("file:" + jarOrClassPath);
-                //通过Url加载外部的jar包
-                URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});
-                Class<?> clazz = urlClassLoader.loadClass(typeName);
-                return clazz.newInstance();
-            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | MalformedURLException e) {
-                e.printStackTrace();
-            }
-        } else {
-            try {
-                return Class.forName(typeName).newInstance();
-            } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
-                e.printStackTrace();
-            }
-        }
-        return null;
-    }
-
-    public static void main(String[] args) {
-        System.out.println("启动成功");
-    }
-
-}
-
-
-
-

+ 0 - 5
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IProcessData.java

@@ -1,5 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-public interface IProcessData {
-    Object processData(Object data, Object code);
-}

+ 0 - 23
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IncoPatInventorAddressHandler.java

@@ -1,23 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.List;
-
-public class IncoPatInventorAddressHandler implements IProcessData {
-    public IncoPatInventorAddressHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object code) {
-        List<String> splitStr = StringUtils.changeStringToString(data.toString().replaceAll(" ", ""), ";");
-        if (code.toString().equals("1")) {
-            return splitStr;
-        } else if (code.toString().equals("2")) {
-            return splitStr.get(0);
-        }
-        return null;
-    }
-}

+ 0 - 59
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IncoPatPatentAffairHandler.java

@@ -1,59 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class IncoPatPatentAffairHandler implements IProcessData {
-    public IncoPatPatentAffairHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object code) {
-        String processedData = data.toString().replaceAll("\r\n", "");
-        List<String> contentList = StringUtils.changeStringToString(processedData, "([\\u4e00-\\u9fa5]+):");
-        contentList.remove(0);
-
-        List<String> tableList = new ArrayList<>();
-        Pattern p = Pattern.compile("([\\u4e00-\\u9fa5]+):");
-        Matcher m = p.matcher(data.toString());
-        while (m.find()) {
-            tableList.add(m.group(1));
-        }
-
-        StringBuilder all = new StringBuilder();
-        StringBuilder one = new StringBuilder();
-        for (int i = 0; i < tableList.size(); i++) {
-            if (tableList.get(i).contains("法律状态公告日")) {
-                if (!one.toString().equals("")) {
-                    if (!all.toString().equals("")) {
-                        all.append(",{").append(one).append("]").append("}");
-                    } else {
-                        all = new StringBuilder("{" + one + "]}");
-                    }
-                }
-                one = new StringBuilder();
-            }
-
-            if (one.toString().equals("")) {
-                one = new StringBuilder("\"inpadocData\"" + ":[" + "{" + "\"name\"" + ":" + "\"" + tableList.get(i) + "\"" + ",\"" + "content\"" + ":" + "\"" + contentList.get(i).replaceAll(";", "") + "\"" + "}");
-            } else {
-                one.append(",").append("{" + "\"name\"" + ":").append("\"").append(tableList.get(i)).append("\"" + "," + "\"" + "content\"" + ":" + "\"").append(contentList.get(i).replaceAll(";", "")).append("\"" + "}");
-            }
-
-        }
-        if (!one.toString().equals("")) {
-            if (!all.toString().equals("")) {
-                all.append(",{").append(one).append("]").append("}");
-            } else {
-                all = new StringBuilder("{" + one + "]}");
-            }
-        }
-        all = new StringBuilder("[" + all + "]");
-        return all.toString();
-    }
-}

+ 0 - 17
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IncoPatUCMainHandler.java

@@ -1,17 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.List;
-
-public class IncoPatUCMainHandler implements IProcessData {
-    public IncoPatUCMainHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        List<String> splitList = StringUtils.changeStringToString(data.toString(), splitSymbol.toString());
-        return splitList.get(0);
-    }
-}

+ 0 - 15
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/IntegerHandler.java

@@ -1,15 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-/**
- * @name 数字处理类
- * @description 1.传入的字符型数字数据转换为int型
- */
-public class IntegerHandler implements IProcessData {
-    public IntegerHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        return Integer.parseInt(data.toString());
-    }
-}

+ 0 - 42
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatSnapPatentAffairHandler.java

@@ -1,42 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.List;
-
-public class PatSnapPatentAffairHandler implements IProcessData {
-    public PatSnapPatentAffairHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object code) {
-        List<String> splitStr = StringUtils.changeStringToString(data.toString(), "\\|");
-        if (splitStr.size() % 3 != 0) {
-            return null;
-        }
-        StringBuilder all = new StringBuilder();
-        StringBuilder one = new StringBuilder();
-        for (int i = 0; i < splitStr.size(); i += 3) {
-            if (one.toString().equals("")) {
-                one = new StringBuilder("\"inpadocData\"" + ":[" + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"" + splitStr.get(i).trim() + "\"" + "}");
-            } else {
-                one.append("," + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"").append(splitStr.get(i).trim()).append("\"").append("}");
-            }
-            one.append(",{").append("\"name\":\"国家\"").append(",").append("\"content\":").append("\"").append(splitStr.get(i + 2).trim()).append("\"").append("}");
-            one.append("," + "{" + "\"name\"" + ":" + "\"内容\"" + "," + "\"content\"" + ":" + "\"").append(splitStr.get(i + 1).trim()).append("\"").append("}]");
-
-            if (!one.toString().equals("")) {
-                if (!all.toString().equals("")) {
-                    all.append(",{").append(one).append("}");
-                } else {
-                    all = new StringBuilder("{" + one + "}");
-                }
-            }
-            one = new StringBuilder();
-        }
-
-        all = new StringBuilder("[" + all + "]");
-        return all.toString();
-    }
-}

+ 0 - 24
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatentTypeHandler.java

@@ -1,24 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-/**
- * @name 专利类型处理类
- * @description 1.将传入的专利类型转换成不同的ID 2.目前这个没有用字典项的原因是因为不同数据源的叫法不一致 无法统一进行分类
- */
-public class PatentTypeHandler implements IProcessData {
-    public PatentTypeHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object ob) {
-        if (data.toString().contains("实用新型")) {
-            return "2";
-        } else if (data.toString().contains("发明申请") || data.toString().contains("发明公布")) {
-            return "1";
-        } else if (data.toString().contains("外观设计")) {
-            return "3";
-        } else if (data.toString().contains("授权")) {
-            return "4";
-        }
-        return null;
-    }
-}

+ 0 - 23
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatenticsAgencyAndAgentHandler.java

@@ -1,23 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.List;
-
-public class PatenticsAgencyAndAgentHandler implements IProcessData {
-    public PatenticsAgencyAndAgentHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object code) {
-        List<String> splitStr = StringUtils.changeStringToString(data.toString().replaceAll(" ", ""), ";");
-        if (code.toString().equals("1")) {
-            return splitStr.get(0);
-        } else if (code.toString().equals("2")) {
-            splitStr.remove(0);
-            return splitStr;
-        }
-        return null;
-    }
-}

+ 0 - 73
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatenticsPatentAffairHandler.java

@@ -1,73 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-public class PatenticsPatentAffairHandler implements IProcessData {
-    public PatenticsPatentAffairHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object code) {
-        List<String> splitStr = StringUtils.changeStringToString(data.toString(), "\n");
-        splitStr.removeIf(item -> item.equals(""));
-
-        List<String> processList = splitStr.stream().map(item -> item.replaceAll(" ", "\\|")).collect(Collectors.toList());
-
-        StringBuilder all = new StringBuilder();
-        StringBuilder one = new StringBuilder();
-        List<String> messageList;
-        Pattern p = Pattern.compile("[\\d]*");
-        int flag1 = 0;
-        for (int j = 0; j < processList.size(); j++) {
-            if (j < processList.size() - 1) {
-                Matcher m = p.matcher(processList.get(j).substring(0, 4));
-                if (m.matches()) {
-                    flag1 = j;
-                }
-                if (!m.matches()) {
-                    String replace = processList.get(j).replaceAll("\\|", " ");
-                    processList.set(flag1, processList.get(flag1) + "<br>" + replace);
-                    processList.set(j, replace);
-                }
-            }
-        }
-
-        for (String s : processList) {
-            messageList = StringUtils.changeStringToString(s, "\\|");
-
-            if (messageList.size() == 4 && messageList.contains("授权")) {
-                messageList.remove(0);
-            } else if (messageList.size() % 3 != 0) {
-                continue;
-            }
-
-            for (int i = 0; i < messageList.size(); i += 3) {
-                if (one.toString().equals("")) {
-                    one = new StringBuilder("\"inpadocData\"" + ":[" + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"" + messageList.get(i).trim() + "\"" + "}");
-                } else {
-                    one.append("," + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"").append(messageList.get(i).trim()).append("\"").append("}");
-                }
-                one.append(",{").append("\"name\":\"法律状态\"").append(",").append("\"content\":").append("\"").append(messageList.get(i + 1).trim()).append("\"").append("}");
-                one.append("," + "{" + "\"name\"" + ":" + "\"描述信息\"" + "," + "\"content\"" + ":" + "\"").append(messageList.get(i + 2).trim()).append("\"").append("}]");
-
-                if (!one.toString().equals("")) {
-                    if (!all.toString().equals("")) {
-                        all.append(",{").append(one).append("}");
-                    } else {
-                        all = new StringBuilder("{" + one + "}");
-                    }
-                }
-                one = new StringBuilder();
-            }
-
-        }
-        all = new StringBuilder("[" + all + "]");
-        return all.toString();
-    }
-}

+ 0 - 18
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/PatenticsStringHandler.java

@@ -1,18 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-public class PatenticsStringHandler implements IProcessData {
-    public PatenticsStringHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        if (!"".equals(splitSymbol)) {
-            return StringUtils.changeStringToString(data.toString().replaceAll(" ", "").replaceAll("\n", ""), splitSymbol.toString());
-        } else {
-            return data.toString().replaceAll(" ", "");
-        }
-    }
-}

+ 0 - 20
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/SplitBySerialNumberAndRemoveLineFeedHandler.java

@@ -1,20 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.Arrays;
-import java.util.stream.Collectors;
-
-public class SplitBySerialNumberAndRemoveLineFeedHandler implements IProcessData {
-    public SplitBySerialNumberAndRemoveLineFeedHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        return Arrays.stream(data.toString().replaceAll("\n", "").split(splitSymbol.toString()))
-                .filter(StringUtils::isNotEmpty)
-                .collect(Collectors.toList());
-    }
-}

+ 0 - 28
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/SplitOriginalAndTranslationHandler.java

@@ -1,28 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-import java.util.List;
-
-/**
- * @name
- * @description
- */
-public class SplitOriginalAndTranslationHandler implements IProcessData {
-    public SplitOriginalAndTranslationHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        List<String> splitList = StringUtils.changeStringToString(splitSymbol.toString(), ",");
-        if (splitList.get(0).equals("1")) {
-            return StringUtils.changeStringToString(data.toString(), splitList.get(1)).get(0);
-        } else if (splitList.get(0).equals("2")) {
-            if (StringUtils.changeStringToString(data.toString(), splitList.get(1)).size() == 2) {
-                return StringUtils.changeStringToString(data.toString(), splitList.get(1)).get(1);
-            }
-        }
-        return null;
-    }
-}

+ 0 - 22
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/StringHandler.java

@@ -1,22 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-/**
- * @name 一般字符串处理类
- * @description 1.带有分隔符按照分隔符拆分(去除所有空格) 2.不带分隔符直接返回原数据
- */
-public class StringHandler implements IProcessData {
-    public StringHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        if (!"".equals(splitSymbol)) {
-            return StringUtils.changeStringToString(data.toString().trim(), splitSymbol.toString());
-        } else {
-            return data.toString();
-        }
-    }
-}

+ 0 - 22
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/StringSpecialHandler.java

@@ -1,22 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.StringUtils;
-
-/**
- * @name 特殊字符串处理类
- * @description 1.带有分隔符按照分隔符拆分(去除 '>' 符号) 2.不带分隔符直接返回原数据 3.目前只有两个字段会使用 (1)标签(2)自定义字段
- */
-public class StringSpecialHandler implements IProcessData {
-    public StringSpecialHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        if (!"".equals(splitSymbol)) {
-            return StringUtils.changeStringToString(data.toString().replaceAll(">", ""), splitSymbol.toString());
-        } else {
-            return data.toString();
-        }
-    }
-}

+ 0 - 18
src/main/java/com/example/xiaoshiweixinback/business/utils/handler/TimeHandler.java

@@ -1,18 +0,0 @@
-package com.example.xiaoshiweixinback.business.utils.handler;
-
-
-import com.example.xiaoshiweixinback.business.utils.DateUtils;
-
-/**
- * @name 时间处理类
- * @description 1.将时间类型数据转换为int型 2.现支持格式为 yyyy-MM-dd yyyy/MM/dd 可后需添加
- */
-public class TimeHandler implements IProcessData {
-    public TimeHandler() {
-    }
-
-    @Override
-    public Object processData(Object data, Object splitSymbol) {
-        return DateUtils.getDateTime(data.toString());
-    }
-}

+ 10 - 1
src/main/java/com/example/xiaoshiweixinback/controller/ImportPatentController.java

@@ -7,6 +7,7 @@ import com.example.xiaoshiweixinback.entity.vip.ActiveVipDTO;
 import com.example.xiaoshiweixinback.entity.vip.PersonFunctionVO;
 import com.example.xiaoshiweixinback.entity.weixinPay.FunctionRightVO;
 import com.example.xiaoshiweixinback.service.VipService;
+import com.example.xiaoshiweixinback.service.importPatent.excel.GetOPSFileByExcelService;
 import com.example.xiaoshiweixinback.service.importPatent.excel.GetPatentFromSzService;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.RequiredArgsConstructor;
@@ -20,7 +21,7 @@ import java.util.List;
 @RestController
 @RequiredArgsConstructor
 public class ImportPatentController {
-    private final VipService vipService;
+    private final GetOPSFileByExcelService getOPSFileByExcelService;
 private final GetPatentFromSzService getPatentFromSzService;
     @Operation(summary = "查询会员")
     @GetMapping("/import")
@@ -35,4 +36,12 @@ private final GetPatentFromSzService getPatentFromSzService;
         getPatentFromSzService.test2(path);
         return Response.success("records");
     }
+
+
+    @Operation(summary = "根据专利号获取图片")
+    @GetMapping("/import3")
+    private Response importPatent3(String path) throws Exception {
+        getOPSFileByExcelService.test(path);
+        return Response.success("records");
+    }
 }

+ 15 - 9
src/main/java/com/example/xiaoshiweixinback/controller/ProductController.java

@@ -8,9 +8,7 @@ import com.example.xiaoshiweixinback.business.exception.BusinessException;
 import com.example.xiaoshiweixinback.checkLogin.checkLogin;
 import com.example.xiaoshiweixinback.domain.AssoPersonProduct;
 import com.example.xiaoshiweixinback.entity.dto.AssoPersonProductDTO;
-import com.example.xiaoshiweixinback.entity.product.HotProductAddDTO;
-import com.example.xiaoshiweixinback.entity.product.ProductAddDTO;
-import com.example.xiaoshiweixinback.entity.product.ProductDTO;
+import com.example.xiaoshiweixinback.entity.product.*;
 import com.example.xiaoshiweixinback.entity.vo.ProductVO;
 import com.example.xiaoshiweixinback.service.AssoPersonProductService;
 import com.example.xiaoshiweixinback.service.ProductService;
@@ -20,6 +18,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @Slf4j
 @RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/product")
 @RestController
@@ -109,12 +109,18 @@ public class ProductController {
 
 
     @checkLogin
-    @Operation(summary = "查看单个产品详情")
+    @Operation(summary = "上下架产品")
     @PostMapping("/updateProductIfShow")
-    public Response updateProductIfShow(Integer id) {
-        ProductVO productVO = productService.updateProductIfShow(id);
-        Records records =new Records();
-        records.setData(productVO);
-        return Response.success(records);
+    public Response updateProductIfShow(UpdateProductShowDTO updateProductShowDTO) {
+        List<Integer> ids= productService.updateProductIfShow(updateProductShowDTO);
+        return Response.success(ids);
+    }
+
+    @checkLogin
+    @Operation(summary = "删除产品")
+    @PostMapping("/deleteHotProduct")
+    public Response deleteHotProduct(HotProductDeleteDTO hotProductDeleteDTO) {
+        List<Integer> ids= productService.deleteHotProduct(hotProductDeleteDTO);
+        return Response.success(ids);
     }
 }

+ 15 - 0
src/main/java/com/example/xiaoshiweixinback/entity/product/HotProductDeleteDTO.java

@@ -0,0 +1,15 @@
+package com.example.xiaoshiweixinback.entity.product;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class HotProductDeleteDTO {
+
+    /**
+     * ID
+     */
+    private List<Integer> ids;
+
+}

+ 42 - 27
src/main/java/com/example/xiaoshiweixinback/service/ProductService.java

@@ -15,9 +15,7 @@ import com.example.xiaoshiweixinback.domain.AssoProductFile;
 import com.example.xiaoshiweixinback.domain.Product;
 import com.example.xiaoshiweixinback.entity.dto.AssoPersonProductDTO;
 import com.example.xiaoshiweixinback.entity.dto.GetProductDTO;
-import com.example.xiaoshiweixinback.entity.product.HotProductAddDTO;
-import com.example.xiaoshiweixinback.entity.product.ProductAddDTO;
-import com.example.xiaoshiweixinback.entity.product.ProductDTO;
+import com.example.xiaoshiweixinback.entity.product.*;
 import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
 import com.example.xiaoshiweixinback.entity.vo.ProductVO;
 import com.example.xiaoshiweixinback.mapper.ProductMapper;
@@ -67,7 +65,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
         List<Integer> ids = assoPersonCategoryService.getChoosedProductCategoryIds();
 
         GetProductDTO getProductDTO = new GetProductDTO();
-        BeanUtils.copyProperties(productDTO,getProductDTO);
+        BeanUtils.copyProperties(productDTO, getProductDTO);
         getProductDTO.setName(name);
         getProductDTO.setCurrent(current);
         getProductDTO.setSize(size);
@@ -158,7 +156,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
             assoPersonProductDTO.setConcernType(productAddDTO.getConcernType());
             Integer flag = assoPersonProductService.addAsso(assoPersonProductDTO);
         } else {
-            product = this.updateProduct(productAddDTO,productAddDTO.getId());
+            product = this.updateProduct(productAddDTO, productAddDTO.getId());
         }
         assoProductFileService.addOrUpdateProductFile(product.getId(), productAddDTO.getFileGuids());
         return product.getId();
@@ -176,7 +174,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public Product updateProduct(Object productAddDTO,Integer id) {
+    public Product updateProduct(Object productAddDTO, Integer id) {
         Product product = new Product();
         Product orgProduct = this.getById(id);
         BeanUtils.copyProperties(productAddDTO, product);
@@ -222,7 +220,6 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
     }
 
 
-
     @Transactional(rollbackFor = Exception.class)
     public Integer addOrUpdateHotProduct(HotProductAddDTO hotProductAddDTO) {
         Product product = new Product();
@@ -230,14 +227,13 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
             assoPersonProductService.checkAdmin();
             product = this.addProduct(hotProductAddDTO);
         } else {
-            product = this.updateProduct(hotProductAddDTO,hotProductAddDTO.getId());
+            product = this.updateProduct(hotProductAddDTO, hotProductAddDTO.getId());
         }
         assoProductFileService.addOrUpdateProductFile(product.getId(), hotProductAddDTO.getFileGuids());
         return product.getId();
     }
 
 
-
     /**
      * 根据id查询爆款专利
      *
@@ -245,13 +241,13 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
      * @return
      */
     public ProductVO queryHotProductDetail(Integer id) {
-        ProductVO productVO =new ProductVO();
-        Product product =this.getById(id);
-        if(product ==null){
-            return  productVO;
+        ProductVO productVO = new ProductVO();
+        Product product = this.getById(id);
+        if (product == null) {
+            return productVO;
         }
-        BeanUtils.copyProperties(product,productVO);
-        List<ProductVO> productVOS =new ArrayList<>();
+        BeanUtils.copyProperties(product, productVO);
+        List<ProductVO> productVOS = new ArrayList<>();
         productVOS.add(productVO);
         this.loadProduct(productVOS);
         return productVO;
@@ -259,22 +255,41 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
 
 
     /**
-     * 根据id查询爆款专利
+     * 上下架产品
      *
-     * @param id
+     * @param updateProductShowDTO
      * @return
      */
-    public ProductVO updateProductIfShow(Integer id) {
-        ProductVO productVO =new ProductVO();
-        Product product =this.getById(id);
-        if(product ==null){
-            return  productVO;
+    public List<Integer> updateProductIfShow(UpdateProductShowDTO updateProductShowDTO) {
+        List<Integer> ids = updateProductShowDTO.getIds();
+        Boolean ifShow = updateProductShowDTO.getIfShow();
+        if (ids == null || ids.size() == 0) {
+            return ids;
         }
-        BeanUtils.copyProperties(product,productVO);
-        List<ProductVO> productVOS =new ArrayList<>();
-        productVOS.add(productVO);
-        this.loadProduct(productVOS);
-        return productVO;
+        LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(Product::getId, ids);
+        List<Product> products = this.list(queryWrapper);
+        if (products.size() != 0) {
+            products.forEach(item -> item.setIfShow(ifShow));
+            this.updateBatchById(products);
+        }
+        return ids;
+    }
+
+
+    /**
+     * 批量删除产品
+     *
+     * @param hotProductDeleteDTO
+     * @return
+     */
+    public List<Integer> deleteHotProduct(HotProductDeleteDTO hotProductDeleteDTO) {
+        List<Integer> ids = hotProductDeleteDTO.getIds();
+        if (ids == null || ids.size() == 0) {
+            return ids;
+        }
+        this.removeBatchByIds(ids);
+        return ids;
     }
 }
 

+ 32 - 18
src/main/java/com/example/xiaoshiweixinback/service/common/OPSService.java

@@ -1,6 +1,8 @@
 package com.example.xiaoshiweixinback.service.common;
 
 import com.alibaba.fastjson.JSONObject;
+import com.example.xiaoshiweixinback.business.utils.FileUtil;
+import com.example.xiaoshiweixinback.business.utils.ImageUtil;
 import com.example.xiaoshiweixinback.business.utils.PatentNoUtil;
 import com.example.xiaoshiweixinback.entity.ops.*;
 import okhttp3.OkHttpClient;
@@ -8,7 +10,10 @@ import okhttp3.Request;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.awt.image.BufferedImage;
+import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
@@ -23,6 +28,7 @@ public class OPSService {
      */
     @Value("${OPSUrl}")
     private String OPSUrl;
+
     public byte[] getPatentFile(GetFuTuParamsDTO getFuTuParamsDTO) throws IOException {
         //String param = new Gson().toJson(getFuTuParamsDTO);
         //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
@@ -32,12 +38,13 @@ public class OPSService {
                 .readTimeout(60, TimeUnit.SECONDS)
                 .build();
         Request request = new Request.Builder()
-                .url(OPSUrl + "/api/OPSQuery/GetPatentFile?link=" + getFuTuParamsDTO .getLink() + "&page=" + getFuTuParamsDTO.getPage() + "&type=" + getFuTuParamsDTO.getType())
+                .url(OPSUrl + "/api/OPSQuery/GetPatentFile?link=" + getFuTuParamsDTO.getLink() + "&page=" + getFuTuParamsDTO.getPage() + "&type=" + getFuTuParamsDTO.getType())
                 .get()
                 .build();
         byte[] buffer = okHttpClient.newCall(request).execute().body().bytes();
         return buffer;
     }
+
     /**
      * 远程调用获取Image信息的接口
      *
@@ -53,15 +60,19 @@ public class OPSService {
                 .readTimeout(60, TimeUnit.SECONDS)
                 .build();
         Request request = new Request.Builder()
-                .url(OPSUrl + "/api/OPSQuery/GetImagesInfo?Pn=" + "USD942334S")
+                .url(OPSUrl + "/api/OPSQuery/GetImagesInfo?Pn=" + pn)
                 .get()
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
-    public byte[] getImages(String publicNo) throws IOException {
+    public List<ImagesInfoVO> getImageInfos(String publicNo) throws Exception {
+        List<ImagesInfoVO> images = new ArrayList<>();
         String res = this.getImagesInfo(publicNo);
         JSONObject jsonObject = JSONObject.parseObject(res);
+        if (res.equals("")) {
+            return images;
+        }
         String imageInfo = jsonObject.getString("data");
         // 删除第一个 `[`
         if (imageInfo.startsWith("[")) {
@@ -72,26 +83,29 @@ public class OPSService {
             imageInfo = imageInfo.substring(0, imageInfo.length() - 1);
         }
         GetImagesInfoVO getImagesInfoVO = JSONObject.parseObject(imageInfo, GetImagesInfoVO.class);
-        List<ImagesInfoVO> images = getImagesInfoVO.getImages();
-        if (!images.isEmpty()) {
-            ImagesInfoVO infoVO = images.stream().filter(item -> item.getImageType().equals("FirstPageClipping")).findFirst().orElse(null);
-            if (infoVO != null) {
+        images = getImagesInfoVO.getImages();
+        return images;
+    }
+
+
+    public void getImages(ImagesInfoVO image, String publicNo) throws Exception {
+        String rootPath = "D:\\patentImage\\202205-1-500\\";
+        if (image != null) {
+            Integer num = image.getNumberOfPages();
+            for (int i = 1; i < num + 1; i++) {
                 GetFuTuParamsDTO getFuTuParamsDTO = new GetFuTuParamsDTO();
-                getFuTuParamsDTO.setPage(1);
-                getFuTuParamsDTO.setType("image/png");
-                getFuTuParamsDTO.setLink(infoVO.getUrlLink());
+                getFuTuParamsDTO.setPage(i);
+                getFuTuParamsDTO.setType("application/tiff");
+                getFuTuParamsDTO.setLink(image.getUrlLink());
                 byte[] buffer = this.getPatentFile(getFuTuParamsDTO);
-                if (buffer != null) {
-                    return buffer;
-                } else {
-                    return null;
-                }
-            } else {
-                return null;
+               BufferedImage bufferedImage= ImageUtil.getByByte(buffer);
+               String name =rootPath + publicNo + "_" + (i - 1) + ".jpg";
+                ImageUtil.cutImage(bufferedImage,0,300,name);
             }
         } else {
-            return null;
+            return;
         }
+
     }
 
 

+ 72 - 0
src/main/java/com/example/xiaoshiweixinback/service/importPatent/excel/GetOPSFileByExcelService.java

@@ -0,0 +1,72 @@
+package com.example.xiaoshiweixinback.service.importPatent.excel;
+
+import cn.hutool.core.util.IdUtil;
+import com.example.xiaoshiweixinback.business.utils.ExcelUtils;
+import com.example.xiaoshiweixinback.business.utils.FileUtils;
+import com.example.xiaoshiweixinback.business.utils.ReadExcelUtils;
+import com.example.xiaoshiweixinback.entity.dto.patent.UploadPatentWebDTO;
+import com.example.xiaoshiweixinback.entity.ops.ImagesInfoVO;
+import com.example.xiaoshiweixinback.service.common.OPSService;
+import com.example.xiaoshiweixinback.service.importPatent.GetPatentFromExcelService;
+import com.example.xiaoshiweixinback.service.importPatent.GetPatentPictureFromExcelService;
+import com.example.xiaoshiweixinback.service.importPatent.SavePatentToEsService;
+import org.apache.poi.ss.usermodel.PictureData;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class GetOPSFileByExcelService {
+    @Autowired
+    private ExcuteUploadSettingService excuteUploadSettingService;
+    @Autowired
+    private GetPatentFromExcelService getPatentFromExcelService;
+    @Autowired
+    private OPSService opsService;
+
+    public void test(String pathStr) throws Exception {
+        String[] paths = pathStr.split(",");
+        String rootPath = "D:\\usa_patent\\202205-3498\\";
+        for (int t = 0; t < paths.length; t++) {
+            String path = paths[t];
+            File tempFile = new File(rootPath + path);
+
+            Sheet sheet = ReadExcelUtils.readExcel(tempFile);
+            int total = sheet.getPhysicalNumberOfRows() - 1;
+            Row firstRow = sheet.getRow(0);
+            int columns = firstRow.getLastCellNum();
+
+            List<UploadSettingVO.Column> jsonData = excuteUploadSettingService.ExcuteUploadSetting(5 + "");
+
+            for (int r = 0; r < total; r++) {
+                Row needRow = sheet.getRow(r + 1);
+                Map<Object, Object> map = new HashMap<>();
+                for (int i = 0; i < columns; i++) {
+                    map.put(firstRow.getCell(i) + "", ExcelUtils.getValue(needRow.getCell(i)) + "");
+                }
+                UploadParamsVO uploadParamsVO = UploadPatentBatchUtil.processData(map, jsonData);
+                getPatentFromExcelService.loadPatent(uploadParamsVO);
+                String publicNo = uploadParamsVO.getPatent().getPublicNo();
+                String appNo = uploadParamsVO.getPatent().getAppNo();
+                if (publicNo == null) {
+                    System.out.println("no patent");
+                } else {
+                    List<ImagesInfoVO> imagesInfoVOS = opsService.getImageInfos(publicNo);
+                    ImagesInfoVO infoVO = imagesInfoVOS.stream().filter(item -> item.getImageType().equals("Drawing")).findFirst().orElse(null);
+                    opsService.getImages(infoVO, appNo);
+                }
+                System.out.println(r);
+            }
+        }
+
+    }
+
+
+}

+ 1 - 1
src/main/resources/application-dev.yml

@@ -63,7 +63,7 @@ spring:
       initialize-schema: always
 authorUrl: http://localhost:8871
 PCSUrl: http://localhost:8871
-OPSUrl: http://192.168.1.24:5001
+OPSUrl: http://139.224.24.90:5001
 #OPSUrl: http://139.224.24.90:5001
 PASUrl: http://localhost:8877
 FMSUrl: http://localhost:8802