From fd991eb61c8fe0666c4fff082dcf49189829f8cd Mon Sep 17 00:00:00 2001 From: lau572 <1010031226@qq.com> Date: Wed, 10 Apr 2024 15:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=BD=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DcEventProcessController.java | 20 ++++--- .../zc/business/domain/DcEventProcess.java | 38 ++++++++++---- .../com/zc/business/enums/ValueConverter.java | 45 ++++++++++++++++ .../business/mapper/DcEventProcessMapper.java | 8 +++ .../service/IDcEventProcessService.java | 11 ++++ .../impl/DcEventProcessServiceImpl.java | 43 +++++++++++++++ .../service/impl/DcEventServiceImpl.java | 52 +++++++++++++++++-- .../mapper/business/DcEventProcessMapper.xml | 37 ++++++++++++- 8 files changed, 230 insertions(+), 24 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcEventProcessController.java b/zc-business/src/main/java/com/zc/business/controller/DcEventProcessController.java index 275ee8ce..79e0fcf7 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcEventProcessController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcEventProcessController.java @@ -47,9 +47,18 @@ public class DcEventProcessController extends BaseController * 查询事件处理流程列表 */ @ApiOperation("查询事件处理流程列表") - // @PreAuthorize("@ss.hasPermi('system:process:list')") @GetMapping("/list") - public TableDataInfo list(DcEventProcess dcEventProcess) + public List list(DcEventProcess dcEventProcess) + { + return dcEventProcessService.selectDcEventProcessList(dcEventProcess); + } + + /** + * 分页查询事件处理流程列表 + */ + @ApiOperation("分页查询事件处理流程列表") + @GetMapping("/page") + public TableDataInfo page(DcEventProcess dcEventProcess) { startPage(); List list = dcEventProcessService.selectDcEventProcessList(dcEventProcess); @@ -90,12 +99,7 @@ public class DcEventProcessController extends BaseController // @PreAuthorize("@ss.hasPermi('system:process:add')") @Log(title = "事件处理流程", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody DcEventProcess dcEventProcess) throws IOException, InvalidExtensionException { - //如果有文件传入 - if(!dcEventProcess.getFile().isEmpty()){ - String address =FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), dcEventProcess.getFile(), MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); - dcEventProcess.setContext(address); - } + public AjaxResult add(@RequestBody DcEventProcess dcEventProcess){ return toAjax(dcEventProcessService.insertDcEventProcess(dcEventProcess)); } diff --git a/zc-business/src/main/java/com/zc/business/domain/DcEventProcess.java b/zc-business/src/main/java/com/zc/business/domain/DcEventProcess.java index 4295717d..44b884af 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcEventProcess.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcEventProcess.java @@ -47,17 +47,13 @@ public class DcEventProcess private Integer source; /** 1-节点 - 2-信息发布 + 2-信息发布 + 3-设备管控 */ - @ApiModelProperty(value="流程类型") - @Excel(name = "1-节点 2-信息发布 ") + @ApiModelProperty(value="流程类型 1-节点,2-信息发布,3-设备管控") + @Excel(name = "流程类型") private Integer processType; - /** $column.columnComment */ - @ApiModelProperty("内容") - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") - private String context; - /** $column.columnComment */ @ApiModelProperty("流程ID") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @@ -68,6 +64,20 @@ public class DcEventProcess @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private String processName; + /** $column.columnComment */ + @ApiModelProperty("内容") + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String context; + + /** $column.type */ + @ApiModelProperty("内容类型") + @Excel(name = "${type}", readConverterExp = "$column.readConverterExp()") + private String type; + + @ApiModelProperty("上传文件") + private MultipartFile file; + + public MultipartFile getFile() { return file; } @@ -76,9 +86,6 @@ public class DcEventProcess this.file = file; } - @ApiModelProperty("上传文件") - private MultipartFile file; - public void setId(Long id) { this.id = id; @@ -161,6 +168,14 @@ public class DcEventProcess return processName; } + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -173,6 +188,7 @@ public class DcEventProcess .append("context", getContext()) .append("processId", getProcessId()) .append("processName", getProcessName()) + .append("type", getType()) .toString(); } } diff --git a/zc-business/src/main/java/com/zc/business/enums/ValueConverter.java b/zc-business/src/main/java/com/zc/business/enums/ValueConverter.java index 8409dd4e..50512827 100644 --- a/zc-business/src/main/java/com/zc/business/enums/ValueConverter.java +++ b/zc-business/src/main/java/com/zc/business/enums/ValueConverter.java @@ -22,6 +22,11 @@ public class ValueConverter { private static final Map valueMappingSon = new HashMap<>(); // 静态映射,用于存储转换关系 事件源转换 private static final Map valueMappingSource = new HashMap<>(); + // 事件来源名称 + private static final Map eventSourceName = new HashMap<>(); + // 事件类型名称 + private static final Map eventTypeName = new HashMap<>(); + static { valueMappingSource.put(1,5); valueMappingSource.put(4,7); @@ -87,6 +92,26 @@ public class ValueConverter { valueMappingSon.put("11-2", "2-1"); valueMappingSon.put("11-3", "2-1"); valueMappingSon.put("99-1", "11-1"); + + eventSourceName.put("1","96659"); + eventSourceName.put("2","交警转接"); + eventSourceName.put("3","道路巡查"); + eventSourceName.put("4","视频巡查"); + eventSourceName.put("5","视频AI"); + eventSourceName.put("6","一键救援"); + eventSourceName.put("7","其他"); + + eventTypeName.put("1","交通事故"); + eventTypeName.put("2","车辆故障"); + eventTypeName.put("3","交通管制"); + eventTypeName.put("4","交通拥堵"); + eventTypeName.put("5","非法上路"); + eventTypeName.put("6","路障清除"); + eventTypeName.put("7","施工建设"); + eventTypeName.put("8","服务区异常"); + eventTypeName.put("9","设施设备隐患"); + eventTypeName.put("10","异常天气"); + eventTypeName.put("11","其他事件"); } } @@ -100,6 +125,14 @@ public class ValueConverter { public static Map getValueMappingSource() { return ValueMappingHolder.valueMappingSource; } + + public static Map getEventSourceName() { + return ValueMappingHolder.eventSourceName; + } + + public static Map getEventTypeName() { + return ValueMappingHolder.eventTypeName; + } /** * 根据输入值返回转换后的值 * 如果输入值不在映射中,则返回输入值本身 @@ -118,6 +151,18 @@ public class ValueConverter { Map mapping = getValueMappingSource(); return mapping.getOrDefault(inputValue, inputValue); } + + + public static String eventSourceName(String inputValue) { + Map mapping = getEventSourceName(); + return mapping.getOrDefault(inputValue, inputValue); + } + + public static String eventTypeName(String inputValue) { + Map mapping = getEventTypeName(); + return mapping.getOrDefault(inputValue, inputValue); + } + //测试 // @Test // public void text(){ diff --git a/zc-business/src/main/java/com/zc/business/mapper/DcEventProcessMapper.java b/zc-business/src/main/java/com/zc/business/mapper/DcEventProcessMapper.java index 0e7668a1..042c50cb 100644 --- a/zc-business/src/main/java/com/zc/business/mapper/DcEventProcessMapper.java +++ b/zc-business/src/main/java/com/zc/business/mapper/DcEventProcessMapper.java @@ -35,6 +35,14 @@ public interface DcEventProcessMapper */ int insertDcEventProcess(DcEventProcess dcEventProcess); + /** + * 批量新增事件处理流程 + * + * @param dcEventProcessList 事件处理流程 + * @return 结果 + */ + boolean batchInsertDcEventProcess(List dcEventProcessList); + /** * 修改事件处理流程 * diff --git a/zc-business/src/main/java/com/zc/business/service/IDcEventProcessService.java b/zc-business/src/main/java/com/zc/business/service/IDcEventProcessService.java index bbe9c157..f0023517 100644 --- a/zc-business/src/main/java/com/zc/business/service/IDcEventProcessService.java +++ b/zc-business/src/main/java/com/zc/business/service/IDcEventProcessService.java @@ -1,6 +1,9 @@ package com.zc.business.service; +import java.io.IOException; import java.util.List; + +import com.ruoyi.common.exception.file.InvalidExtensionException; import com.zc.business.domain.DcEventProcess; /** @@ -35,6 +38,14 @@ public interface IDcEventProcessService */ int insertDcEventProcess(DcEventProcess dcEventProcess); + /** + * 批量新增事件处理流程 + * + * @param dcEventProcessList 事件处理流程 + * @return 结果 + */ + boolean batchInsertDcEventProcess(List dcEventProcessList); + /** * 修改事件处理流程 * diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcEventProcessServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcEventProcessServiceImpl.java index e5a2096c..d98b0a7f 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcEventProcessServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcEventProcessServiceImpl.java @@ -1,6 +1,12 @@ package com.zc.business.service.impl; +import java.io.IOException; import java.util.List; + +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.exception.file.InvalidExtensionException; +import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.common.utils.file.MimeTypeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zc.business.mapper.DcEventProcessMapper; @@ -52,9 +58,46 @@ public class DcEventProcessServiceImpl implements IDcEventProcessService @Override public int insertDcEventProcess(DcEventProcess dcEventProcess) { + //如果有文件传入 + if(!dcEventProcess.getFile().isEmpty()){ + try { + String address = FileUploadUtils.upload(RuoYiConfig.getUploadPath(), dcEventProcess.getFile(), MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + dcEventProcess.setContext(address); + String type = address.split("\\.")[1]; + dcEventProcess.setType(type); + } catch (IOException | InvalidExtensionException e){ + e.printStackTrace(); + } + } return dcEventProcessMapper.insertDcEventProcess(dcEventProcess); } + /** + * 新增事件处理流程 + * + * @param dcEventProcessList 事件处理流程 + * @return 结果 + */ + @Override + public boolean batchInsertDcEventProcess(List dcEventProcessList) + { + dcEventProcessList.forEach(dcEventProcess -> { + //如果有文件传入 + if(!dcEventProcess.getFile().isEmpty()){ + try { + String address = FileUploadUtils.upload(RuoYiConfig.getUploadPath(), dcEventProcess.getFile(), MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + dcEventProcess.setContext(address); + String type = address.split("\\.")[1]; + dcEventProcess.setType(type); + } catch (IOException | InvalidExtensionException e){ + e.printStackTrace(); + } + } + }); + + return dcEventProcessMapper.batchInsertDcEventProcess(dcEventProcessList); + } + /** * 修改事件处理流程 * diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java index 53846d7b..38fdf51a 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java @@ -7,17 +7,16 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.system.service.ISysDeptService; import com.zc.business.domain.*; +import com.zc.business.enums.ValueConverter; import com.zc.business.mapper.*; +import com.zc.business.service.IDcEventProcessService; import com.zc.business.service.IDcEventService; import com.zc.business.service.IMiddleDatabaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -67,6 +66,9 @@ public class DcEventServiceImpl extends ServiceImpl impl //查询路网信息 @Autowired private DcFacilityServiceImpl dcFacilityService; + //事件处置记录 + @Autowired + private IDcEventProcessService dcEventProcessService; /** @@ -342,6 +344,25 @@ public class DcEventServiceImpl extends ServiceImpl impl break; } + + //事件处置流程记录 + DcEventProcess dcEventProcess = new DcEventProcess(); + dcEventProcess.setEventId(dcEvent.getId()); + dcEventProcess.setOperationTime(new Date()); + dcEventProcess.setOperator(SecurityUtils.getUserId().toString()); + dcEventProcess.setSource(1); + List processConfigList = dcProcessConfigMapper.selectDcProcessConfigByEventType(dcEvent.getEventType().intValue()); + if (processConfigList != null && processConfigList.size() > 0){ + DcProcessConfig dcProcessConfig = processConfigList.get(0); + dcEventProcess.setProcessType(1); + dcEventProcess.setProcessId(Long.valueOf(dcProcessConfig.getNodeNode())); + dcEventProcess.setProcessName(dcProcessConfig.getProcessNode()); + } + String sourceName = ValueConverter.eventSourceName(dcEvent.getEventSource().toString()); + String typeName = ValueConverter.eventTypeName(dcEvent.getEventType().toString()); + dcEventProcess.setContext("由" + sourceName + "上报了一起" + typeName + "事件"); + dcEventProcessService.insertDcEventProcess(dcEventProcess); + return i7; } else { return -1; @@ -364,6 +385,8 @@ public class DcEventServiceImpl extends ServiceImpl impl if (flag) { //中间库 List mdEventList = new ArrayList<>(); + List dcEventProcessList = new ArrayList<>(); + for (DcEvent dcEvent : dcEventList) { MdEvent mdEvent = new MdEvent(dcEvent); mdEventList.add(mdEvent); @@ -433,8 +456,29 @@ public class DcEventServiceImpl extends ServiceImpl impl break; } + + //事件处置流程记录 + DcEventProcess dcEventProcess = new DcEventProcess(); + dcEventProcess.setEventId(dcEvent.getId()); + dcEventProcess.setOperationTime(new Date()); + dcEventProcess.setOperator(SecurityUtils.getUserId().toString()); + dcEventProcess.setSource(1); + List processConfigList = dcProcessConfigMapper.selectDcProcessConfigByEventType(dcEvent.getEventType().intValue()); + if (processConfigList != null && processConfigList.size() > 0){ + DcProcessConfig dcProcessConfig = processConfigList.get(0); + dcEventProcess.setProcessType(1); + dcEventProcess.setProcessId(Long.valueOf(dcProcessConfig.getNodeNode())); + dcEventProcess.setProcessName(dcProcessConfig.getProcessNode()); + } + String sourceName = ValueConverter.eventSourceName(dcEvent.getEventSource().toString()); + String typeName = ValueConverter.eventTypeName(dcEvent.getEventType().toString()); + dcEventProcess.setContext("由" + sourceName + "上报了一起" + typeName + "事件"); + dcEventProcessList.add(dcEventProcess); } middleDatabaseService.batchInsertMiddleDatabaseEvent(mdEventList); + + //批量插入事件流程记录表 + dcEventProcessService.batchInsertDcEventProcess(dcEventProcessList); } return flag; diff --git a/zc-business/src/main/resources/mapper/business/DcEventProcessMapper.xml b/zc-business/src/main/resources/mapper/business/DcEventProcessMapper.xml index d0a8053f..a4b4986a 100644 --- a/zc-business/src/main/resources/mapper/business/DcEventProcessMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcEventProcessMapper.xml @@ -14,10 +14,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, event_id, operation_time, operator, source, process_type, context, process_id, process_name from dc_event_process + select id, event_id, operation_time, operator, source, process_type, context, process_id, process_name, `type` from dc_event_process