lwhhszx преди 1 година
родител
ревизия
381f6ec711
променени са 19 файла, в които са добавени 167 реда и са изтрити 64 реда
  1. 1 1
      src/main/java/com/example/xiaoshiweixinback/business/common/ResponseEnum.java
  2. 30 0
      src/main/java/com/example/xiaoshiweixinback/business/config/AsyncConfiguration.java
  3. 2 2
      src/main/java/com/example/xiaoshiweixinback/business/utils/parseQueryToTree/expressManager.java
  4. 3 3
      src/main/java/com/example/xiaoshiweixinback/controller/MonitoringController.java
  5. 3 1
      src/main/java/com/example/xiaoshiweixinback/controller/ProductCategoryController.java
  6. 3 1
      src/main/java/com/example/xiaoshiweixinback/controller/ProductController.java
  7. 1 0
      src/main/java/com/example/xiaoshiweixinback/domain/MonitorRecord.java
  8. 1 1
      src/main/java/com/example/xiaoshiweixinback/entity/vo/ProductVO.java
  9. 2 0
      src/main/java/com/example/xiaoshiweixinback/entity/vo/person/LoginVO.java
  10. 2 0
      src/main/java/com/example/xiaoshiweixinback/entity/websocket/WebSocketMessageVO.java
  11. 18 15
      src/main/java/com/example/xiaoshiweixinback/service/AssoPersonProductService.java
  12. 11 0
      src/main/java/com/example/xiaoshiweixinback/service/ImportTaskService.java
  13. 8 4
      src/main/java/com/example/xiaoshiweixinback/service/MonitorRecordService.java
  14. 13 3
      src/main/java/com/example/xiaoshiweixinback/service/MonitorService.java
  15. 23 2
      src/main/java/com/example/xiaoshiweixinback/service/ProductService.java
  16. 6 9
      src/main/java/com/example/xiaoshiweixinback/service/common/MessageService.java
  17. 24 14
      src/main/java/com/example/xiaoshiweixinback/service/importPatent/excel/ImportProductCategoryService.java
  18. 14 6
      src/main/java/com/example/xiaoshiweixinback/service/importPatent/excel/ImportProductService.java
  19. 2 2
      src/main/resources/mapper/ProductMapper.xml

+ 1 - 1
src/main/java/com/example/xiaoshiweixinback/business/common/ResponseEnum.java

@@ -21,7 +21,7 @@ public enum ResponseEnum {
     PATENT_PDF_EXPORT_TASK_DONE(605,"导出PDF首页完成"),
     LOGIN_ERROR(606,"登录错误"),
     BUSINESS_ERROR(607,"业务错误"),
-    IMPORT_TASK(111,"导入完成"),
+    IMPORT_TASK(111,"导入任务"),
     //es检索业务错误异常
     THE_RETRIEVAL_ERROR(608,"检索式错误");
 

+ 30 - 0
src/main/java/com/example/xiaoshiweixinback/business/config/AsyncConfiguration.java

@@ -0,0 +1,30 @@
+package com.example.xiaoshiweixinback.business.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+
+@Configuration
+@EnableAsync  // 启用异步任务
+public class AsyncConfiguration {
+    // 声明一个线程池(并指定线程池的名字)
+    @Bean("taskExecutor")
+    public Executor asyncExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        //核心线程数5:线程池创建时候初始化的线程数
+        executor.setCorePoolSize(5);
+        //最大线程数5:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
+        executor.setMaxPoolSize(5);
+        //缓冲队列500:用来缓冲执行任务的队列
+        executor.setQueueCapacity(500);
+        //允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
+        executor.setKeepAliveSeconds(60);
+        //线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
+        executor.setThreadNamePrefix("DailyAsync-");
+        executor.initialize();
+        return executor;
+	}
+}

+ 2 - 2
src/main/java/com/example/xiaoshiweixinback/business/utils/parseQueryToTree/expressManager.java

@@ -32,8 +32,8 @@ public class expressManager {
         oOR.Code = "NOT";
         oOR.ShowName = "NOT";
         oOR.type = enuType.Logic;
-        oOR.priorityVale = 12;
-        oOR.operateValue = 1;
+        oOR.priorityVale = 11;
+        oOR.operateValue = 2;
         hSymbols.put(oOR.Code, oOR);
 
         oOR = new operate();

+ 3 - 3
src/main/java/com/example/xiaoshiweixinback/controller/MonitoringController.java

@@ -45,7 +45,7 @@ public class MonitoringController {
     @PostMapping("/selectMonitoring")
     public Response selectMonitoring(@RequestBody SelectMonitoringDTO selectMonitoringDTO) {
        Records records= monitorService.selectMonitoring(selectMonitoringDTO);
-        return Response.success("");
+        return Response.success(records);
     }
 
     @Operation(summary = "取消监控")
@@ -59,8 +59,8 @@ public class MonitoringController {
     @PostMapping("/selectMonitoringRecord")
     public Response selectMonitoringRecord(@RequestBody MonitoringIdDTO monitoringDTO) {
         Integer id =monitoringDTO.getId();
-        List<MonitorRecord> monitorRecords =  monitorRecordService.getMonitorRecords(id);
-        return Response.success(monitorRecords);
+        Records records =  monitorRecordService.getMonitorRecords(id);
+        return Response.success(records);
     }
 
 }

+ 3 - 1
src/main/java/com/example/xiaoshiweixinback/controller/ProductCategoryController.java

@@ -113,7 +113,9 @@ public class ProductCategoryController {
         File newFile=  FileUtils.multipartFileToFile(file);
         ImportTask importTask =importTaskService.addImportTask(newFile,1);
         importProductCategoryService.importProductCategory(newFile,importTask);
-        return Response.success("records");
+        Records records =new Records();
+        records.setData(importTask);
+        return Response.success(records);
     }
 
 }

+ 3 - 1
src/main/java/com/example/xiaoshiweixinback/controller/ProductController.java

@@ -147,6 +147,8 @@ public class ProductController {
         File newFile=  FileUtils.multipartFileToFile(file);
         ImportTask importTask =importTaskService.addImportTask(newFile,2);
         importProductService.importProject(newFile,importTask);
-        return Response.success("records");
+        Records records =new Records();
+        records.setData(importTask);
+        return Response.success(records);
     }
 }

+ 1 - 0
src/main/java/com/example/xiaoshiweixinback/domain/MonitorRecord.java

@@ -40,5 +40,6 @@ public class MonitorRecord extends BaseEntity<MonitorRecord> {
      * 
      */
     private Integer num;
+    private String searchCondition;
 
 }

+ 1 - 1
src/main/java/com/example/xiaoshiweixinback/entity/vo/ProductVO.java

@@ -60,5 +60,5 @@ public class ProductVO {
     private String path;
     private Boolean ifShow;
     private String monitorPeriod;
-
+    private Boolean ifMonitor;
 }

+ 2 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/person/LoginVO.java

@@ -21,4 +21,6 @@ public class LoginVO {
     private String token;
 
     private Boolean ifFirst = false;
+
+    private String uuid;
 }

+ 2 - 0
src/main/java/com/example/xiaoshiweixinback/entity/websocket/WebSocketMessageVO.java

@@ -16,4 +16,6 @@ public class WebSocketMessageVO {
     private Integer state;
     private String createId;
     private Integer taskId;
+    private Integer type;
+    private Boolean ifComplete;
 }

+ 18 - 15
src/main/java/com/example/xiaoshiweixinback/service/AssoPersonProductService.java

@@ -35,20 +35,16 @@ public class AssoPersonProductService extends ServiceImpl<AssoPersonProductMappe
     public Integer add(AssoPersonProductDTO assoPersonProductDTO) {
         Integer productId =assoPersonProductDTO.getProductId();
         PersonnelVO personnelVO = cacheUtil.getLoginUser(LoginUtils.getToken());
-        checkAdmin();
-        LambdaQueryWrapper<AssoPersonProduct> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(AssoPersonProduct::getProductId,productId)
-                    .eq(AssoPersonProduct::getPersonUuid,personnelVO.getUuid());
-        AssoPersonProduct org =this.getOne(queryWrapper,false);
-        if(org!=null){
-            throw new BusinessException("607","不可重复关注该产品");
-        }
+      AssoPersonProduct assoPersonProduct =  checkAdmin(productId);
 
         if (ToolUtil.isNotEmpty(personnelVO)) {
-            AssoPersonProduct assoPersonProduct = new AssoPersonProduct();
-            BeanUtils.copyProperties(assoPersonProductDTO, assoPersonProduct);
-            assoPersonProduct.setPersonUuid(personnelVO.getUuid());
-            assoPersonProduct.insert();
+            if(assoPersonProduct==null) {
+                 assoPersonProduct = new AssoPersonProduct();
+                BeanUtils.copyProperties(assoPersonProductDTO, assoPersonProduct);
+                assoPersonProduct.setPersonUuid(personnelVO.getUuid());
+                assoPersonProduct.insert();
+            }
+
             return assoPersonProduct.getProductId();
         }
         return -1;
@@ -72,7 +68,8 @@ public class AssoPersonProductService extends ServiceImpl<AssoPersonProductMappe
         return -1;
     }
 
-    public void checkAdmin() {
+    public AssoPersonProduct checkAdmin(Integer productId) {
+       AssoPersonProduct assoPersonProduct =null;
         PersonnelVO personnelVO = cacheUtil.getLoginUser(LoginUtils.getToken());
         AssoPersonFunction assoPersonFunction = vipService.getAssoPersonFunction("6");
         if (assoPersonFunction == null) {
@@ -81,7 +78,13 @@ public class AssoPersonProductService extends ServiceImpl<AssoPersonProductMappe
         Integer totalNum = 5;
         FunctionConfig functionConfig = JSON.parseObject(assoPersonFunction.getFunctionParameter(), FunctionConfig.class);
         totalNum = functionConfig.getCanGetNum();
-
+        LambdaQueryWrapper<AssoPersonProduct> queryWrapper1 =new LambdaQueryWrapper<>();
+        queryWrapper1.eq(AssoPersonProduct::getProductId,productId)
+                .eq(AssoPersonProduct::getPersonUuid,personnelVO.getUuid());
+        AssoPersonProduct org =this.getOne(queryWrapper1,false);
+        if(org!=null){
+            return org;
+        }
         //查看关注的数量
         LambdaQueryWrapper<AssoPersonProduct> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(AssoPersonProduct::getPersonUuid, personnelVO.getUuid());
@@ -91,7 +94,7 @@ public class AssoPersonProductService extends ServiceImpl<AssoPersonProductMappe
             throw new BusinessException("606", "已超过可关注数量");
         }
 
-
+       return assoPersonProduct;
     }
 
     public Integer addAsso(AssoPersonProductDTO assoPersonProductDTO) {

+ 11 - 0
src/main/java/com/example/xiaoshiweixinback/service/ImportTaskService.java

@@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.example.xiaoshiweixinback.business.exception.BusinessException;
 import com.example.xiaoshiweixinback.business.utils.CacheUtil;
 import com.example.xiaoshiweixinback.business.utils.LoginUtils;
+import com.example.xiaoshiweixinback.business.utils.ReadExcelUtils;
 import com.example.xiaoshiweixinback.domain.ImportTask;
 import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
 import com.example.xiaoshiweixinback.mapper.ImportTaskMapper;
 import com.example.xiaoshiweixinback.service.common.FileManagerService;
 import lombok.RequiredArgsConstructor;
+import org.apache.poi.ss.usermodel.Sheet;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
@@ -29,6 +31,13 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
     public ImportTask addImportTask(File file, Integer type) {
         PersonnelVO personnelVO = cacheUtil.getLoginUser(LoginUtils.getToken());
         String[] names = file.getName().split("\\.");
+        Sheet sheet = ReadExcelUtils.readExcel(file);
+        Integer total =0;
+        try {
+             total = ReadExcelUtils.getExcelTotal(sheet);
+        }catch (Exception e ){
+            throw new BusinessException("607","获取文件错误");
+        }
 
         String name = names[0] + "导入任务";
         ImportTask importTask = new ImportTask();
@@ -41,6 +50,8 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         importTask.setTaskName(name);
         importTask.setImportType(type);
         importTask.setCreateId(personnelVO.getUuid());
+        importTask.setAllNum(total);
+        importTask.setStartNum(0);
         importTask.insert();
         return importTask;
 

+ 8 - 4
src/main/java/com/example/xiaoshiweixinback/service/MonitorRecordService.java

@@ -1,7 +1,9 @@
 package com.example.xiaoshiweixinback.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.xiaoshiweixinback.business.common.base.Records;
 import com.example.xiaoshiweixinback.domain.MonitorRecord;
 import com.example.xiaoshiweixinback.mapper.MonitorRecordMapper;
 import org.springframework.stereotype.Service;
@@ -16,12 +18,14 @@ import java.util.List;
 @Service
 public class MonitorRecordService extends ServiceImpl<MonitorRecordMapper, MonitorRecord> {
 
-    public List<MonitorRecord> getMonitorRecords(Integer monitorId) {
+    public Records getMonitorRecords(Integer monitorId) {
         LambdaQueryWrapper<MonitorRecord> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(MonitorRecord::getMonitorId, monitorId);
-        List<MonitorRecord> monitorRecords = this.list(queryWrapper);
-        return monitorRecords;
-
+        Page<MonitorRecord> monitorRecords = this.page(new Page<>(1, 10), queryWrapper);
+        Records records = new Records();
+        records.setData(monitorRecords.getRecords());
+        records.setTotal(monitorRecords.getTotal());
+        return records;
     }
 }
 

+ 13 - 3
src/main/java/com/example/xiaoshiweixinback/service/MonitorService.java

@@ -21,6 +21,8 @@ import com.example.xiaoshiweixinback.mapper.ProductMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.CachedIntrospectionResults;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -36,7 +38,9 @@ import java.util.List;
 public class MonitorService extends ServiceImpl<MonitorMapper, Monitor> {
 
     private final AssoPersonProductService assoPersonProductService;
-    private final ProductService productService;
+    @Lazy
+    @Autowired
+    private  ProductService productService;
     private final CacheUtil cacheUtil;
     private final ProductMapper productMapper;
     /**
@@ -63,9 +67,15 @@ public class MonitorService extends ServiceImpl<MonitorMapper, Monitor> {
             BeanUtils.copyProperties(addMonitoringDTO, productAddDTO);
             productId = productService.addOrUpdateProduct(productAddDTO);
         }
-
+          LambdaQueryWrapper<Monitor> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(Monitor::getCreateId,personnelVO.getUuid())
+                    .eq(Monitor::getProductId,productId);
+        Monitor monitor =this.getOne(queryWrapper,false);
+        if(monitor!=null){
+            return productId;
+        }
         //添加监控
-        Monitor monitor = new Monitor();
+         monitor = new Monitor();
         monitor.setCreateId(personnelVO.getUuid());
         monitor.setMonitorPeriod(monitorPeriod);
         monitor.setProductId(productId);

+ 23 - 2
src/main/java/com/example/xiaoshiweixinback/service/ProductService.java

@@ -20,6 +20,8 @@ import com.example.xiaoshiweixinback.mapper.ProductMapper;
 import com.example.xiaoshiweixinback.service.common.FileManagerService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -46,6 +48,9 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
     private final AssoPersonProductService assoPersonProductService;
     private final ProductCategoryService productCategoryService;
     private final AssoproductCategoryService assoproductCategoryService;
+    @Lazy
+    @Autowired
+    private final MonitorService monitorService;
 
     /**
      * 查询爆款产品
@@ -79,7 +84,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
         getProductDTO.setCurrent(current);
         getProductDTO.setSize(size);
         getProductDTO.setCategoryIds(ids);
-        if (personnelVO!=null&&!personnelVO.getPersonType().equals(0)) {
+        if (personnelVO != null && !personnelVO.getPersonType().equals(0)) {
             getProductDTO.setIfShow(true);
         }
         if (ids != null) {
@@ -115,7 +120,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
         List<Integer> ids = productVOS.stream().map(ProductVO::getId).collect(Collectors.toList());
         List<Integer> projectCategoryIds = productVOS.stream().map(ProductVO::getProductCategoryId).collect(Collectors.toList());
         List<SystemFile> systemFiles = new ArrayList<>();
-
+        List<Monitor> monitors = new ArrayList<>();
         if (ids.size() != 0) {
             //根据产品类别id获得产品类别与文件关联表
             LambdaQueryWrapper<AssoProductFile> queryWrapper = new LambdaQueryWrapper<>();
@@ -123,6 +128,13 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
             assoProductFiles = assoProductFileService.list(queryWrapper);
             guids = assoProductFiles.stream().map(AssoProductFile::getFileGuid).collect(Collectors.toList());
 
+            //
+            if (personnelVO != null) {
+                LambdaQueryWrapper<Monitor> monitorLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                monitorLambdaQueryWrapper.in(Monitor::getProductId, ids)
+                        .eq(Monitor::getCreateId, personnelVO.getUuid());
+                monitors = monitorService.list(monitorLambdaQueryWrapper);
+            }
         }
 
         //查询文件
@@ -189,6 +201,15 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
                     }
                 }
             }
+            //装载是否被监控
+            if (monitors.size() > 0) {
+                Monitor monitor = monitors.stream().filter(item -> item.getProductId().equals(productVO.getId())).findFirst().orElse(null);
+                if (monitor != null) {
+                    productVO.setIfMonitor(true);
+                } else {
+                    productVO.setIfMonitor(false);
+                }
+            }
         }
     }
 

+ 6 - 9
src/main/java/com/example/xiaoshiweixinback/service/common/MessageService.java

@@ -1,7 +1,6 @@
 package com.example.xiaoshiweixinback.service.common;
 
 
-
 import com.example.xiaoshiweixinback.business.common.Response;
 import com.example.xiaoshiweixinback.business.common.ResponseEnum;
 import com.example.xiaoshiweixinback.business.utils.WebSocketServer;
@@ -18,25 +17,23 @@ import org.springframework.stereotype.Service;
 public class MessageService {
 
 
-
-    //发送导出PDF首页消息
+    //发送任务信息
     public void sendImportTaskDone(WebSocketMessageVO webSocketMessageVO) {
         //通过WebSocket 在每一次循环结束后 向前端发送完成进度
         //当任务状态为完成时,flag为true
         long percentage = (long) Math.floor((webSocketMessageVO.getCurrentNum() + 0D) / webSocketMessageVO.getAllNum() * 100D);
-        boolean flag = webSocketMessageVO.getState().equals(2);
+        boolean flag = webSocketMessageVO.getIfComplete();
 
         TaskWebSocketDTO taskWebSocketDTO = new TaskWebSocketDTO();
         taskWebSocketDTO.setComplete(flag);
         taskWebSocketDTO.setIndex(webSocketMessageVO.getCurrentNum());
         taskWebSocketDTO.setPercentage(percentage);
         taskWebSocketDTO.setTaskId(webSocketMessageVO.getTaskId());
-        taskWebSocketDTO.setTaskStatus(webSocketMessageVO.getState());
-        if(flag) {
-            WebSocketServer.sendInfo(Response.websocket(taskWebSocketDTO, ResponseEnum.IMPORT_TASK), webSocketMessageVO.getCreateId());
-            return;
-        }
+        taskWebSocketDTO.setTotal(webSocketMessageVO.getAllNum());
+        taskWebSocketDTO.setTaskType(webSocketMessageVO.getType());
+
         WebSocketServer.sendInfo(Response.websocket(taskWebSocketDTO, ResponseEnum.IMPORT_TASK), webSocketMessageVO.getCreateId());
+
     }
 
 }

+ 24 - 14
src/main/java/com/example/xiaoshiweixinback/service/importPatent/excel/ImportProductCategoryService.java

@@ -2,6 +2,7 @@ package com.example.xiaoshiweixinback.service.importPatent.excel;
 
 import cn.hutool.core.util.IdUtil;
 import com.example.xiaoshiweixinback.business.exception.BusinessException;
+import com.example.xiaoshiweixinback.business.utils.CacheUtil;
 import com.example.xiaoshiweixinback.business.utils.FileUtils;
 import com.example.xiaoshiweixinback.business.utils.ReadExcelUtils;
 import com.example.xiaoshiweixinback.domain.ImportTask;
@@ -22,6 +23,7 @@ import org.apache.poi.ss.usermodel.PictureData;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
@@ -42,17 +44,24 @@ public class ImportProductCategoryService {
 
     @Autowired
     private ProductCategoryService productCategoryService;
-   @Autowired
-   private MessageService messageService;
+    @Autowired
+    private MessageService messageService;
+    @Autowired
+    private CacheUtil cacheUtil;
+
+    @Async("taskExecutor")
     public void importProductCategory(File tempFile, ImportTask importTask) {
         try {
-            PersonnelVO personnelVO = new PersonnelVO();
-            personnelVO.setUuid("123");
             Sheet sheet = ReadExcelUtils.readExcel(tempFile);
             Integer total = ReadExcelUtils.getExcelTotal(sheet);
 
             List<UploadSettingVO.Column> jsonData = excuteUploadSettingService.ExcuteUploadSetting("1", "uploadCategory.json");
 
+            WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
+            webSocketMessageVO.setType(importTask.getImportType());
+            webSocketMessageVO.setCreateId(importTask.getCreateId());
+            webSocketMessageVO.setTaskId(importTask.getId());
+            webSocketMessageVO.setAllNum(total);
             for (int i = 1; i < total; i++) {
                 PatentData patentData = ReadExcelUtils.readExcelOneRow2(tempFile, sheet, i);
                 Map<Object, Object> map = patentData.getMap();
@@ -63,24 +72,25 @@ public class ImportProductCategoryService {
                 List<PictureData> pictureDataList = patentData.getPictureDataList();
                 List<String> names = uploadParamsVO.getCategoryList();
                 if (names == null || names.size() == 0) {
-                      return;
+                    return;
                 }
 
 
-
                 EditCategoryDTO editCategoryDTO = this.loadCategoryAddVO(uploadParamsVO, pictureDataList);
                 try {
                     productCategoryService.editCategory(editCategoryDTO);
                 } catch (Exception e) {
                     continue;
                 }
-                WebSocketMessageVO webSocketMessageVO =new WebSocketMessageVO();
-                webSocketMessageVO.setTaskId(importTask.getId());
-                webSocketMessageVO.setAllNum(total);
-                webSocketMessageVO.setState(2);
-                webSocketMessageVO.setCreateId(importTask.getCreateId());
-              messageService.sendImportTaskDone(webSocketMessageVO);
+
+                webSocketMessageVO.setIfComplete(false);
+                webSocketMessageVO.setCurrentNum(i);
+                messageService.sendImportTaskDone(webSocketMessageVO);
             }
+
+            webSocketMessageVO.setIfComplete(true);
+            webSocketMessageVO.setCurrentNum(total);
+            messageService.sendImportTaskDone(webSocketMessageVO);
         } catch (Exception e) {
         }
 
@@ -108,8 +118,8 @@ public class ImportProductCategoryService {
 
         }
         editCategoryDTO.setFileGuids(fileIds);
-       editCategoryDTO.setName(productCategory.getName());
-        if(productCategory!=null) {
+        editCategoryDTO.setName(productCategory.getName());
+        if (productCategory != null) {
             editCategoryDTO.setId(productCategory.getId());
             editCategoryDTO.setParentId(productCategory.getParentId());
         }

+ 14 - 6
src/main/java/com/example/xiaoshiweixinback/service/importPatent/excel/ImportProductService.java

@@ -25,6 +25,7 @@ import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -55,6 +56,7 @@ public class ImportProductService {
     @Autowired
     private MessageService messageService;
 
+    @Async("taskExecutor")
     public void importProject(File tempFile, ImportTask importTask) {
         try {
             PersonnelVO personnelVO = new PersonnelVO();
@@ -63,7 +65,11 @@ public class ImportProductService {
             Integer total = ReadExcelUtils.getExcelTotal(sheet);
 
             List<UploadSettingVO.Column> jsonData = excuteUploadSettingService.ExcuteUploadSetting("1", "uploadProduct.json");
-
+            WebSocketMessageVO webSocketMessageVO =new WebSocketMessageVO();
+            webSocketMessageVO.setType(importTask.getImportType());
+            webSocketMessageVO.setCreateId(importTask.getCreateId());
+            webSocketMessageVO.setTaskId(importTask.getId());
+            webSocketMessageVO.setAllNum(total);
             for (int i = 1; i < total; i++) {
                 PatentData patentData = ReadExcelUtils.readExcelOneRow2(tempFile, sheet, i);
                 Map<Object, Object> map = patentData.getMap();
@@ -79,13 +85,15 @@ public class ImportProductService {
                 } catch (Exception e) {
                     continue;
                 }
-                WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
-                webSocketMessageVO.setTaskId(importTask.getId());
-                webSocketMessageVO.setAllNum(total);
-                webSocketMessageVO.setState(2);
-                webSocketMessageVO.setCreateId(importTask.getCreateId());
+
+                webSocketMessageVO.setIfComplete(false);
+                webSocketMessageVO.setCurrentNum(total);
                 messageService.sendImportTaskDone(webSocketMessageVO);
             }
+
+            webSocketMessageVO.setIfComplete(true);
+            webSocketMessageVO.setCurrentNum(total);
+            messageService.sendImportTaskDone(webSocketMessageVO);
         } catch (Exception e) {
         }
 

+ 2 - 2
src/main/resources/mapper/ProductMapper.xml

@@ -145,7 +145,7 @@
         left join product as p on app.product_id =p.id
         left join person as pe on p.create_id =pe.uuid
         <where>
-            app.person_uuid  = #{getProductDTO.personUuid}
+            app.create_id  = #{getProductDTO.personUuid}
             <if test="getProductDTO.name!=null and getProductDTO.name!=''">
                 and p.name like CONCAT('%',#{getProductDTO.name},'%')
             </if>
@@ -174,7 +174,7 @@
         left join product as p on app.product_id =p.id
         left join person as pe on p.create_id =pe.uuid
         <where>
-            app.person_uuid = #{getProductDTO.personUuid}
+            app.create_id = #{getProductDTO.personUuid}
             <if test="getProductDTO.name!=null and getProductDTO.name!=''">
                 and p.name like CONCAT('%',#{getProductDTO.name},'%')
             </if>