wl
2022-11-09 eb41baf336689cce9344e95c1bf1b0c702fc77d5
违规检索和对导出进行封装
10个文件已修改
4个文件已添加
548 ■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/controller/user/UmsAdminLogController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/cockpit/teamConstruction/TeamConstructionController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/epuipment/EquipmentBayonetController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/caseHandler/QueryForViolationParam.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/caseHandler/Violations.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/casePool/QueryForViolationVO.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnVO.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/controller/user/UmsAdminLogController.java
@@ -1,8 +1,6 @@
package com.ycl.controller.user;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.annotation.LogSave;
import com.ycl.api.CommonResult;
import com.ycl.dto.log.LogQueryParams;
@@ -10,6 +8,7 @@
import com.ycl.entity.user.vo.UmsAdminLogVO;
import com.ycl.service.user.IAdminLoginLogService;
import com.ycl.service.user.UmsAdminService;
import com.ycl.utils.EasyExcelUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
@@ -17,8 +16,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
@RestController
@@ -62,12 +59,7 @@
    @SneakyThrows
    @LogSave(operationType = "日志管理", contain = "导出日志")
    public void export(HttpServletResponse response, LogQueryParams logQueryParams) {
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx");
        EasyExcel
                .write(response.getOutputStream(), UmsAdminLogVO.class)
                .sheet("数据")
                .doWrite(iAdminLoginLogService.pageList(logQueryParams).getRecords());
        String sheet = "数据";
        EasyExcelUtils.export(response, sheet, UmsAdminLogVO.class, iAdminLoginLogService.pageList(logQueryParams).getRecords());
    }
}
ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java
New file
@@ -0,0 +1,28 @@
package com.ycl.utils;
import com.alibaba.excel.EasyExcel;
import lombok.SneakyThrows;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Collection;
public class EasyExcelUtils {
    /**
     * @Description 导出
     * @Param [response , sheetName sheet名字, className 类名, collection data]
     * @return void
     **/
    @SneakyThrows
    public static void export(HttpServletResponse response, String sheetName, Class className, Collection<?> collection) {
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx");
        EasyExcel.write(response.getOutputStream(), className)
                .sheet(sheetName)
                .doWrite(collection);
    }
}
ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java
@@ -1,5 +1,6 @@
package com.ycl.controller.caseHandler;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -9,6 +10,7 @@
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.util.UtilNumber;
import com.ycl.controller.BaseController;
import com.ycl.dto.caseHandler.QueryForViolationParam;
import com.ycl.dto.casePool.IllegalBuildingParam;
import com.ycl.dto.casePool.ViolationParam;
import com.ycl.entity.caseHandler.BaseCase;
@@ -18,6 +20,8 @@
import com.ycl.service.caseHandler.IDisposeRecordService;
import com.ycl.service.caseHandler.IIllegalBuildingService;
import com.ycl.service.caseHandler.IViolationsService;
import com.ycl.utils.EasyExcelUtils;
import com.ycl.vo.casePool.QueryForViolationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -27,6 +31,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
@@ -282,4 +287,17 @@
                                  @RequestParam(required = false) String site) {
        return CommonResult.success(baseCaseService.selectPage(new Page<BaseCase>().setCurrent(current).setSize(pageSize), number, communityId, categories, startTime, endTime, site));
    }
    @GetMapping("/query_for_violation")
    @ApiOperation("违规检索")
    public CommonResult queryForViolation(QueryForViolationParam queryForViolationParam) {
        return CommonResult.success(baseCaseService.selectViolation(queryForViolationParam));
    }
    @PostMapping("/query_for_violation/export")
    @ApiOperation("违规检索-导出")
    public void queryForViolationExport(HttpServletResponse response, QueryForViolationParam queryForViolationParam) {
        String sheetName = "违规数据";
        EasyExcelUtils.export(response, sheetName, QueryForViolationVO.class, baseCaseService.selectViolation(queryForViolationParam).getRecords());
    }
}
ycl-platform/src/main/java/com/ycl/controller/cockpit/teamConstruction/TeamConstructionController.java
@@ -12,6 +12,7 @@
import com.ycl.controller.BaseController;
import com.ycl.entity.cockpitManage.TeamConstruction;
import com.ycl.service.cockpitManage.ITeamConstructionService;
import com.ycl.utils.EasyExcelUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -24,7 +25,6 @@
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
 * <p>
@@ -58,27 +58,27 @@
        return CommonResult.success(iTeamConstructionService
                .page(new Page<TeamConstruction>().setSize(size).setCurrent(current), new LambdaQueryWrapper<TeamConstruction>()
                        .like(StringUtils.isNotBlank(departName), TeamConstruction::getName, departName)
                        .eq( status != null, TeamConstruction::getStatus, status)
                        .eq(status != null, TeamConstruction::getStatus, status)
                        .eq(TeamConstruction::getIsDelete, isDelete)));
    }
    @PostMapping("/addition")
    @ApiOperation("添加")
    @LogSave(operationType = "队伍建设管理",contain = "添加")
    @LogSave(operationType = "队伍建设管理", contain = "添加")
    public CommonResult add(@RequestBody TeamConstruction teamConstruction) {
        return CommonResult.success(iTeamConstructionService.save(teamConstruction));
    }
    @PutMapping("/modification")
    @ApiOperation("修改")
    @LogSave(operationType = "队伍建设管理",contain = "修改")
    @LogSave(operationType = "队伍建设管理", contain = "修改")
    public CommonResult modify(@RequestBody TeamConstruction teamConstruction) {
        return CommonResult.success(iTeamConstructionService.updateById(teamConstruction));
    }
    @DeleteMapping("/deletion")
    @ApiOperation("删除")
    @LogSave(operationType = "队伍建设管理",contain = "删除")
    @LogSave(operationType = "队伍建设管理", contain = "删除")
    public CommonResult delete(@RequestParam Long id) {
        Integer isDelete = 1;
        TeamConstruction teamConstruction = new TeamConstruction();
@@ -89,7 +89,7 @@
    @PostMapping("/export")
    @ApiOperation("导出")
    @LogSave(operationType = "队伍建设管理",contain = "导出")
    @LogSave(operationType = "队伍建设管理", contain = "导出")
    @ApiImplicitParams(
            {
                    @ApiImplicitParam(name = "size", required = true, value = "页面数量"),
@@ -104,26 +104,20 @@
                       @RequestParam(name = "status", required = false) Integer status,
                       HttpServletResponse response) {
        Integer isDelete = 0;
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-disposition", "attachment;filename=" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx");
        EasyExcel
                .write(response.getOutputStream(), TeamConstruction.class)
                .sheet("数据")
                .doWrite(iTeamConstructionService
                        .page(new Page<TeamConstruction>().setSize(size).setCurrent(current), new LambdaQueryWrapper<TeamConstruction>()
                                .like(StringUtils.isNotBlank(departName), TeamConstruction::getName, departName)
                                .eq(status != null, TeamConstruction::getStatus, status)
                                .eq(TeamConstruction::getIsDelete, isDelete))
                        .getRecords());
        String sheetName = "数据";
        EasyExcelUtils.export(response, sheetName, TeamConstruction.class, iTeamConstructionService
                .page(new Page<TeamConstruction>().setSize(size).setCurrent(current), new LambdaQueryWrapper<TeamConstruction>()
                        .like(StringUtils.isNotBlank(departName), TeamConstruction::getName, departName)
                        .eq(status != null, TeamConstruction::getStatus, status)
                        .eq(TeamConstruction::getIsDelete, isDelete))
                .getRecords());
    }
    @PostMapping("/import")
    @ApiOperation("导入")
    @SneakyThrows
    @LogSave(operationType = "队伍建设管理",contain = "导入")
    @LogSave(operationType = "队伍建设管理", contain = "导入")
    public CommonResult export(MultipartFile multipartFile) {
        EasyExcel.read(multipartFile.getInputStream(), TeamConstruction.class, new ReadListener() {
            @Override
ycl-platform/src/main/java/com/ycl/controller/epuipment/EquipmentBayonetController.java
@@ -11,6 +11,7 @@
import com.ycl.entity.equipment.EquipmentBayonet;
import com.ycl.service.dict.IDataDictionaryService;
import com.ycl.service.equipment.IEquipmentBayonetService;
import com.ycl.utils.EasyExcelUtils;
import com.ycl.vo.equipment.EquipmentBayonetVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -83,7 +84,7 @@
    @GetMapping("/export")
    @ApiOperation("导出")
    @SneakyThrows
    @LogSave(operationType = "卡口管理", contain = "删除卡口")
    @LogSave(operationType = "卡口管理", contain = "导出卡口")
    public void export(HttpServletResponse response,
                       @RequestParam(required = false) Integer size,
                       @RequestParam(required = false) Integer current,
@@ -91,23 +92,17 @@
        Page<EquipmentBayonet> equipmentBayonetPage = new Page<>();
        equipmentBayonetPage.setCurrent(current);
        equipmentBayonetPage.setSize(size);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx");
        EasyExcel.write(response.getOutputStream(), EquipmentBayonetVO.class)
                .sheet("数据")
                .doWrite(iEquipmentBayonetService
                        .page(equipmentBayonetPage, new LambdaQueryWrapper<EquipmentBayonet>()
                                .like(StringUtils.isNotBlank(bayonetName), EquipmentBayonet::getBayonetName, bayonetName))
                        .getRecords()
                        .stream()
                        .map(item -> {
                            EquipmentBayonetVO equipmentBayonetVO = new EquipmentBayonetVO();
                            BeanUtils.copyProperties(item, equipmentBayonetVO);
                            equipmentBayonetVO.setFrontEndType(iDataDictionaryService.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getId, item.getFrontEndType())).getName());
                            equipmentBayonetVO.setInOutCityType(iDataDictionaryService.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getId, item.getInOutCityType())).getName());
                            return equipmentBayonetVO;
                        }).collect(Collectors.toList()));
        EasyExcelUtils.export(response,"数据",EquipmentBayonetVO.class,iEquipmentBayonetService
                .page(equipmentBayonetPage, new LambdaQueryWrapper<EquipmentBayonet>()
                        .like(StringUtils.isNotBlank(bayonetName), EquipmentBayonet::getBayonetName, bayonetName))
                .getRecords()
                .stream()
                .map(item -> {
                    EquipmentBayonetVO equipmentBayonetVO = new EquipmentBayonetVO();
                    BeanUtils.copyProperties(item, equipmentBayonetVO);
                    equipmentBayonetVO.setFrontEndType(iDataDictionaryService.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getId, item.getFrontEndType())).getName());
                    equipmentBayonetVO.setInOutCityType(iDataDictionaryService.getOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getId, item.getInOutCityType())).getName());
                    return equipmentBayonetVO;
                }).collect(Collectors.toList()));
    }
}
}
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -44,9 +44,9 @@
        return CommonResult.success(iMessageService.sendMessage(messageParam));
    }
    @ApiOperation(value = "获取消息分页查询")
    @RequestMapping(value = "/list", method = RequestMethod.POST)
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    public CommonResult<IPage<Message>> list(@Validated @RequestBody MessageParam messageParam) {
    public CommonResult<IPage<Message>> list(MessageParam messageParam) {
        return CommonResult.success(iMessageService.list(messageParam));
    }
@@ -87,6 +87,4 @@
        }
        return CommonResult.failed();
    }
}
}
ycl-platform/src/main/java/com/ycl/dto/caseHandler/QueryForViolationParam.java
New file
@@ -0,0 +1,101 @@
package com.ycl.dto.caseHandler;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ycl.api.BasePageDTO;
import com.ycl.api.BasePageVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "添加违规案件")
public class QueryForViolationParam  extends BasePageVO {
    /**
     * 事件来源(1-视频 2-手动登记)
     */
    @TableField("event_source")
    @ApiModelProperty(value = "事件来源(1-视频 2-手动登记)")
    private Integer eventSource;
    /**
     * 大类
     */
    @ApiModelProperty(value = "大类")
    @NotNull(message = "不允许大类为空")
    private Integer categoryId;
    /**
     * 报警时间
     */
    private String startTime;
    /**
     * 报警时间
     */
    private String endTime;
    /**
     * 小类
     */
    @ApiModelProperty(value = "小类")
    @NotNull(message = "不允许小类为空")
    private Integer typeId;
    /**
     * 案件等级
     */
    @ApiModelProperty(value = "案件等级")
    @NotNull(message = "不允许案件等级为空")
    private Integer gradeId;
    /**
     * 所属街道
     */
    @ApiModelProperty(value = "所属街道")
    @NotNull(message = "不允许所属街道为空")
    private Integer streetId;
    /**
     * 所属社区
     */
    @ApiModelProperty(value = "所属社区")
    @NotNull(message = "不允许所属社区为空")
    private Integer communityId;
    /**
     * 所属社区
     */
    @ApiModelProperty(value = "监控点位id")
    private Integer videoPointId;
    /**
     * 所属社区
     */
    @ApiModelProperty(value = "状态 7 未审核 8 已经审核 9 结案")
    private Byte state;
    /**
     * 报警点位 事发地点
     */
    @ApiModelProperty(value = "事发地点")
    @NotBlank(message = "不允许事发地点为空")
    private String site;
    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号")
    private String carNumber;
    @ApiModelProperty(value = "处理意见")
    private String handlingOpinion;
    @ApiModelProperty(value = "案件编码")
    private String code;
}
ycl-platform/src/main/java/com/ycl/entity/caseHandler/Violations.java
@@ -118,6 +118,13 @@
    private Integer videoAlarmReportId;
    /**
     * 视频报警id
     */
    @TableField("video_point_id")
    @ApiModelProperty(value = "视频点位")
    private Integer videoPointId;
    /**
     * 大类文本
     */
    @TableField(value = "category_text",exist = false)
ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java
@@ -4,9 +4,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.bo.casePool.CasePoolIllegalBuildingDO;
import com.ycl.bo.casePool.CasePoolViolationDO;
import com.ycl.dto.caseHandler.QueryForViolationParam;
import com.ycl.entity.caseHandler.BaseCase;
import com.ycl.vo.casePool.CasePoolIllegalBuildingVO;
import com.ycl.vo.casePool.CasePoolViolationVO;
import com.ycl.vo.casePool.QueryForViolationVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -28,4 +30,6 @@
    BaseCase selectCondMap(Map map);
    List<BaseCase> selectBaseCasePage(Page<BaseCase> page, @Param("code") String number,@Param("communityId") Integer communityId, @Param("categories") Integer categories, @Param("startTime") String startTime,@Param("endTime") String endTime,@Param("site") String site);
    Page<QueryForViolationVO> selectViolationPage(Page<QueryForViolationVO> setCurrent, QueryForViolationParam queryForViolationParam);
}
ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java
@@ -2,10 +2,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.dto.caseHandler.QueryForViolationParam;
import com.ycl.dto.casePool.IllegalBuildingParam;
import com.ycl.dto.casePool.ViolationParam;
import com.ycl.entity.caseHandler.BaseCase;
import com.ycl.entity.caseHandler.BaseCaseDetail;
import com.ycl.vo.casePool.QueryForViolationVO;
import java.util.ArrayList;
import java.util.List;
@@ -53,4 +55,6 @@
    void endCase(Long caseId, String result,String opinion);
    List<BaseCase> selectPage(Page<BaseCase> setSize, String number, Integer communityId, Integer categories, String startTime, String endTime, String site);
    Page<QueryForViolationVO> selectViolation(QueryForViolationParam queryForViolationParam);
}
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -11,6 +11,7 @@
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.constant.StepName;
import com.ycl.common.util.DateUtil;
import com.ycl.dto.caseHandler.QueryForViolationParam;
import com.ycl.dto.casePool.IllegalBuildingParam;
import com.ycl.dto.casePool.ViolationParam;
import com.ycl.entity.caseHandler.*;
@@ -26,10 +27,7 @@
import com.ycl.service.caseHandler.IBaseCaseService;
import com.ycl.service.caseHandler.IViolationsService;
import com.ycl.service.video.IVideoAlarmReportService;
import com.ycl.vo.casePool.CasePoolViolationVO;
import com.ycl.vo.casePool.CurrentSitVo;
import com.ycl.vo.casePool.FilesPictureVo;
import com.ycl.vo.casePool.HandlePassVo;
import com.ycl.vo.casePool.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -353,6 +351,7 @@
        baseCase.setState(BaseCaseStatus.CLOSING_REGISTER);
        baseCase.setId(caseId);
        baseCase.setFinalOpinion(opinion);
        baseCase.setCloseTime(LocalDateTime.now());
        baseCaseMapper.updateById(baseCase);
        QueryWrapper<WorkflowConfigStep> stepQurey = new QueryWrapper<>();
@@ -379,4 +378,12 @@
    public List<BaseCase> selectPage(Page<BaseCase> page, String number, Integer communityId, Integer categories, String startTime, String endTime, String site) {
        return baseCaseMapper.selectBaseCasePage(page, number, communityId, categories, startTime, endTime, site);
    }
    @Override
    public Page<QueryForViolationVO> selectViolation(QueryForViolationParam queryForViolationParam) {
        return baseCaseMapper.selectViolationPage(
                new Page<QueryForViolationVO>()
                        .setSize(queryForViolationParam.getPageSize())
                        .setCurrent(queryForViolationParam.getCurrent()), queryForViolationParam);
    }
}
ycl-platform/src/main/java/com/ycl/vo/casePool/QueryForViolationVO.java
New file
@@ -0,0 +1,100 @@
package com.ycl.vo.casePool;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "添加违规案件")
public class QueryForViolationVO {
    /**
     * 事件来源(1-视频 2-手动登记)
     */
    @TableField("event_source")
    @ApiModelProperty(value = "事件来源(1-视频 2-手动登记)")
    @ExcelProperty(value = "事件来源", index = 1)
    private String eventSource;
    /**
     * 大类
     */
    @ApiModelProperty(value = "大类")
    @NotNull(message = "不允许大类为空")
    @ExcelProperty(value = "大类", index = 2)
    private String categoryName;
    /**
     * 报警时间
     */
    @ExcelProperty(value = "报警时间", index = 8)
    private String alarmTime;
    /**
     * 小类
     */
    @ApiModelProperty(value = "小类")
    @ExcelProperty(value = "小类", index = 3)
    private String typeName;
    /**
     * 案件等级
     */
    @ApiModelProperty(value = "案件等级")
    @NotNull(message = "不允许案件等级为空")
    @ExcelProperty(value = "事件等级", index = 4)
    private String gradeName;
    /**
     * 所属街道
     */
    @ApiModelProperty(value = "街道")
    @NotNull(message = "不允许所属街道为空")
    @ExcelProperty(value = "街道", index = 7)
    private String streetName;
    /**
     * 所属社区
     */
    @ApiModelProperty(value = "所属社区")
    @ExcelProperty(value = "社区", index = 6)
    private String communityName;
    @ApiModelProperty("持续时间")
    @ExcelIgnore
    private String continueTime;
    /**
     * 报警点位 事发地点
     */
    @ApiModelProperty(value = "事发地点")
    @ExcelProperty(value = "报警点位", index = 5)
    private String site;
    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号")
    @ExcelProperty(value = "车牌号码", index = 9)
    private String carNumber;
    @ApiModelProperty(value = "审核状态")
    @ExcelProperty(value = "审核状态", index = 10)
    private String state;
    @ApiModelProperty(value = "处理意见")
    @ExcelProperty(value = "处理意见", index = 11)
    private String handlingOpinion;
    @ApiModelProperty(value = "图片")
    @ExcelIgnore
    private String url;
    @ApiModelProperty(value = "案件编码")
    @ExcelProperty(value = "案件编号", index = 0)
    private String code;
}
ycl-platform/src/main/java/com/ycl/vo/message/MessageColumnVO.java
New file
@@ -0,0 +1,99 @@
package com.ycl.vo.message;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 *  消息栏目  实体类
 * </p>
 *
 * @author mg
 * @since 2022-10-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ums_message_column")
@ApiModel(value = "消息栏目表")
public class MessageColumnVO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 栏目名称
     */
    @TableField("column_name")
    @ApiModelProperty(value = "栏目名称")
    @NotBlank(message = "栏目名称为空")
    private String columnName;
    /**
     * 栏目编码
     */
    @TableField("column_number")
    @ApiModelProperty(value = "栏目编码")
    @NotBlank(message = "栏目编码为空")
    private String columnNumber;
    /**
     * 公告数
     */
    @TableField("notice_amount")
    @ApiModelProperty(value = "公告数")
    private Integer noticeAmount;
    /**
     * 是否显示
     */
    @TableField("is_show")
    @ApiModelProperty(value = "是否显示")
    private Integer isShow;
    /**
     * 描述
     */
    @TableField("description")
    @ApiModelProperty(value = "描述")
    private String description;
    /**
     * 创建人
     */
    @TableField("create_user")
    @ApiModelProperty(value = "创建人")
    private Long createUser;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 更新人
     */
    @TableField("update_user")
    @ApiModelProperty(value = "创建人")
    private Long updateUser;
    /**
     * 更新时间
     */
    @TableField("update_time")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
}
ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
@@ -148,4 +148,85 @@
            </if>
        </where>
    </select>
    <select id="selectViolationPage" resultType="com.ycl.vo.casePool.QueryForViolationVO"
            parameterType="com.ycl.dto.caseHandler.QueryForViolationParam">
        SELECT
        t1.`code`,
        t1.alarm_time,
        t1.handling_opinion,
        CASE
        t1.event_source
        WHEN 1 THEN
        "视频巡查"
        WHEN 2 THEN
        "人工上报"
        END AS event_source,
        t1.site,
        CASE
        t1.state
        WHEN 7 THEN
        "待审核"
        WHEN 8 THEN
        "已审核"
        END AS state,
        t3.`name` as categoryName,
        t4.`name` AS typeName,
        t5.`name` as gradeName,
        t2.car_number,
        t6.region_name as communityName,
        t7.region_name as streetName,
        t8.url,
        t9.address
        FROM
        ums_base_case t1
        LEFT JOIN ums_violations t2 on t1.id=t2.id
        LEFT JOIN ums_data_dictionary t3 on t3.id=t2.category_id
        LEFT JOIN ums_data_dictionary t4 on t4.id=t2.type_id
        LEFT JOIN ums_data_dictionary t5 on t5.id=t2.grade_id
        LEFT JOIN ums_sccg_region t6 on t6.id=t1.community_id
        LEFT JOIN ums_sccg_region t7 on t7.id=t1.street_id
        LEFT JOIN ums_image_resources t8 on t8.belong_to_id=t1.id
        LEFT JOIN ums_video_point t9 on t9.id=t2.video_point_id
        <where>
            t1.state IN (7,8)
            <if test="queryForViolationParam.eventSource != null">
                and t1.event_source=#{queryForViolationParam.eventSource}
            </if>
            <if test="queryForViolationParam.categoryId != null">
                and t2.category_id=#{queryForViolationParam.categoryId}
            </if>
            <if test="queryForViolationParam.startTime != null and queryForViolationParam.startTime !='' and queryForViolationParam.endTime !=null and queryForViolationParam.endTime !=''">
                and t1.alarm_time between #{queryForViolationParam.startTime} and #{queryForViolationParam.endTime}
            </if>
            <if test="queryForViolationParam.code != null and queryForViolationParam.code != '' ">
                and t1.code like concat('%',#{queryForViolationParam.code},'%')
            </if>
            <if test=" queryForViolationParam.typeId!= null">
                and t2.type_id=#{v.typeId}
            </if>
            <if test="queryForViolationParam.gradeId != null">
                and t2.grade_id=#{queryForViolationParam.gradeId}
            </if>
            <if test="queryForViolationParam.streetId != null">
                and t1.street_id=#{queryForViolationParam.streetId}
            </if>
            <if test="queryForViolationParam.communityId != null">
                and t1.community_id=#{queryForViolationParam.communityId}
            </if>
            <if test="queryForViolationParam.state != null">
                and t1.state=#{queryForViolationParam.state}
            </if>
            <if test="queryForViolationParam.carNumber != null and  queryForViolationParam.carNumber!=''">
                and t1.car_umber like concat('%',#{queryForViolationParam.carNumber},'%')
            </if>
            <if test="queryForViolationParam.videoPointId != null">
                and t1.video_point_id=#{queryForViolationParam.videoPointId}
            </if>
            <if test="queryForViolationParam.handlingOpinion != null and queryForViolationParam.handlingOpinion !=''">
                and t1.handling_opinion like concat('%',#{queryForViolationParam.handlingOpinion},'%')
            </if>
        </where>
    </select>
</mapper>