rk
2025-09-29 4ae2363016f558a1537825ed428a21c21a4b0faa
钉钉授权 与 通知开发
已添加6个文件
495 ■■■■■ 文件已修改
server/db/business.warning_event.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningEventCloudController.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningEventMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningEventService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningEventServiceImpl.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/db/business.warning_event.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningevent:create', '新建报警事件记录日志表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningevent:delete', '删除报警事件记录日志表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningevent:update', '修改报警事件记录日志表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningevent:query', '查询报警事件记录日志表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:warningevent:exportExcel', '导出报警事件记录日志表(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningEventCloudController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.WarningEvent;
import com.doumee.service.business.WarningEventService;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/29 11:20
 */
@Api(tags = "报警事件记录日志表")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/warningEvent")
public class WarningEventCloudController extends BaseController {
    @Autowired
    private WarningEventService warningEventService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:warningevent:create")
    public ApiResponse create(@RequestBody WarningEvent warningEvent) {
        return ApiResponse.success(warningEventService.create(warningEvent));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:warningevent:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        warningEventService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:warningevent:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        warningEventService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:warningevent:update")
    public ApiResponse updateById(@RequestBody WarningEvent warningEvent) {
        warningEventService.updateById(warningEvent);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:warningevent:query")
    public ApiResponse<PageData<WarningEvent>> findPage (@RequestBody PageWrap<WarningEvent> pageWrap) {
        return ApiResponse.success(warningEventService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:warningevent:exportExcel")
    public void exportExcel (@RequestBody PageWrap<WarningEvent> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(WarningEvent.class).export(warningEventService.findPage(pageWrap).getRecords(), "报警事件记录日志表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:warningevent:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(warningEventService.findById(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningEventMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.WarningEvent;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/29 11:20
 */
public interface WarningEventMapper extends BaseMapper<WarningEvent> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * æŠ¥è­¦äº‹ä»¶è®°å½•日志表
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/29 11:20
 */
@Data
@ApiModel("报警事件记录日志表")
@TableName("`warning_event`")
public class WarningEvent {
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String info;
    @ApiModelProperty(value = "事件编码(关联warning)", example = "1")
    @ExcelColumn(name="事件编码(关联warning)")
    private Integer warningId;
    @ApiModelProperty(value = "事件标题")
    @ExcelColumn(name="事件标题")
    private String title;
    @ApiModelProperty(value = "事件内容")
    @ExcelColumn(name="事件内容")
    private String content;
    @ApiModelProperty(value = "状态 0未推送 1推送成功2推送失败", example = "1")
    @ExcelColumn(name="状态 0未推送 1推送成功2推送失败")
    private Integer status;
    @ApiModelProperty(value = "所在位置")
    @ExcelColumn(name="所在位置")
    private String region;
    @ApiModelProperty(value = "唯一标识")
    @ExcelColumn(name="唯一标识")
    private String eventId;
    @ApiModelProperty(value = "事件类型")
    @ExcelColumn(name="事件类型")
    private String eventType;
    @ApiModelProperty(value = "事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型")
    @ExcelColumn(name="事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型")
    private String eventLevel;
    @ApiModelProperty(value = "事件发生事件")
    @ExcelColumn(name="事件发生事件")
    private String happenTime;
    @ApiModelProperty(value = "事件图片服务编号")
    @ExcelColumn(name="事件图片服务编号")
    private String imgServeCode;
    @ApiModelProperty(value = "事件图片")
    @ExcelColumn(name="事件图片")
    private String imgurl;
    @ApiModelProperty(value = "报文")
    @ExcelColumn(name="报文")
    private String jsonContent;
    @ApiModelProperty(value = "事件源唯一标识")
    @ExcelColumn(name="事件源唯一标识")
    private String srcIndex;
    @ApiModelProperty(value = "事件源类型")
    @ExcelColumn(name="事件源类型")
    private String srcType;
    @ApiModelProperty(value = "事件源名称")
    @ExcelColumn(name="事件源名称")
    private String srcName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningEventService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.doumee.service.business;
import com.doumee.dao.business.model.WarningEvent;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import java.util.List;
/**
 * æŠ¥è­¦äº‹ä»¶è®°å½•日志表Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/29 11:20
 */
public interface WarningEventService {
    /**
     * åˆ›å»º
     *
     * @param warningEvent å®žä½“对象
     * @return Integer
     */
    Integer create(WarningEvent warningEvent);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param warningEvent å®žä½“对象
     */
    void delete(WarningEvent warningEvent);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param warningEvent å®žä½“对象
     */
    void updateById(WarningEvent warningEvent);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param warningEvents å®žä½“集
     */
    void updateByIdInBatch(List<WarningEvent> warningEvents);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return WarningEvent
     */
    WarningEvent findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param warningEvent å®žä½“对象
     * @return WarningEvent
     */
    WarningEvent findOne(WarningEvent warningEvent);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param warningEvent å®žä½“对象
     * @return List<WarningEvent>
     */
    List<WarningEvent> findList(WarningEvent warningEvent);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<WarningEvent>
     */
    PageData<WarningEvent> findPage(PageWrap<WarningEvent> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param warningEvent å®žä½“对象
     * @return long
     */
    long count(WarningEvent warningEvent);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningEventServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,175 @@
package com.doumee.service.business.impl;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.WarningEventMapper;
import com.doumee.dao.business.model.WarningEvent;
import com.doumee.service.business.WarningEventService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * æŠ¥è­¦äº‹ä»¶è®°å½•日志表Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/29 11:20
 */
@Service
public class WarningEventServiceImpl implements WarningEventService {
    @Autowired
    private WarningEventMapper warningEventMapper;
    @Override
    public Integer create(WarningEvent warningEvent) {
        warningEventMapper.insert(warningEvent);
        return warningEvent.getId();
    }
    @Override
    public void deleteById(Integer id) {
        warningEventMapper.deleteById(id);
    }
    @Override
    public void delete(WarningEvent warningEvent) {
        UpdateWrapper<WarningEvent> deleteWrapper = new UpdateWrapper<>(warningEvent);
        warningEventMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        warningEventMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(WarningEvent warningEvent) {
        warningEventMapper.updateById(warningEvent);
    }
    @Override
    public void updateByIdInBatch(List<WarningEvent> warningEvents) {
        if (CollectionUtils.isEmpty(warningEvents)) {
            return;
        }
        for (WarningEvent warningEvent: warningEvents) {
            this.updateById(warningEvent);
        }
    }
    @Override
    public WarningEvent findById(Integer id) {
        return warningEventMapper.selectById(id);
    }
    @Override
    public WarningEvent findOne(WarningEvent warningEvent) {
        QueryWrapper<WarningEvent> wrapper = new QueryWrapper<>(warningEvent);
        return warningEventMapper.selectOne(wrapper);
    }
    @Override
    public List<WarningEvent> findList(WarningEvent warningEvent) {
        QueryWrapper<WarningEvent> wrapper = new QueryWrapper<>(warningEvent);
        return warningEventMapper.selectList(wrapper);
    }
    @Override
    public PageData<WarningEvent> findPage(PageWrap<WarningEvent> pageWrap) {
        IPage<WarningEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<WarningEvent> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(WarningEvent::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(WarningEvent::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(WarningEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(WarningEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(WarningEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(WarningEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(WarningEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getInfo() != null) {
            queryWrapper.lambda().eq(WarningEvent::getInfo, pageWrap.getModel().getInfo());
        }
        if (pageWrap.getModel().getWarningId() != null) {
            queryWrapper.lambda().eq(WarningEvent::getWarningId, pageWrap.getModel().getWarningId());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(WarningEvent::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getContent() != null) {
            queryWrapper.lambda().eq(WarningEvent::getContent, pageWrap.getModel().getContent());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(WarningEvent::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getRegion() != null) {
            queryWrapper.lambda().eq(WarningEvent::getRegion, pageWrap.getModel().getRegion());
        }
        if (pageWrap.getModel().getEventId() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEventId, pageWrap.getModel().getEventId());
        }
        if (pageWrap.getModel().getEventType() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEventType, pageWrap.getModel().getEventType());
        }
        if (pageWrap.getModel().getEventLevel() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEventLevel, pageWrap.getModel().getEventLevel());
        }
        if (pageWrap.getModel().getHappenTime() != null) {
            queryWrapper.lambda().eq(WarningEvent::getHappenTime, pageWrap.getModel().getHappenTime());
        }
        if (pageWrap.getModel().getImgServeCode() != null) {
            queryWrapper.lambda().eq(WarningEvent::getImgServeCode, pageWrap.getModel().getImgServeCode());
        }
        if (pageWrap.getModel().getImgurl() != null) {
            queryWrapper.lambda().eq(WarningEvent::getImgurl, pageWrap.getModel().getImgurl());
        }
        if (pageWrap.getModel().getJsonContent() != null) {
            queryWrapper.lambda().eq(WarningEvent::getJsonContent, pageWrap.getModel().getJsonContent());
        }
        if (pageWrap.getModel().getSrcIndex() != null) {
            queryWrapper.lambda().eq(WarningEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
        }
        if (pageWrap.getModel().getSrcType() != null) {
            queryWrapper.lambda().eq(WarningEvent::getSrcType, pageWrap.getModel().getSrcType());
        }
        if (pageWrap.getModel().getSrcName() != null) {
            queryWrapper.lambda().eq(WarningEvent::getSrcName, pageWrap.getModel().getSrcName());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(warningEventMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(WarningEvent warningEvent) {
        QueryWrapper<WarningEvent> wrapper = new QueryWrapper<>(warningEvent);
        return warningEventMapper.selectCount(wrapper);
    }
}