Browse Source

Merge remote-tracking branch 'origin/develop' into develop

develop
zhaoxianglong 11 months ago
parent
commit
998aa371bd
  1. 4
      zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java
  2. 22
      zc-business/src/main/java/com/zc/business/controller/DcWarningController.java
  3. 21
      zc-business/src/main/java/com/zc/business/domain/DcWarning.java
  4. 38
      zc-business/src/main/java/com/zc/business/domain/DcWarningBatchConvert.java
  5. 4
      zc-business/src/main/java/com/zc/business/domain/MdEvent.java
  6. 3
      zc-business/src/main/java/com/zc/business/mapper/DcWarningMapper.java
  7. 5
      zc-business/src/main/java/com/zc/business/service/DcEmergencyPlansService.java
  8. 11
      zc-business/src/main/java/com/zc/business/service/IDcEventService.java
  9. 12
      zc-business/src/main/java/com/zc/business/service/IDcWarningService.java
  10. 11
      zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java
  11. 102
      zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java
  12. 77
      zc-business/src/main/java/com/zc/business/service/impl/DcWarningServiceImpl.java
  13. 2
      zc-business/src/main/resources/mapper/business/DcEventMapper.xml
  14. 22
      zc-business/src/main/resources/mapper/business/DcWarningMapper.xml

4
zc-business/src/main/java/com/zc/business/controller/DcEmergencyPlansController.java

@ -123,7 +123,7 @@ public class DcEmergencyPlansController extends BaseController {
@PreAuthorize("@ss.hasPermi('business:plans:edit')")
@PostMapping("/event/confirm")
public AjaxResult eventConfirm(@RequestBody DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) {
return toAjax(dcEmergencyPlansService.executionEventConfirmation(dcEventAnDcEmergencyPlans));
return AjaxResult.success(dcEmergencyPlansService.executionEventConfirmation(dcEventAnDcEmergencyPlans));
}
/**
@ -133,7 +133,7 @@ public class DcEmergencyPlansController extends BaseController {
@PreAuthorize("@ss.hasPermi('business:plans:edit')")
@PostMapping("/warning/confirm")
public AjaxResult warningConfirm(@RequestBody DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) {
return toAjax(dcEmergencyPlansService.executionWarningConfirmation(dcEventAnDcEmergencyPlans));
return AjaxResult.success(dcEmergencyPlansService.executionWarningConfirmation(dcEventAnDcEmergencyPlans));
}
/**

22
zc-business/src/main/java/com/zc/business/controller/DcWarningController.java

@ -1,6 +1,7 @@
package com.zc.business.controller;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.zc.business.domain.DcWarningBatchConvert;
import com.zc.business.service.IDcWarningService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
@ -9,17 +10,13 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.zc.business.domain.DcWarning;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
@ -31,6 +28,7 @@ import java.util.List;
* @author ruoyi
* @date 2024-01-26
*/
@Api(tags = "感知事件")
@RestController
@RequestMapping("/business/warning")
public class DcWarningController extends BaseController
@ -41,6 +39,7 @@ public class DcWarningController extends BaseController
/**
* 查询预警信息列表
*/
@ApiOperation("查询感知事件列表")
@PreAuthorize("@ss.hasPermi('business:warning:list')")
@GetMapping("/list")
public TableDataInfo list(DcWarning dcWarning)
@ -130,4 +129,11 @@ public class DcWarningController extends BaseController
List<HashMap<String,Object>> list = dcWarningService.selectDcWarningoTherConfig(dcWarning);
return getDataTable(list);
}
@ApiOperation("感知事件批量转换")
@PostMapping("/batchConvert")
public AjaxResult batchConvert(@RequestBody DcWarningBatchConvert dcWarningBatchConvert){
return dcWarningService.batchConvert(dcWarningBatchConvert);
}
}

21
zc-business/src/main/java/com/zc/business/domain/DcWarning.java

@ -116,6 +116,11 @@ public class DcWarning extends BaseEntity
private String startStakeMark;
private String endStakeMark;
//开始日期
private String startDate;
//结束日期
private String endDate;
public String getStartStakeMark() {
return startStakeMark;
}
@ -372,6 +377,22 @@ public class DcWarning extends BaseEntity
return otherConfig;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

38
zc-business/src/main/java/com/zc/business/domain/DcWarningBatchConvert.java

@ -0,0 +1,38 @@
package com.zc.business.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
/**
* @Description 感知事件批量处理
*
* @author liuwenge
* @date 2024/3/16 16:27
*/
@ApiModel("感知事件批量处理")
public class DcWarningBatchConvert {
@ApiModelProperty("操作类型:0误报,1确认")
private String type;
@ApiModelProperty("感知事件列表")
private List<DcWarning> warningList;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public List<DcWarning> getWarningList() {
return warningList;
}
public void setWarningList(List<DcWarning> warningList) {
this.warningList = warningList;
}
}

4
zc-business/src/main/java/com/zc/business/domain/MdEvent.java

@ -666,8 +666,8 @@ public class MdEvent
//交通事件详情
this.eventDesc = dcEvent.getDescription();
//发生时间
this.occurTime = dcEvent.getStartTime();
//发生时间
this.occurTime = dcEvent.getOccurrenceTime();
//结束时间
this.endTime = dcEvent.getEndTime();
//发生路段位置桩号
this.stakeNumber = dcEvent.getStakeMark();

3
zc-business/src/main/java/com/zc/business/mapper/DcWarningMapper.java

@ -70,4 +70,7 @@ public interface DcWarningMapper
//AI视频
List<HashMap<String,Object>> selectDcWarningoTherConfig(DcWarning dcWarning);
boolean batchUpdateState(@Param("userId") Long userId,@Param("dcWarningList") List<DcWarning> dcWarningList);
boolean batchDelete(@Param("dcWarningList") List<DcWarning> dcWarningList);
}

5
zc-business/src/main/java/com/zc/business/service/DcEmergencyPlansService.java

@ -1,5 +1,6 @@
package com.zc.business.service;
import com.alibaba.fastjson.JSONArray;
import com.zc.business.domain.*;
import java.util.List;
@ -62,7 +63,7 @@ public interface DcEmergencyPlansService {
* @param dcEventAnDcEmergencyPlans 事件数据 事件预案数据
* @return 结果
*/
int executionEventConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans);
JSONArray executionEventConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans);
/**
* 感知事件确定
@ -70,7 +71,7 @@ public interface DcEmergencyPlansService {
* @param dcEventAnDcEmergencyPlans 事件数据 事件预案数据
* @return 结果
*/
int executionWarningConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans);
JSONArray executionWarningConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans);
/**
* 感知事件-情报板自动生成

11
zc-business/src/main/java/com/zc/business/service/IDcEventService.java

@ -38,6 +38,17 @@ public interface IDcEventService
*/
public int insertDcEvent(DcEvent dcEvent);
public int insertDcEventWarning(DcEvent dcEvent);
/**
* @Description 批量添加事件
*
* @author liuwenge
* @date 2024/3/18 8:43
* @param dcEventList
* @return int
*/
public boolean batchInsertDcEventWarning(List<DcEvent> dcEventList);
/**
* 修改事件信息
*

12
zc-business/src/main/java/com/zc/business/service/IDcWarningService.java

@ -5,6 +5,8 @@ import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.zc.business.domain.DcWarning;
import com.zc.business.domain.DcWarningBatchConvert;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 预警信息Service接口
@ -69,4 +71,14 @@ public interface IDcWarningService
int deleteDcWarningByStringId(DcWarning dcWarning);
List<HashMap<String,Object>> selectDcWarningoTherConfig(DcWarning dcWarning);
/**
* @Description 感知事件批量转换
*
* @author liuwenge
* @date 2024/3/16 16:35
* @param dcWarningBatchConvert
* @return com.ruoyi.common.core.domain.AjaxResult
*/
AjaxResult batchConvert(DcWarningBatchConvert dcWarningBatchConvert);
}

11
zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java

@ -394,7 +394,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService {
* @return 结果
*/
@Override
public int executionEventConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) {
public JSONArray executionEventConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) {
// 获取事件数据
DcEvent dcEvent = dcEventAnDcEmergencyPlans.getDcEvent();
// 方向
@ -497,7 +497,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService {
* @return
*/
@Override
public int executionWarningConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) {
public JSONArray executionWarningConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans) {
// 获取事件数据
DcWarning dcWarning = dcEventAnDcEmergencyPlans.getDcWarning();
@ -514,7 +514,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService {
* @param dcEventAnDcEmergencyPlans 事件数据 事件预案数据
* @return
*/
public int executionConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans,
public JSONArray executionConfirmation(DcEventAnDcEmergencyPlans dcEventAnDcEmergencyPlans,
String stakeMark,
String direction,
String id) {
@ -572,14 +572,15 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService {
eventPlanAssoc.setExecutingControlDevice(deviceIds.toString().replaceFirst(";", ""));
eventPlanAssoc.setExecutingControlResult(resultArray.toJSONString());
eventPlanAssoc.setCreateTime(DateUtils.getNowDate());
return eventPlanAssocMapper.insertEventPlanAssoc(eventPlanAssoc);
eventPlanAssocMapper.insertEventPlanAssoc(eventPlanAssoc);
} else {
EventPlanAssoc selectEventPlanAssoc = eventPlanAssocMapper.selectByEventId(eventPlanAssoc);
selectEventPlanAssoc.setUpdateTime(DateUtils.getNowDate());
selectEventPlanAssoc.setRecoveredControlDevice(deviceIds.toString().replaceFirst(";", ""));
selectEventPlanAssoc.setRecoveredControlResult(resultArray.toJSONString());
return eventPlanAssocMapper.updateEventPlanAssoc(selectEventPlanAssoc);
eventPlanAssocMapper.updateEventPlanAssoc(selectEventPlanAssoc);
}
return resultArray;
}
/**

102
zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java

@ -101,14 +101,14 @@ public class DcEventServiceImpl extends ServiceImpl<DcEventMapper, DcEvent> impl
}
List<DcEvent> dcEventList = dcEventMapper.selectDcEventList(dcEvent);
for (DcEvent dcEvents : dcEventList) {
/*for (DcEvent dcEvents : dcEventList) {
// 根据 deptId 获取部门名称
Long deptId = dcEvents.getDeptId();
String deptName = deptService.selectDeptById(deptId).getDeptName();
// 将部门名称赋值给 deptName 字段
dcEvents.setDeptName(deptName);
}
}*/
return dcEventList;
}
@ -348,6 +348,104 @@ public class DcEventServiceImpl extends ServiceImpl<DcEventMapper, DcEvent> impl
}
}
/**
* @Description 批量添加事件
*
* @author liuwenge
* @date 2024/3/18 8:42
* @param dcEventList
* @return int
*/
@Override
public boolean batchInsertDcEventWarning(List<DcEvent> dcEventList) {
for (DcEvent dcEvent : dcEventList) {
//设置事件Id UUID无下划线格式32
String uuid = dcEvent.getId();
int i7 = dcEventMapper.insertDcEvent(dcEvent);
if (i7 > 0) {
//中间库
MdEvent mdEvent = new MdEvent(dcEvent);
middleDatabaseService.insertMiddleDatabaseEvent(mdEvent);
//获取事件类型
int eventType = Math.toIntExact(dcEvent.getEventType());
switch (eventType) {
//交通事故
case 1:
if (dcEvent.getDcEventAccident() != null) {
dcEvent.getDcEventAccident().setId(uuid);
int i1 = dcEventAccidentMapper.insertDcEventAccident(dcEvent.getDcEventAccident());
}
break;
//车辆事故
case 2:
if (dcEvent.getDcEventVehicleAccident() != null) {
dcEvent.getDcEventVehicleAccident().setId(uuid);
int i5 = dcEventVehicleAccidentMapper.insertDcEventVehicleAccident(dcEvent.getDcEventVehicleAccident());
}
break;
//交通管制
case 3:
if (dcEvent.getDcEventTrafficControl() != null) {
dcEvent.getDcEventTrafficControl().setId(uuid);
int i6 = dcEventTrafficControlMapper.insertDcEventTrafficControl(dcEvent.getDcEventTrafficControl());
}
break;
//交通拥堵
case 4:
if (dcEvent.getDcEventTrafficCongestion() != null) {
dcEvent.getDcEventTrafficCongestion().setId(uuid);
int i4 = dcEventTrafficCongestionMapper.insertDcEventTrafficCongestion(dcEvent.getDcEventTrafficCongestion());
}
break;
//非法上路
case 5:
break;
//路障清除
case 6:
break;
//施工建设
case 7:
if (dcEvent.getDcEventConstruction() != null) {
dcEvent.getDcEventConstruction().setId(uuid);
int i2 = dcEventConstructionMapper.insertDcEventConstruction(dcEvent.getDcEventConstruction());
}
break;
//服务区异常
case 8:
if (dcEvent.getDcEventServiceArea() != null) {
dcEvent.getDcEventServiceArea().setId(uuid);
int i3 = dcEventServiceAreaMapper.insertDcEventServiceArea(dcEvent.getDcEventServiceArea());
}
break;
//设施设备隐患
case 9:
break;
//异常天气
case 10:
if (dcEvent.getDcEventAbnormalWeather() != null) {
dcEvent.getDcEventAbnormalWeather().setId(uuid);
int i = dcEventAbnormalWeatherMapper.insertDcEventAbnormalWeather(dcEvent.getDcEventAbnormalWeather());
}
break;
//其他事件
case 11:
break;
//
default:
break;
}
}
}
return true;
}
/**
* 修改事件信息
*

77
zc-business/src/main/java/com/zc/business/service/impl/DcWarningServiceImpl.java

@ -6,6 +6,7 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.zc.business.domain.DcEvent;
import com.zc.business.domain.DcWarning;
import com.zc.business.domain.DcWarningBatchConvert;
import com.zc.business.enums.ValueConverter;
import com.zc.business.mapper.DcEventMapper;
import com.zc.business.mapper.DcWarningMapper;
@ -16,6 +17,7 @@ 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;
@ -170,4 +172,79 @@ public class DcWarningServiceImpl implements IDcWarningService
{
return dcWarningMapper.selectDcWarningoTherConfig(dcWarning);
}
/**
* @Description 感知事件批量转换
*
* @author liuwenge
* @date 2024/3/16 16:36
* @param dcWarningBatchConvert
* @return com.ruoyi.common.core.domain.AjaxResult
*/
@Override
@Transactional
public AjaxResult batchConvert(DcWarningBatchConvert dcWarningBatchConvert){
if (StringUtils.isBlank(dcWarningBatchConvert.getType())){
return AjaxResult.error("请选择操作类型");
}
List<DcWarning> dcWarningList = dcWarningBatchConvert.getWarningList();
if (dcWarningList != null && dcWarningList.size() > 0){
//误报,批量删除
if ("0".equals(dcWarningBatchConvert.getType())){
dcWarningMapper.batchDelete(dcWarningList);
} else {
//确认,批量转换为事件
List<DcEvent> dcEventList = new ArrayList<>();
for (DcWarning dcWarning : dcWarningList) {
if (dcWarning == null || dcWarning.getId() == null || StringUtils.isBlank(dcWarning.getStakeMark()) ||
StringUtils.isBlank(dcWarning.getDirection())) {
return AjaxResult.error("参数错误");
}
dcWarning.setUserId(SecurityUtils.getUserId());
DcEvent dcEvent = new DcEvent();
dcEvent.setId(dcWarning.getId());//id
dcEvent.setStakeMark(dcWarning.getStakeMark());//桩号
dcEvent.setDirection(dcWarning.getDirection());//方向
dcEvent.setDeptId(dcWarning.getDeptId());//部门
dcEvent.setOccurrenceTime(dcWarning.getWarningTime());//预警时间
if (dcWarning.getWarningLevel() != null) {
dcEvent.setEventLevel(dcWarning.getWarningLevel().longValue());//事件等级
}
if (dcWarning.getWarningSource() != null) {
dcEvent.setEventSource((long) ValueConverter.convertValueSource(dcWarning.getWarningSource()));//事件来源
}
if (dcWarning.getWarningType() != null) {
dcEvent.setEventType((long) ValueConverter.convertValueHost(dcWarning.getWarningType()));//事件主类
}
if (StringUtils.isBlank(dcWarning.getWarningSubclass())) {
dcEvent.setEventSubclass(ValueConverter.convertValueSon(dcWarning.getWarningSubclass()));//事件子类
}
dcEvent.setEventTitle(dcWarning.getWarningTitle());//标题
dcEvent.setLang(dcWarning.getLane());//车道
dcEvent.setRemark(dcEvent.getRemark());//备注
dcEvent.setIsPerceived(1);//是否感知事件
dcEvent.setEventState(Long.valueOf(1));//状态为处理中
dcEvent.setCreateTime(DateUtils.getNowDate());//创建时间
dcEvent.setUserId(SecurityUtils.getUserId());//处置人员
dcEventList.add(dcEvent);
}
//批量更改感知事件状态
dcWarningMapper.batchUpdateState(SecurityUtils.getUserId(),dcWarningList);
//批量插入事件表
dcEventService.batchInsertDcEventWarning(dcEventList);
}
} else {
return AjaxResult.error("请选择感知事件");
}
return AjaxResult.success("批量操作成功");
}
}

2
zc-business/src/main/resources/mapper/business/DcEventMapper.xml

@ -144,6 +144,7 @@
SELECT
id,
dc_event.dept_id as dept_id,
sys_dept.dept_name,
stake_mark,
CASE direction
WHEN '1' THEN '菏泽方向'
@ -257,6 +258,7 @@
FROM
dc_event
LEFT JOIN sys_user on dc_event.user_id = sys_user.user_id
LEFT JOIN sys_dept on dc_event.dept_id = sys_dept.dept_id
</sql>
<sql id="selectDcEventVoListAll"> select dc_event.id AS id,

22
zc-business/src/main/resources/mapper/business/DcWarningMapper.xml

@ -59,6 +59,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="warningTitle != null and warningTitle != ''"> and warning_title = #{warningTitle}</if>
<if test="otherConfig != null and otherConfig != ''"> and other_config = #{otherConfig}</if>
<if test="lane != null and lane != ''"> and lane = #{lane}</if>
<if test="startDate != null and startDate != ''"> and date_format(warning_time,'%Y-%m-%d') >= #{startDate}</if>
<if test="endDate != null and endDate != ''"> and date_format(warning_time,'%Y-%m-%d') &lt;= #{endDate}</if>
</where>
</select>
@ -148,6 +150,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update dc_warning set warning_state=2,user_id=#{userId} where id=#{id}
</update>
<update id="batchUpdateState">
update dc_warning set warning_state = 2,user_id = #{userId}
where id in
<foreach collection="dcWarningList" item="item" index="index"
separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
<delete id="deleteDcWarningById" parameterType="Integer">
delete from dc_warning where id = #{id}
</delete>
@ -158,6 +170,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<delete id="deleteDcWarningByStringId">
delete from dc_warning where id= #{id}
</delete>
<delete id="batchDelete">
delete from dc_warning
where id in
<foreach collection="dcWarningList" item="item" index="index"
separator="," open="(" close=")">
#{item.id}
</foreach>
</delete>
<select id="selectCount" resultType="int">
SELECT COUNT(*)AS count FROM dc_warning
</select>

Loading…
Cancel
Save