Ver código fonte

事件配置添加

lwhhszx 1 ano atrás
pai
commit
9f25704197

+ 40 - 0
src/main/java/cn/cslg/pas/common/dto/business/UpdateEventDTO.java

@@ -0,0 +1,40 @@
+package cn.cslg.pas.common.dto.business;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 事件DTO类
+ * </p>
+ *
+ * @author 李仁杰
+ * @since 2022-10-20
+ */
+@Data
+/*数据库中的表对应的类
+ */
+public class UpdateEventDTO {
+    @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 = "发生时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date eventDate;
+    @Schema(description = "文件guid")
+    private List<String> guids;
+
+}

+ 13 - 14
src/main/java/cn/cslg/pas/controller/EventController.java

@@ -2,6 +2,7 @@ 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.dto.business.UpdateEventDTO;
 import cn.cslg.pas.common.model.cronModel.GroupVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.StringGroupRequest;
@@ -39,29 +40,26 @@ public class EventController {
     @PostMapping("/queryEvent")
     public Response queryEvent(@RequestBody StringRequest stringRequest) throws Exception {
         Business business = businessFactory.getClass("eventService");
-     Records records =  (Records)business.queryMessage(stringRequest);
+        Records records = (Records) business.queryMessage(stringRequest);
         return Response.success(records);
     }
 
 
     @Operation(summary = "添加事件")
     @PostMapping("/addEvent")
-    public Response 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");
-            Integer id =null;
+            Integer id = null;
             try {
-                 id = (Integer) business.addMessage(eventDTO, files);
-            }
-            catch (Exception e){
-                if(e instanceof XiaoShiException) {
+                id = (Integer) business.addMessage(eventDTO, files);
+            } catch (Exception e) {
+                if (e instanceof XiaoShiException) {
                     return Response.error(e.getMessage());
-                }
-                else if (e instanceof UnLoginException) {
+                } else if (e instanceof UnLoginException) {
                     return Response.unLogin(e.getMessage());
-                }
-                else if (e instanceof ConditionException) {
+                } else if (e instanceof ConditionException) {
                     return Response.conditionError(e.getMessage());
                 }
             }
@@ -75,11 +73,12 @@ public class EventController {
     @PostMapping("/updateEvent")
     public Response updateEvent(String event, List<MultipartFile> files) throws Exception {
         if (event != null) {
-            EventDTO eventDTO = JSONObject.parseObject(event, EventDTO.class);
+            UpdateEventDTO updateEventDTO = JSONObject.parseObject(event, UpdateEventDTO.class);
             Business business = businessFactory.getClass("eventService");
-            business.updateMessage(eventDTO, files);
+            business.updateMessage(updateEventDTO, files);
             return Response.success(1);
-        } else {
+        }
+        else {
             return Response.error("网络异常");
         }
     }

+ 40 - 0
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetClientNameOrder.java

@@ -0,0 +1,40 @@
+package cn.cslg.pas.factorys.getOrderFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.service.permissions.PermissionService;
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetClientNameOrder implements GetOrderObject {
+    @Autowired
+    private PermissionService permissionService;
+
+    @Override
+    public String getOrderString(String orderBy, Integer orderType) {
+        List<Integer> ids = new ArrayList<>();
+        //根据名称查询人员id
+        try {
+            String json = permissionService.getClientIdOrders(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";
+        } else {
+            re = orderStr + " desc";
+        }
+        return re;
+    }
+
+}

+ 47 - 0
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetEventProjectNumOrder.java

@@ -0,0 +1,47 @@
+package cn.cslg.pas.factorys.getOrderFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.mapper.AssoProjectEventMapper;
+import cn.cslg.pas.service.permissions.PermissionService;
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetEventProjectNumOrder implements GetOrderObject {
+    @Autowired
+    private AssoProjectEventMapper assoProjectEventMapper;
+
+    @Override
+    public String getOrderString(String orderBy, Integer orderType) {
+        List<Integer> ids = new ArrayList<>();
+        String orderTypeStr ="";
+        //根据名称查询人员id
+        try {
+            if (orderType.equals(0)) {
+                orderTypeStr="asc";
+            } else {
+                orderTypeStr= " desc";
+            }
+          ids = assoProjectEventMapper.getEventProjectNumOrder(1,orderTypeStr);
+
+        } catch (Exception e) {
+        }
+        String idStr = StringUtils.join(ids, ",");
+        String orderStr = " field(" + orderBy + "," + idStr + ")";
+        String re = "";
+        if (orderType.equals(0)) {
+            re = orderStr + " asc";
+        } else {
+            re = orderStr + " desc";
+        }
+        return re;
+    }
+
+}

+ 45 - 0
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetEventReportNumOrder.java

@@ -0,0 +1,45 @@
+package cn.cslg.pas.factorys.getOrderFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.mapper.AssoProjectEventMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetEventReportNumOrder implements GetOrderObject {
+    @Autowired
+    private AssoProjectEventMapper assoProjectEventMapper;
+
+    @Override
+    public String getOrderString(String orderBy, Integer orderType) {
+        List<Integer> ids = new ArrayList<>();
+        String orderTypeStr ="";
+        //根据名称查询人员id
+        try {
+            if (orderType.equals(0)) {
+                orderTypeStr="asc";
+            } else {
+                orderTypeStr= " desc";
+            }
+          ids = assoProjectEventMapper.getEventProjectNumOrder(2,orderTypeStr);
+
+        } catch (Exception e) {
+        }
+        String idStr = StringUtils.join(ids, ",");
+        String orderStr = " field(" + orderBy + "," + idStr + ")";
+        String re = "";
+        if (orderType.equals(0)) {
+            re = orderStr + " asc";
+        } else {
+            re = orderStr + " desc";
+        }
+        return re;
+    }
+
+}

+ 40 - 0
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetScenarioNameOrder.java

@@ -0,0 +1,40 @@
+package cn.cslg.pas.factorys.getOrderFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.service.business.SystemDictService;
+import cn.cslg.pas.service.permissions.PermissionService;
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetScenarioNameOrder implements GetOrderObject {
+    @Autowired
+    private SystemDictService systemDictService;
+
+    @Override
+    public String getOrderString(String orderBy, Integer orderType) {
+        List<String> ids = new ArrayList<>();
+        //根据名称查询应用场景id
+        try {
+          ids = systemDictService.getScenarioOrderIds(orderType);
+        } catch (Exception e) {
+        }
+        String idStr = StringUtils.join(ids, ",");
+        String orderStr = " field(" + orderBy + "," + idStr + ")";
+        String re = "";
+        if (orderType.equals(0)) {
+            re = orderStr + " asc";
+        } else {
+            re = orderStr + " desc";
+        }
+        return re;
+    }
+
+}

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

@@ -16,4 +16,5 @@ import java.util.List;
 @Repository
 public interface AssoProjectEventMapper extends BaseMapper<AssoProjectEvent> {
     public List<EventCountVO> getEventProjectCount(List<Integer> eventIds);
+    public List<Integer> getEventProjectNumOrder(Integer projectType,String orderType);
 }

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

@@ -160,7 +160,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
         queryWrapper.eq(Event::getName, name);
         List<Event> events = this.list(queryWrapper);
         if (events != null && events.size() != 0) {
-            throw new XiaoShiException("参数错误");
+            throw new XiaoShiException("名称重复");
         }
 
         //事件入库

+ 15 - 0
src/main/java/cn/cslg/pas/service/business/SystemDictService.java

@@ -48,4 +48,19 @@ public class SystemDictService extends ServiceImpl<SystemDictMapper, SystemDict>
     }
 
 
+    public List<String> getScenarioOrderIds(Integer orderType) {
+        LambdaQueryWrapper<SystemDict> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(SystemDict::getValue);
+        queryWrapper.eq(SystemDict::getType, "ENTERPRISE_APPLICATION_SCENARIO");
+        if(orderType.equals(0)){
+            queryWrapper.orderByAsc(SystemDict::getLabel);
+        }
+        else{
+            queryWrapper.orderByDesc(SystemDict::getLabel);
+        }
+        java.util.function.Function<Object, String> f = (o -> o.toString());
+        List<String> ids = this.listObjs(queryWrapper, f);
+        return ids;
+    }
+
 }

+ 17 - 1
src/main/java/cn/cslg/pas/service/permissions/PermissionService.java

@@ -103,7 +103,23 @@ public class PermissionService {
     public String getClientIdByNamePCS(String clientName) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .url(PCSUrl + "/permission/api/system/getPersonIdByName?clientName=" + clientName)
+                .url(PCSUrl + "/permission/api/system/getClientIdByNam?clientName=" + clientName)
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+
+    /**
+     * 获得所有客户排序接口
+     * @param orderType
+     * @return
+     * @throws IOException
+     */
+    public String getClientIdOrders(Integer orderType) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getClientIdOrders?orderType=" + orderType)
                 .get()
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();

+ 1 - 0
src/main/java/cn/cslg/pas/service/query/FormatQueryService.java

@@ -97,6 +97,7 @@ public class FormatQueryService {
                 if(optionName.equals(" LIKE ")){
                     rightValue="'%"+rightValue+"%'";
                 }
+
              strCode = getSqlObject.getSql(rightValue);
             }
         }

+ 6 - 0
src/main/resources/jsons/event.json

@@ -10,6 +10,12 @@
     "ifSearch":"true",
     "ifGroup": "false"
   },
+  {"name":"客户",
+    "type":"String",
+    "value":"clientName",
+    "ifSearch":"true",
+    "ifGroup": "false"
+  },
   {"name":"创建时间",
     "type":"DateTime",
     "value":"createTime",

+ 51 - 10
src/main/resources/jsons/event_order.json

@@ -1,11 +1,52 @@
-[{"field":"name","sqlField":"name","orderClass":"getComOrder"
-
-},
-{"field":"id","sqlField":"id","orderClass":"getComOrder"
-
-},
-{"field":"createName","sqlField":"create_id","orderClass":"getCreateNameOrder"
-
-}
-
+[
+  {
+    "field": "name",
+    "sqlField": "name",
+    "orderClass": "getComOrder"
+  },
+  {
+    "field": "id",
+    "sqlField": "id",
+    "orderClass": "getComOrder"
+  },
+  {
+    "field": "createName",
+    "sqlField": "create_id",
+    "orderClass": "getCreateNameOrder"
+  },
+  {
+    "field": "clientName",
+    "sqlField": "client_id",
+    "orderClass": "getClientNameOrder"
+  },
+  {
+    "field":"createTime",
+    "sqlField": "create_time",
+    "orderClass": "getComOrder"
+  },
+  {
+    "field":"eventDate",
+    "sqlField": "event_date",
+    "orderClass": "getComOrder"
+  },
+  {
+    "field":"eventDate",
+    "sqlField": "event_date",
+    "orderClass": "getComOrder"
+  },
+  {
+    "field":"scenarioName",
+    "sqlField": "scenario_id",
+    "orderClass": "getScenarioNameOrder"
+  },
+  {
+    "field":"reportProjectNum",
+    "sqlField": "event_id",
+    "orderClass": "getEventReportNumOrder"
+  },
+  {
+    "field":"patentProjectNum",
+    "sqlField": "event_id",
+    "orderClass": "getEventProjectNumOrder"
+  }
 ]

+ 12 - 1
src/main/resources/mapper/AssoProjectEvent.xml

@@ -7,7 +7,7 @@
         <where>
             event_id in
             <foreach collection="eventIds" index="index" item="item" open="(" separator=" or " close=")">
-               #{item}
+                #{item}
             </foreach>
             group by event_id,project_type
 
@@ -15,4 +15,15 @@
 
 
     </select>
+
+    <select id="getEventProjectNumOrder" resultType="java.lang.Integer">
+        select event_id from (select event_id, count(*) as c from
+        pas_prod2.asso_project_event
+        <where>
+            project_type =#{projectType}
+            group by event_id,project_type
+        </where>
+        ) as t order by c #{orderType}
+    </select>
+
 </mapper>