Просмотр исходного кода

事件增删改查,分组查询基本架构搭建

lwhhszx 1 год назад
Родитель
Сommit
cf8bf647b9
32 измененных файлов с 798 добавлено и 246 удалено
  1. 4 2
      src/main/java/cn/cslg/pas/common/dto/business/EventDTO.java
  2. 17 0
      src/main/java/cn/cslg/pas/common/model/cronModel/GroupConfig.java
  3. 18 0
      src/main/java/cn/cslg/pas/common/model/cronModel/GroupVO.java
  4. 17 0
      src/main/java/cn/cslg/pas/common/model/request/GroupRequest.java
  5. 13 0
      src/main/java/cn/cslg/pas/common/model/request/MapGroupRequest.java
  6. 12 0
      src/main/java/cn/cslg/pas/common/model/request/StringGroupRequest.java
  7. 111 0
      src/main/java/cn/cslg/pas/common/utils/CacheUtils.java
  8. 5 4
      src/main/java/cn/cslg/pas/common/utils/Response.java
  9. 3 1
      src/main/java/cn/cslg/pas/common/utils/ResponseEnum.java
  10. 1 1
      src/main/java/cn/cslg/pas/controller/CommonController.java
  11. 16 6
      src/main/java/cn/cslg/pas/controller/EventController.java
  12. 5 5
      src/main/java/cn/cslg/pas/controller/ProductCategoryController.java
  13. 30 0
      src/main/java/cn/cslg/pas/domain/business/AssoEventFile.java
  14. 12 8
      src/main/java/cn/cslg/pas/domain/business/Event.java
  15. 3 3
      src/main/java/cn/cslg/pas/factorys/businessFactory/Business.java
  16. 11 13
      src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetCreateNameOrder.java
  17. 24 0
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetComGroup.java
  18. 22 0
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/QueryGroupFactory.java
  19. 11 0
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/QueryGroupImp.java
  20. 16 0
      src/main/java/cn/cslg/pas/mapper/AssoEventFileMapper.java
  21. 1 0
      src/main/java/cn/cslg/pas/mapper/EventMapper.java
  22. 0 139
      src/main/java/cn/cslg/pas/service/FileManagerService.java
  23. 12 0
      src/main/java/cn/cslg/pas/service/business/AssoEventFileService.java
  24. 154 8
      src/main/java/cn/cslg/pas/service/business/EventService.java
  25. 7 0
      src/main/java/cn/cslg/pas/service/business/ProductCategoryService.java
  26. 148 0
      src/main/java/cn/cslg/pas/service/common/FileManagerService.java
  27. 0 1
      src/main/java/cn/cslg/pas/service/importPatent/ProjectImportService.java
  28. 20 1
      src/main/resources/jsons/event.json
  29. 11 0
      src/main/resources/jsons/event_group.json
  30. 6 0
      src/main/resources/mapper/Event.xml
  31. 88 0
      src/test/java/cn/cslg/pas/service/EventServiceTests.java
  32. 0 54
      src/test/java/cn/cslg/pas/service/PatentPDFServiceTests.java

+ 4 - 2
src/main/java/cn/cslg/pas/common/dto/business/EventDTO.java

@@ -19,15 +19,17 @@ import org.joda.time.DateTime;
 /*数据库中的表对应的类
  */
 public class EventDTO {
+    @Schema(description = "id")
+    private Integer id;
     @Schema(description = "名称")
  private String name;
+    @Schema(description = "描述")
+    private String description;
     @Schema(description = "客户id")
  private Integer clientId;
     @Schema(description = "场景id")
  private Integer scenarioId;
     @Schema(description = "发生时间")
  private DateTime eventDate;
-    @Schema(description = "发生时间")
- private Integer eventId;
 
 }

+ 17 - 0
src/main/java/cn/cslg/pas/common/model/cronModel/GroupConfig.java

@@ -0,0 +1,17 @@
+package cn.cslg.pas.common.model.cronModel;
+
+import lombok.Data;
+
+/**
+ * 获得排序配置类
+ */
+@Data
+public class GroupConfig {
+    /**
+     * ID
+     */
+    private String field;
+    private String sqlField;
+    private String groupClass;
+
+}

+ 18 - 0
src/main/java/cn/cslg/pas/common/model/cronModel/GroupVO.java

@@ -0,0 +1,18 @@
+package cn.cslg.pas.common.model.cronModel;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 获得排序配置类
+ */
+@Data
+public class GroupVO {
+    /**
+     * ID
+     */
+    private String field;
+    private List<String> values;
+
+}

+ 17 - 0
src/main/java/cn/cslg/pas/common/model/request/GroupRequest.java

@@ -0,0 +1,17 @@
+package cn.cslg.pas.common.model.request;
+
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+public class GroupRequest {
+
+    private Long current;
+    private Long size;
+    private List<OrderDTO> orderDTOList;
+    private String groupBy;
+}

+ 13 - 0
src/main/java/cn/cslg/pas/common/model/request/MapGroupRequest.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.model.request;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+@Accessors(chain = true)
+public class MapGroupRequest extends GroupRequest{
+  private List<Map<String,Object>> searchQuery;
+}

+ 12 - 0
src/main/java/cn/cslg/pas/common/model/request/StringGroupRequest.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.model.request;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class StringGroupRequest extends GroupRequest{
+  private   String searchQuery;
+  private String groupBy;
+
+}

+ 111 - 0
src/main/java/cn/cslg/pas/common/utils/CacheUtils.java

@@ -0,0 +1,111 @@
+package cn.cslg.pas.common.utils;
+
+import cn.cslg.pas.common.core.base.RedisConf;
+
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+
+import cn.dev33.satoken.exception.NotLoginException;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.crypto.SecureUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@Component
+public class CacheUtils {
+
+    @Resource
+    private RedisUtil redisUtil;
+
+
+
+
+
+    public PersonnelVO getLoginUser(Object userId) {
+        String json = redisUtil.get(RedisConf.LOGIN_USER + RedisConf.SYMBOL_COLON + userId);
+        if (StringUtils.isEmpty(json)) {
+            throw new NotLoginException("无数据", "user", "");
+        } else {
+            return com.alibaba.fastjson2.JSONObject.parseObject(json, PersonnelVO.class);
+        }
+    }
+
+    public  PersonnelVO getLoginUserPersonnel(Object userId) {
+        String json = redisUtil.get(RedisConf.LOGIN_USER + RedisConf.SYMBOL_COLON + userId);
+        if (StringUtils.isEmpty(json)) {
+            throw new NotLoginException("无数据", "user", "");
+        } else {
+            return com.alibaba.fastjson2.JSONObject.parseObject(json, PersonnelVO.class);
+        }
+    }
+
+    public String getSelectPatentIds(String patentKey) {
+        return redisUtil.get(RedisConf.SELECT_PATENT + RedisConf.SYMBOL_COLON + patentKey);
+    }
+
+    public Integer getSelectPatentNum(String patentKey) {
+        String ids = getSelectPatentIds(patentKey);
+        if (StringUtils.isEmpty(ids)) {
+            return 0;
+        }
+        return StringUtils.changeStringToInteger(ids, ",").size();
+    }
+
+    public void setAnalysisCountV2(String patentKey, Integer field, Integer expand, String value, String ids) {
+        String md5 = SecureUtil.md5(field + RedisConf.SYMBOL_COLON + expand + RedisConf.SYMBOL_COLON + patentKey);
+        String key = RedisConf.ANALYSIS_COUNT + RedisConf.SYMBOL_COLON + md5;
+        if (StringUtils.isNotEmpty(value) && StringUtils.isNotEmpty(ids)) {
+            redisUtil.hPut(key, value, ids);
+            redisUtil.expire(key, 7200, TimeUnit.SECONDS);
+        }
+    }
+
+    public Object getAnalysisCountIdsV2(String patentKey, Integer field, Integer expand, String name) {
+        String md5 = SecureUtil.md5(field + RedisConf.SYMBOL_COLON + expand + RedisConf.SYMBOL_COLON + patentKey);
+        String key = RedisConf.ANALYSIS_COUNT + RedisConf.SYMBOL_COLON + md5;
+        return redisUtil.hGet(key, name);
+    }
+
+
+
+    public List<Tree> setAreaTreeList(List<Tree<Integer>> treeList) {
+        redisUtil.set(RedisConf.COMMON_DATA + RedisConf.SYMBOL_COLON + RedisConf.AREA_LIST, JsonUtils.objectToJson(treeList));
+        return this.getAreaTreeList();
+    }
+
+    public List<Tree> getAreaTreeList() {
+        String json = redisUtil.get(RedisConf.COMMON_DATA + RedisConf.SYMBOL_COLON + RedisConf.AREA_LIST);
+        if (StringUtils.isNotEmpty(json)) {
+            return JsonUtils.jsonToList(json, Tree.class);
+        }
+        return null;
+    }
+
+    public String setSelectPatentIds(List<Integer> patentIds) {
+        String uuid = IdUtil.simpleUUID();
+        redisUtil.setEx(RedisConf.SELECT_PATENT + RedisConf.SYMBOL_COLON + uuid, StringUtils.join(patentIds, ","), 43200, TimeUnit.SECONDS);
+        return uuid;
+    }
+
+    public void deleteUserSystemFieldSetting(Integer projectId, String type, String view, Integer userId,Integer createId) {
+        String key = SecureUtil.md5(projectId + RedisConf.SYMBOL_COLON + type + RedisConf.SYMBOL_COLON + view + RedisConf.SYMBOL_COLON + userId+createId);
+        redisUtil.delete(RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key);
+    }
+
+    public void setUserImportId(Integer userId, Integer importId) {
+        redisUtil.set(RedisConf.USER_IMPORT + RedisConf.SYMBOL_COLON + userId, String.valueOf(importId));
+    }
+
+    public String getUserImportId(Integer userId) {
+        return redisUtil.get(RedisConf.USER_IMPORT + RedisConf.SYMBOL_COLON + userId);
+    }
+
+    public void deleteUserImport(Integer userId) {
+        redisUtil.delete(RedisConf.USER_IMPORT + RedisConf.SYMBOL_COLON + userId);
+    }
+}

+ 5 - 4
src/main/java/cn/cslg/pas/common/utils/Response.java

@@ -15,11 +15,12 @@ public class Response {
         return JsonUtils.objectToJson(response);
     }
 
-    public static String success(Object data) {
+
+    public static Response success(Object data) {
         Response response = new Response();
         response.setResultEnum(ResponseEnum.SUCCESS);
         response.setData(data);
-        return JsonUtils.objectToJson(response);
+        return response;
     }
 
     public static String successBut(Object data) {
@@ -67,12 +68,12 @@ public class Response {
         return JsonUtils.objectToJson(response);
     }
 
-    public static String error(String message) {
+    public static Response error(String message) {
         Response response = new Response();
         response.setCode(ResponseEnum.ERROR.getCode());
         response.setData(Boolean.FALSE);
         response.setMessage(message);
-        return JsonUtils.objectToJson(response);
+        return response;
     }
 
     public static String noPermissions(String message) {

+ 3 - 1
src/main/java/cn/cslg/pas/common/utils/ResponseEnum.java

@@ -23,7 +23,9 @@ public enum ResponseEnum {
     SYSTEM_ERROR(500, "系统异常"),
     SUCCESSBUT(200, "请求成功"),
     ERROR(0, "请求失败"),
-    NO_PERMISSION(201,"无权限");
+    NO_PERMISSION(201,"无权限"),
+    PARAMS_ERROR(202,"参数错误")
+    ;
 
     private Integer code;
     private String message;

+ 1 - 1
src/main/java/cn/cslg/pas/controller/CommonController.java

@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping(Constants.API_XiaoSHI + "/common")
 @RestController
 public class CommonController {
-    private String getQueryConditions(){
+    private String getQueryConditions(String aa) {
 
 
         return "";

+ 16 - 6
src/main/java/cn/cslg/pas/controller/EventController.java

@@ -2,6 +2,8 @@ package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.dto.business.EventDTO;
+import cn.cslg.pas.common.model.cronModel.GroupVO;
+import cn.cslg.pas.common.model.request.StringGroupRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.factorys.businessFactory.Business;
@@ -39,25 +41,26 @@ public class EventController {
 
     @Operation(summary = "添加事件")
     @PostMapping("/addEvent")
-    public String  addEvent(String event, List<MultipartFile> files) throws Exception {
+    public Response  addEvent(String event, List<MultipartFile> files) throws Exception {
         if (event != null) {
             EventDTO eventDTO = JSONObject.parseObject(event, EventDTO.class);
             Business business = businessFactory.getClass("eventService");
-            business.addMessage(eventDTO,files);
-            return Response.success();
-        } else {
+           Integer id= (Integer) business.addMessage(eventDTO,files);
+            return Response.success(id);
+        }
+        else {
             return Response.error("网络异常");
         }
     }
 
     @Operation(summary = "更新事件")
     @PostMapping("/updateEvent")
-    public String  updateEvent(String event, List<MultipartFile> files) throws Exception {
+    public Response  updateEvent(String event, List<MultipartFile> files) throws Exception {
         if (event != null) {
             EventDTO eventDTO = JSONObject.parseObject(event, EventDTO.class);
             Business business = businessFactory.getClass("eventService");
             business.updateMessage(eventDTO,files);
-            return Response.success();
+            return Response.success(1);
         } else {
             return Response.error("网络异常");
         }
@@ -68,7 +71,14 @@ public class EventController {
             Business business = businessFactory.getClass("eventService");
             business.deleteMessage(ids);
             return Response.success();
+    }
 
+    @Operation(summary = "分组事件")
+    @PostMapping("/groupEvent")
+    public Response  groupEvent(StringGroupRequest stringGroupRequest) throws Exception {
+        Business business = businessFactory.getClass("eventService");
+        GroupVO groupVO = business.getGroup(stringGroupRequest);
+        return Response.success(groupVO);
     }
 
 }

+ 5 - 5
src/main/java/cn/cslg/pas/controller/ProductCategoryController.java

@@ -41,12 +41,12 @@ public class ProductCategoryController {
 
     @Operation(summary = "添加产品类别")
     @PostMapping("/addProductCategory")
-    public String addProductCategory(String productCategory, List<MultipartFile> files) throws Exception {
+    public Response addProductCategory(String productCategory, List<MultipartFile> files) throws Exception {
         if (productCategory != null) {
             ProductCategoryDTO productCategoryDTO = JSONObject.parseObject(productCategory, ProductCategoryDTO.class);
             Business business = businessFactory.getClass("productCategoryService");
             business.addMessage(productCategoryDTO,files);
-            return Response.success();
+            return Response.success(1);
         } else {
             return Response.error("网络异常");
         }
@@ -54,14 +54,14 @@ public class ProductCategoryController {
 
     @Operation(summary = "更新产品类别")
     @PostMapping("/updateProductCategory")
-    public String updateProductCategory(String event, List<MultipartFile> files) throws Exception {
+    public Response updateProductCategory(String event, List<MultipartFile> files) throws Exception {
         if (event != null) {
             ProductCategoryDTO productCategoryDTO = JSONObject.parseObject(event, ProductCategoryDTO.class);
             Business business = businessFactory.getClass("productCategoryService");
             business.updateMessage(productCategoryDTO,files);
-            return Response.success();
+            return Response.success(1);
         } else {
-            return Response.error("网络异常");
+            return Response.error("a");
         }
     }
     @Operation(summary = "删除产品类别")

+ 30 - 0
src/main/java/cn/cslg/pas/domain/business/AssoEventFile.java

@@ -0,0 +1,30 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+/**
+ * <p>
+ * 事件表
+ * </p>
+ *
+ * @author 李仁杰
+ * @since 2022-10-20
+ */
+@Data
+@TableName("asso_event_file")
+/*数据库中的表对应的类
+ */
+public class AssoEventFile extends BaseEntity<AssoEventFile> {
+    @TableField(value = "event_id")
+    private Integer eventId;
+    @TableField(value = "file_guid")
+    private String fileGuid;
+    @TableField(value = "create_id")
+    private Integer createId;
+    @TableField(value = "create_time")
+    private DateTime createTime;
+}

+ 12 - 8
src/main/java/cn/cslg/pas/domain/business/Event.java

@@ -21,17 +21,21 @@ import org.joda.time.DateTime;
  */
 public class Event extends BaseEntity<Event> {
     @TableField(value = "name")
- private String name;
+    private String name;
     @TableField(value = "client_id")
- private Integer clientId;
+    private Integer clientId;
     @TableField(value = "scenario_id")
- private Integer scenarioId;
+    private Integer scenarioId;
     @TableField(value = "event_date")
- private DateTime eventDate;
+    private DateTime eventDate;
     @TableField(value = "event_id")
- private Integer eventId;
-    @TableField(value = "client_tenant_id")
- private Integer clientTenantId;
+    private Integer eventId;
+    @TableField(value = "description")
+    private String description;
     @TableField(value = "tenant_id")
- private Integer tenantId;
+    private Integer tenantId;
+    @TableField(value = "create_id")
+    private Integer createId;
+    @TableField(value = "create_time")
+    private DateTime createTime;
 }

+ 3 - 3
src/main/java/cn/cslg/pas/factorys/businessFactory/Business.java

@@ -1,5 +1,7 @@
 package cn.cslg.pas.factorys.businessFactory;
 
+import cn.cslg.pas.common.model.cronModel.GroupVO;
+import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -8,9 +10,7 @@ import java.util.List;
 public interface Business {
     public Object queryMessage(QueryRequest queryRequest) throws Exception;
     public Object addMessage(Object object,List<MultipartFile> files);
-
     public Object deleteMessage(List<Integer> ids);
-
     public Object updateMessage(Object object,List<MultipartFile> files);
-
+    public GroupVO getGroup(GroupRequest groupRequest) throws Exception;
 }

+ 11 - 13
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetCreateNameOrder.java

@@ -20,24 +20,22 @@ public class GetCreateNameOrder implements GetOrderObject {
 
     @Override
     public String getOrderString(String orderBy, Integer orderType) {
-        List<Integer> ids =new ArrayList<>();
+        List<Integer> ids = new ArrayList<>();
         //根据名称查询人员id
         try {
-           String json = permissionService.getPersonIdOrders(orderType);
-           System.out.println(json);
-           ids =JSON.parseArray(json,Integer.class);
+            String json = permissionService.getPersonIdOrders(orderType);
+            ids = JSON.parseArray(json, Integer.class);
         } catch (Exception e) {
         }
-String idStr =StringUtils.join(ids,",");
-        String orderStr =" field("+orderBy+","+idStr+")";
-        String re="";
-        if(orderType.equals(0)){
-            re=orderStr+" asc";
+        String idStr = StringUtils.join(ids, ",");
+        String orderStr = " field(" + orderBy + "," + idStr + ")";
+        String re = "";
+        if (orderType.equals(0)) {
+            re = orderStr + " asc";
+        } else {
+            re = orderStr + " desc";
         }
-       else {
-            re=orderStr+" desc";
-        }
-       return  re;
+        return re;
     }
 
 }

+ 24 - 0
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetComGroup.java

@@ -0,0 +1,24 @@
+package cn.cslg.pas.factorys.reGroupFactory;
+
+import cn.cslg.pas.factorys.getOrderFactory.GetOrderObject;
+import cn.cslg.pas.mapper.EventMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetComGroup implements QueryGroupImp {
+@Autowired
+private EventMapper eventMapper;
+
+    @Override
+    public List<String> getGroup(String sql,String tableName,String groupField){
+    List<String> reValues =eventMapper.getGroups(sql,tableName,groupField);
+           return reValues;
+    };
+
+}

+ 22 - 0
src/main/java/cn/cslg/pas/factorys/reGroupFactory/QueryGroupFactory.java

@@ -0,0 +1,22 @@
+package cn.cslg.pas.factorys.reGroupFactory;
+
+import cn.cslg.pas.factorys.getSqlFactorys.GetSqlObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 分组查询工厂
+ */
+@Component
+public class QueryGroupFactory {
+    @Autowired
+    private Map<String, QueryGroupImp> getSqlObjectMap;
+
+
+    public QueryGroupImp getClass(String type) {
+        QueryGroupImp bean1 = getSqlObjectMap.get(type);
+        return bean1;
+    }
+}

+ 11 - 0
src/main/java/cn/cslg/pas/factorys/reGroupFactory/QueryGroupImp.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.factorys.reGroupFactory;
+
+
+import java.util.List;
+
+/**分组查询接口类
+ *
+ */
+public interface QueryGroupImp {
+    public List<String> getGroup(String sql, String tableName, String groupField);
+}

+ 16 - 0
src/main/java/cn/cslg/pas/mapper/AssoEventFileMapper.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AssoEventFile;
+import cn.cslg.pas.entity.AssoTaskField;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 任务可见栏位表
+ *
+ * @author chenyu
+ * @date 2023/10/20
+ */
+@Repository
+public interface AssoEventFileMapper extends BaseMapper<AssoEventFile> {
+}

+ 1 - 0
src/main/java/cn/cslg/pas/mapper/EventMapper.java

@@ -16,4 +16,5 @@ import java.util.List;
 @Repository
 public interface EventMapper extends BaseMapper<Event> {
     public List<Integer> getEvent(String sql);
+    public List<String> getGroups(String sql,String tableName,String groupField);
 }

+ 0 - 139
src/main/java/cn/cslg/pas/service/FileManagerService.java

@@ -1,139 +0,0 @@
-package cn.cslg.pas.service;
-
-import cn.cslg.pas.common.dto.FMSDeleteFileDTO;
-import com.google.gson.Gson;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import okhttp3.*;
-import org.apache.commons.io.FileUtils;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.util.FileCopyUtils;
-import org.springframework.web.multipart.MultipartFile;
-
-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;
-
-import static cn.hutool.core.io.FileUtil.getMimeType;
-
-/**
- * Okhttp调用FMS上传文件接口
- *
- * @Author xiexiang
- * @Date 2023/8/10
- */
-@RequiredArgsConstructor
-@Slf4j
-@Service
-public class FileManagerService {
-    @Value("${FMSUrl}")
-    private String FMSUrl;
-    @Value("${FileSource}")
-    private Integer FileSource;
-
-    /**
-     * 调用文件系统上传文件接口
-     *
-     * @param multipartFiles 文件
-     */
-//    public String uploadFile(List<MultipartFile> multipartFiles) throws IOException {
-//        List<File> files = new ArrayList<>();
-//        for (MultipartFile multipartFile : multipartFiles) {
-//            File file = new File(multipartFile.getOriginalFilename());
-//            FileCopyUtils.copy(multipartFile.getBytes(), file);
-//            files.add(file);
-//        }
-//        MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
-//                .setType(MultipartBody.FORM);
-//        for (File file : files) {
-//            //根据文件名获取文件的MIME类型
-//            String mimeType = getMimeType(file.getPath());
-//            multipartBodyBuilder.addFormDataPart("files", file.getName(), RequestBody.create(MediaType.parse(mimeType), file));
-//        }
-//        RequestBody requestBody = multipartBodyBuilder
-//                .addFormDataPart("sourceId", String.valueOf(FileSource))
-//                .build();
-//        OkHttpClient okHttpClient = new OkHttpClient.Builder()
-//                .connectTimeout(60, TimeUnit.SECONDS)
-//                .writeTimeout(60, TimeUnit.SECONDS)
-//                .readTimeout(60, TimeUnit.SECONDS)
-//                .build();
-//        Request request = new Request.Builder()
-//                .url(FMSUrl + "/fileManager/uploadSystemFile")
-//                .post(requestBody)
-//                .build();
-//        Response response = null;
-//        response = okHttpClient.newCall(request).execute();
-//        // 最后记得删除临时文件
-//        for (File file : files) {
-//            FileUtils.deleteQuietly(file);
-//        }
-//        return Objects.requireNonNull(response.body()).string();
-//    }
-//
-//    /**
-//     * 调用文件系统取出文件接口(获得文件流)
-//     *
-//     * @param fieldId 文件id
-//     */
-//    public byte[] downloadSystemFileFromFMS(Integer fieldId) throws IOException {
-//        OkHttpClient okHttpClient = new OkHttpClient.Builder()
-//                .connectTimeout(60, TimeUnit.SECONDS)
-//                .writeTimeout(60, TimeUnit.SECONDS)
-//                .readTimeout(60, TimeUnit.SECONDS)
-//                .build();
-//        Request request = new Request.Builder()
-//                .url(FMSUrl + "/fileManager/downloadSystemFile?fileId=" + fieldId)
-//                .get()
-//                .build();
-//        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).bytes();
-//    }
-//
-//    /**
-//     * 调用文件系统获取文件信息接口
-//     *
-//     * @param fileIds 文件ids
-//     */
-//    public String getSystemFileFromFMS(List<Integer> fileIds) throws IOException {
-//        String param = new Gson().toJson(fileIds);
-//        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
-//        OkHttpClient okHttpClient = new OkHttpClient.Builder()
-//                .connectTimeout(60, TimeUnit.SECONDS)
-//                .writeTimeout(60, TimeUnit.SECONDS)
-//                .readTimeout(60, TimeUnit.SECONDS)
-//                .build();
-//        Request request = new Request.Builder()
-//                .url(FMSUrl + "/fileManager/getFileData")
-//                .post(requestBody)
-//                .build();
-//        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-//    }
-//
-//    /**
-//     * 调用文件系统删除文件接口
-//     *
-//     * @param ids 需要删除的文件ids
-//     */
-//    public String deleteFileFromFMS(List<Integer> ids) throws IOException {
-//        FMSDeleteFileDTO fmsDeleteFileDTO = new FMSDeleteFileDTO();
-//        fmsDeleteFileDTO.setIds(ids);
-//        fmsDeleteFileDTO.setType(2);
-//        String param = new Gson().toJson(fmsDeleteFileDTO);
-//        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
-//        OkHttpClient okHttpClient = new OkHttpClient.Builder()
-//                .connectTimeout(60, TimeUnit.SECONDS)
-//                .writeTimeout(60, TimeUnit.SECONDS)
-//                .readTimeout(60, TimeUnit.SECONDS)
-//                .build();
-//        Request request = new Request.Builder()
-//                .url(FMSUrl + "/fileManager/deleteSystemFile")
-//                .post(requestBody)
-//                .build();
-//        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-//    }
-
-}

+ 12 - 0
src/main/java/cn/cslg/pas/service/business/AssoEventFileService.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.service.business;
+
+
+import cn.cslg.pas.domain.business.AssoEventFile;
+import cn.cslg.pas.mapper.AssoEventFileMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AssoEventFileService extends ServiceImpl<AssoEventFileMapper, AssoEventFile> {
+
+}

+ 154 - 8
src/main/java/cn/cslg/pas/service/business/EventService.java

@@ -1,22 +1,35 @@
 package cn.cslg.pas.service.business;
 
-import cn.cslg.pas.common.model.request.MapRequest;
-import cn.cslg.pas.common.model.request.QueryRequest;
-import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.dto.business.EventDTO;
+import cn.cslg.pas.common.model.cronModel.GroupConfig;
+import cn.cslg.pas.common.model.cronModel.GroupVO;
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+import cn.cslg.pas.common.model.request.*;
+
 import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
 import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
 import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
+import cn.cslg.pas.domain.business.AssoEventFile;
 import cn.cslg.pas.domain.business.Event;
 import cn.cslg.pas.factorys.businessFactory.Business;
+import cn.cslg.pas.factorys.reGroupFactory.QueryGroupFactory;
+import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
 import cn.cslg.pas.mapper.EventMapper;
+import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.query.FormatQueryService;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
@@ -25,6 +38,13 @@ public class EventService  extends ServiceImpl<EventMapper, Event> implements Bu
     private  EventMapper eventMapper;
     @Autowired
     private FormatQueryService formatQueryService;
+    @Autowired
+    private FileManagerService fileManagerService;
+    @Autowired
+    private AssoEventFileService assoEventFileService;
+
+    @Autowired
+    private QueryGroupFactory queryGroupFactory;
     public String getEvent(String sql){
         eventMapper.getEvent(sql);
         return  "";
@@ -35,7 +55,6 @@ public class EventService  extends ServiceImpl<EventMapper, Event> implements Bu
         StringRequest stringRequest =null;
         if(queryRequest instanceof MapRequest){
 
-
         }
         else {
             stringRequest =(StringRequest)queryRequest;
@@ -65,20 +84,147 @@ public class EventService  extends ServiceImpl<EventMapper, Event> implements Bu
     }
 
     @Override
-    public Object addMessage(Object object, List<MultipartFile> files) {
+    public Integer addMessage(Object object, List<MultipartFile> files) {
+        EventDTO eventDTO =(EventDTO)object;
+        //检查事件格式 TODO
+        //根据名称查询是否重复
+        eventDTO.setName(eventDTO.getName().trim());
+    String name  = eventDTO.getName();
+    LambdaQueryWrapper<Event> queryWrapper =new LambdaQueryWrapper<>();
+    queryWrapper.eq(Event::getName,name);
+    List<Event> events =this.list(queryWrapper);
+    if(events==null||events.size()==0){
         return null;
     }
+        Event event =new Event();
+        BeanUtils.copyProperties(eventDTO,event);
+        event.insert();
+        if (files != null && files.size() != 0)
+        {
+            try {
+                List<String> guids = fileManagerService.uploadFileGetGuid(files);
+                List<AssoEventFile> assoEventFiles =new ArrayList<>();
+                guids.forEach(item->{
+                    AssoEventFile assoEventFile =new AssoEventFile();
+                    assoEventFile.setEventId(event.getId());
+                    assoEventFile.setFileGuid(item);
+                    assoEventFile.setCreateId(1);
+                    assoEventFiles.add(assoEventFile);
+                });
+                if(assoEventFiles!=null&&assoEventFiles.size()!=0){
+                    assoEventFileService.saveBatch(assoEventFiles);
+                }
+            }
+            catch (Exception e){
+            }
+        }
+
+        return event.getId();
+    }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Object deleteMessage(List<Integer> ids) {
-        return null;
+   //根据事件id删除事件
+        this.removeBatchByIds(ids);
+        //根据事件id删除事件和文件关联
+        LambdaQueryWrapper<AssoEventFile> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoEventFile::getId,ids);
+        List<AssoEventFile> assoEventFiles =assoEventFileService.list(queryWrapper);
+        List<String> guids =assoEventFiles.stream().map(AssoEventFile::getFileGuid).collect(Collectors.toList());
+        //TODO 根据guid删除文件
+        //删除事件和文件关联表
+        assoEventFiles.remove(queryWrapper);
+        return ids;
     }
 
     @Override
     public Object updateMessage(Object object, List<MultipartFile> files) {
-        return null;
+        EventDTO eventDTO =(EventDTO)object;
+        //检查事件格式 TODO
+        //根据名称查询是否重复
+        eventDTO.setName(eventDTO.getName().trim());
+        String name  = eventDTO.getName();
+        LambdaQueryWrapper<Event> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(Event::getName,name);
+        List<Event> events =this.list(queryWrapper);
+        if(events==null||events.size()==0){
+            return null;
+        }
+        Event event =new Event();
+        BeanUtils.copyProperties(eventDTO,event);
+        event.insert();
+        if (files != null && files.size() != 0)
+        {
+            try {
+                List<String> guids = fileManagerService.uploadFileGetGuid(files);
+                List<AssoEventFile> assoEventFiles =new ArrayList<>();
+                guids.forEach(item->{
+                    AssoEventFile assoEventFile =new AssoEventFile();
+                    assoEventFile.setEventId(event.getId());
+                    assoEventFile.setFileGuid(item);
+                    assoEventFile.setCreateId(1);
+                    assoEventFiles.add(assoEventFile);
+                });
+                if(assoEventFiles!=null&&assoEventFiles.size()!=0){
+                    assoEventFileService.saveBatch(assoEventFiles);
+                }
+            }
+            catch (Exception e){
+            }
+        }
+
+        return event.getId();
     }
 
-    ;
+    public GroupVO getGroup(GroupRequest groupRequest) throws Exception {
+        //合成检索式
+       StringGroupRequest stringGroupRequest =null;
+        if(groupRequest instanceof MapGroupRequest){
+
+        }
+        else {
+            stringGroupRequest =(StringGroupRequest)groupRequest;
+        }
+        String condition =stringGroupRequest.getSearchQuery();
+
+        //将检索式转换为二叉树
+        treeNode tree = expressManager.getInstance().Parse(condition, false);
+
+        //格式化检索式
+        String sql = formatQueryService.ToString((operateNode) tree);
+
+        //格式化 分组
+        String json =  CommonService.readJsonFile("event_group.json");
+        List<GroupConfig> groupConfigs = JSON.parseArray(json,GroupConfig.class);
+        GroupConfig groupConfig = groupConfigs.stream().filter(item->item.getField().equals(groupRequest.getGroupBy())).findFirst().orElse(null);
+        if(groupConfig!=null){
+       sql+=" group by "+groupConfig.getSqlField()+" ";
+        }
+
+        //格式化排序
+        if(groupRequest.getOrderDTOList()!=null&&groupRequest.getOrderDTOList().size()!=0) {
+            String orderSql = formatQueryService.orderToString(groupRequest.getOrderDTOList());
+            sql+=orderSql;
+        }
+
+        //格式化 分页信息
+        if(groupRequest.getSize()!=null&&groupRequest.getCurrent()!=null) {
+            Long size =groupRequest.getSize();
+            Long current =groupRequest.getCurrent();
+            String page= " limit "+((current-1)*size)+","+size;
+            sql +=page;
+        }
+
+        //返回分组数据
+       QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
+            List<String> strs =   queryGroupImp.getGroup(sql,"event",groupConfig.getSqlField());
+
+            //装载数据
+        GroupVO groupVO =new GroupVO();
+        groupVO.setField(groupRequest.getGroupBy());
+        groupVO.setValues(strs);
+        return groupVO;
+    }
 
 }

+ 7 - 0
src/main/java/cn/cslg/pas/service/business/ProductCategoryService.java

@@ -1,6 +1,8 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.business.ProductCategoryDTO;
+import cn.cslg.pas.common.model.cronModel.GroupVO;
+import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.domain.business.ProductCategory;
 import cn.cslg.pas.factorys.businessFactory.Business;
@@ -58,4 +60,9 @@ public class ProductCategoryService extends ServiceImpl<ProductCategoryMapper, P
         productCategory.insert();
         return null;
     }
+
+    @Override
+    public GroupVO getGroup(GroupRequest groupRequest) throws Exception {
+        return null;
+    }
 }

+ 148 - 0
src/main/java/cn/cslg/pas/service/common/FileManagerService.java

@@ -0,0 +1,148 @@
+package cn.cslg.pas.service.common;
+
+import cn.cslg.pas.common.dto.FMSDeleteFileDTO;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.*;
+import org.apache.commons.io.FileUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.FileCopyUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+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;
+
+import static cn.hutool.core.io.FileUtil.getMimeType;
+
+/**
+ * Okhttp调用FMS上传文件接口
+ *
+ * @Author xiexiang
+ * @Date 2023/8/10
+ */
+@RequiredArgsConstructor
+@Slf4j
+@Service
+public class FileManagerService {
+    @Value("${FMSUrl}")
+    private String FMSUrl;
+    @Value("${FileSource}")
+    private Integer FileSource;
+
+    /**
+     * 调用文件系统上传文件接口
+     *
+     * @param multipartFiles 文件
+     */
+    public String uploadFile(List<MultipartFile> multipartFiles) throws IOException {
+        List<File> files = new ArrayList<>();
+        for (MultipartFile multipartFile : multipartFiles) {
+            File file = new File(multipartFile.getOriginalFilename());
+            FileCopyUtils.copy(multipartFile.getBytes(), file);
+            files.add(file);
+        }
+        MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
+                .setType(MultipartBody.FORM);
+        for (File file : files) {
+            //根据文件名获取文件的MIME类型
+            String mimeType = getMimeType(file.getPath());
+            multipartBodyBuilder.addFormDataPart("files", file.getName(), RequestBody.create(MediaType.parse(mimeType), file));
+        }
+        RequestBody requestBody = multipartBodyBuilder
+                .addFormDataPart("sourceId", String.valueOf(FileSource))
+                .build();
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(FMSUrl + "/fileManager/uploadNormalFile")
+                .post(requestBody)
+                .build();
+        Response response = null;
+        response = okHttpClient.newCall(request).execute();
+        // 最后记得删除临时文件
+        for (File file : files) {
+            FileUtils.deleteQuietly(file);
+        }
+        return Objects.requireNonNull(response.body()).string();
+    }
+
+    public List<String> uploadFileGetGuid(List<MultipartFile> multipartFiles) throws IOException {
+   String res= this.uploadFile(multipartFiles);
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        List<String> guids = JSONArray.parseArray(jsonObject.get("data").toString(), String.class);
+        return guids;
+    }
+
+    /**
+     * 调用文件系统取出文件接口(获得文件流)
+     *
+     * @param fieldId 文件id
+     */
+    public byte[] downloadSystemFileFromFMS(Integer fieldId) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(FMSUrl + "/fileManager/downloadSystemFile?fileId=" + fieldId)
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).bytes();
+    }
+
+    /**
+     * 调用文件系统获取文件信息接口
+     *
+     * @param fileIds 文件ids
+     */
+    public String getSystemFileFromFMS(List<Integer> fileIds) throws IOException {
+        String param = new Gson().toJson(fileIds);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(FMSUrl + "/fileManager/getFileData")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * 调用文件系统删除文件接口
+     *
+     * @param ids 需要删除的文件ids
+     */
+    public String deleteFileFromFMS(List<Integer> ids) throws IOException {
+        FMSDeleteFileDTO fmsDeleteFileDTO = new FMSDeleteFileDTO();
+        fmsDeleteFileDTO.setIds(ids);
+        fmsDeleteFileDTO.setType(2);
+        String param = new Gson().toJson(fmsDeleteFileDTO);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(FMSUrl + "/fileManager/deleteSystemFile")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+}

+ 0 - 1
src/main/java/cn/cslg/pas/service/importPatent/ProjectImportService.java

@@ -7,7 +7,6 @@ import cn.cslg.pas.entity.AssoTaskField;
 import cn.cslg.pas.entity.ImportTask;
 import cn.cslg.pas.entity.ImportTaskCondition;
 import cn.cslg.pas.service.AssoTaskFieldService;
-import cn.cslg.pas.service.FileManagerService;
 import cn.cslg.pas.service.ImportTaskConditionService;
 import cn.cslg.pas.service.ImportTaskService;
 import lombok.RequiredArgsConstructor;

+ 20 - 1
src/main/resources/jsons/event.json

@@ -1 +1,20 @@
-[{"name":"张三","type":"String","value":"val"}]
+[{"name":"事件名称",
+  "type":"String",
+  "value":"name",
+  "ifSearch":"true",
+  "ifGroup": "false"
+},
+  {"name":"创建人",
+    "type":"String",
+    "value":"createName",
+    "ifSearch":"true",
+    "ifGroup": "true"
+  },
+  {"name":"创建时间",
+    "type":"DateTime",
+    "value":"createTime",
+    "ifSearch":"true",
+    "ifGroup": "true"
+  }
+
+]

+ 11 - 0
src/main/resources/jsons/event_group.json

@@ -0,0 +1,11 @@
+[{"field":"name","sqlField":"name","groupClass":"getComGroup"
+
+},
+{"field":"id","sqlField":"id","groupClass":"getComGroup"
+
+},
+{"field":"createName","sqlField":"create_id","groupClass":"getComGroup"
+
+}
+
+]

+ 6 - 0
src/main/resources/mapper/Event.xml

@@ -8,4 +8,10 @@
     </where>
   </select>
 
+    <select id="getGroups"  resultType="java.lang.String">
+        select ${groupField} from  ${tableName}
+        <where>
+            ${sql}
+        </where>
+    </select>
 </mapper>

+ 88 - 0
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -0,0 +1,88 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.model.request.*;
+import cn.cslg.pas.controller.EventController;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.entity.ContentType;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author chenyu
+ * @date 2023/9/6
+ */
+@SpringBootTest
+public class EventServiceTests {
+    @Autowired
+    private EventController eventController;
+
+    @Test
+    void test() throws Exception {
+        StringRequest queryRequest = new StringRequest();
+        queryRequest.setSearchQuery("name~事件 and createName=朱");
+        List<OrderDTO> dtos = new ArrayList<>();
+        OrderDTO orderDTO1 = new OrderDTO();
+        orderDTO1.setOrderBy("name");
+        orderDTO1.setOrderType(0);
+        OrderDTO orderDTO2 = new OrderDTO();
+        orderDTO2.setOrderBy("createName");
+        orderDTO2.setOrderType(1);
+        dtos.add(orderDTO1);
+        dtos.add(orderDTO2);
+        queryRequest.setOrderDTOList(dtos);
+        queryRequest.setCurrent(Long.parseLong("1"));
+        queryRequest.setSize(Long.parseLong("10"));
+        eventController.queryEvent(queryRequest);
+    }
+
+    @Test
+    void add() throws Exception {
+        JSONObject jsonObj = new JSONObject();
+        jsonObj.put("name", "事件1");
+        jsonObj.put("description", "描述1");
+        jsonObj.put("clientId", 1);
+        jsonObj.put("scenarioId", 2);
+        String json_to_string = JSONObject.toJSONString(jsonObj);
+        List<MultipartFile> list = new ArrayList<>();
+        File file = new File("C:\\Users\\admin\\Desktop\\test.txt");
+        MultipartFile mulFile = new MockMultipartFile(
+                "th.jpg", //文件名
+                "th.jpg", //originalName 相当于上传文件在客户机上的文件名
+                ContentType.APPLICATION_OCTET_STREAM.toString(), //文件类型
+                new FileInputStream(file) //文件流
+        );
+        list.add(mulFile);
+        eventController.addEvent(json_to_string, list);
+
+    }
+
+
+    @Test
+    void groupEvent() throws Exception {
+        StringGroupRequest queryRequest = new StringGroupRequest();
+        queryRequest.setSearchQuery("name~事件 and createName=朱");
+        List<OrderDTO> dtos = new ArrayList<>();
+        OrderDTO orderDTO1 = new OrderDTO();
+        orderDTO1.setOrderBy("name");
+        orderDTO1.setOrderType(0);
+        OrderDTO orderDTO2 = new OrderDTO();
+        orderDTO2.setOrderBy("createName");
+        orderDTO2.setOrderType(1);
+        dtos.add(orderDTO1);
+        dtos.add(orderDTO2);
+        queryRequest.setOrderDTOList(dtos);
+        queryRequest.setCurrent(Long.parseLong("1"));
+        queryRequest.setSize(Long.parseLong("10"));
+        queryRequest.setGroupBy("name");
+        eventController.groupEvent(queryRequest);
+    }
+}

+ 0 - 54
src/test/java/cn/cslg/pas/service/PatentPDFServiceTests.java

@@ -1,54 +0,0 @@
-package cn.cslg.pas.service;
-
-import cn.cslg.pas.common.model.request.MapRequest;
-import cn.cslg.pas.common.model.request.OrderDTO;
-import cn.cslg.pas.common.model.request.QueryRequest;
-import cn.cslg.pas.common.model.request.StringRequest;
-import cn.cslg.pas.controller.EventController;
-import cn.cslg.pas.service.query.FormatQueryService;
-import org.junit.jupiter.api.Test;
-import org.junit.runner.Request;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author chenyu
- * @date 2023/9/6
- */
-@SpringBootTest
-public class PatentPDFServiceTests {
-    @Autowired
-    private EventController eventController;
-
-     @Autowired
-     private EsService esService;
-    @Test
-    void test() throws Exception {
-        StringRequest queryRequest =new StringRequest();
-        queryRequest.setSearchQuery("name~事件 and createName=朱");
-        List<OrderDTO> dtos =new ArrayList<>();
-        OrderDTO orderDTO1 =new OrderDTO();
-        orderDTO1.setOrderBy("name");
-        orderDTO1.setOrderType(0);
-        OrderDTO orderDTO2 =new OrderDTO();
-        orderDTO2.setOrderBy("createName");
-        orderDTO2.setOrderType(1);
-        dtos.add(orderDTO1);
-        dtos.add(orderDTO2);
-        queryRequest.setOrderDTOList(dtos);
-        queryRequest.setCurrent(Long.parseLong("1"));
-        queryRequest.setSize(Long.parseLong("10"));
-  eventController.queryEvent(queryRequest);
-    }
-
-    @Test
-    void add() throws Exception {
-        esService.addDoc();
-    }
-
-}