package com.ycl.controller.caseHandler;
|
|
import cn.hutool.core.collection.CollUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ycl.annotation.LogSave;
|
import com.ycl.api.CommonResult;
|
import com.ycl.bo.AdminUserDetails;
|
import com.ycl.controller.BaseController;
|
import com.ycl.common.constant.BaseCaseStatus;
|
import com.ycl.common.util.UtilNumber;
|
import com.ycl.dto.caseHandler.QueryForViolationParam;
|
import com.ycl.dto.casePool.IllegalBuildingParam;
|
import com.ycl.dto.casePool.VideoInspectParam;
|
import com.ycl.dto.casePool.ViolationParam;
|
import com.ycl.entity.caseHandler.BaseCase;
|
import com.ycl.entity.caseHandler.BaseCaseDetail;
|
import com.ycl.entity.caseHandler.DisposeRecord;
|
import com.ycl.entity.resources.ImageResources;
|
import com.ycl.entity.resources.VideoResources;
|
import com.ycl.service.caseHandler.IBaseCaseService;
|
import com.ycl.service.caseHandler.IDisposeRecordService;
|
import com.ycl.service.caseHandler.IIllegalBuildingService;
|
import com.ycl.service.caseHandler.IViolationsService;
|
import com.ycl.service.resources.IImageResourcesService;
|
import com.ycl.service.resources.IVideoResourcesService;
|
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;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
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;
|
|
|
/**
|
* <p>
|
* 案件基本信息 前端控制器
|
* </p>
|
*
|
* @author wl
|
* @since 2022-09-24
|
*/
|
@RestController
|
@RequestMapping("/base_case")
|
@Api(tags = "案件池")
|
public class BaseCaseController extends BaseController {
|
|
private IBaseCaseService baseCaseService;
|
|
@Autowired
|
IViolationsService violationsService;
|
|
@Autowired
|
IIllegalBuildingService illegalBuildingService;
|
|
@Autowired
|
IDisposeRecordService iDisposeRecordService;
|
|
@Autowired
|
UtilNumber utilNumber;
|
|
@Autowired
|
IImageResourcesService iImageResourcesService;
|
|
@Autowired
|
IVideoResourcesService iVideoResourcesService;
|
|
|
@Autowired
|
public void setBaseCaseService(IBaseCaseService baseCaseService) {
|
this.baseCaseService = baseCaseService;
|
}
|
|
@ApiOperation(value = "上传市平台")
|
@PostMapping("/upload-event/{caseId}")
|
public CommonResult uploadEvent(@PathVariable Long caseId) {
|
String msg = baseCaseService.uploadEvent(caseId);
|
if (StringUtils.isEmpty(msg)) {
|
return CommonResult.success(msg);
|
} else {
|
return CommonResult.failed(msg);
|
}
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description query illegal building and violation
|
* @Param [size, current, state, type, resource]
|
**/
|
/* @ApiOperation(value = "查询违规违建")
|
@GetMapping("/query")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "state", value = "处理状态(0-待处理1-误报2-上报3-再学习/再训练4暂不处理5立案6调度7处置8核查9结案)", dataType = "Integer"),
|
@ApiImplicitParam(name = "type", value = "1 违规,2 违建", dataType = "Integer"),
|
@ApiImplicitParam(name = "resource", value = "1 视频,2 手动", dataType = "Integer")
|
})
|
public CommonResult searchViolation(@RequestParam Integer size,
|
@RequestParam Integer current,
|
@RequestParam Integer state,
|
@RequestParam(required = false) Integer type,
|
@RequestParam(required = false) Integer resource) {
|
if (state != null) {
|
Page<Object> queryList;
|
Integer violation = 1;
|
Integer illegalBuilding = 2;
|
if (type == violation) {
|
queryList = baseCaseService.listViolationsPage(new Page<>().setCurrent(current).setSize(size), state, resource);
|
} else if (type == illegalBuilding) {
|
queryList = baseCaseService.listIllegalBuilding(new Page<>().setCurrent(current).setSize(size), state, resource);
|
} else {
|
return CommonResult.failed("bad request url");
|
}
|
return CommonResult.success(queryList);
|
}
|
return CommonResult.failed("request parameter is null");
|
}*/
|
@ApiOperation(value = "查询违规违建")
|
@GetMapping("/query")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "state", value = "处理状态(0-待处理1-误报2-上报3-再学习/再训练4暂不处理5立案6调度7处置8核查9结案)", dataType = "Integer"),
|
@ApiImplicitParam(name = "type", value = "1 违规,2 违建", dataType = "Integer"),
|
@ApiImplicitParam(name = "resource", value = "1 视频,2 手动", dataType = "Integer"),
|
@ApiImplicitParam(name = "code", dataType = "String"),
|
@ApiImplicitParam(name = "categoryBig", dataType = "String"),
|
@ApiImplicitParam(name = "categorySmall", dataType = "String"),
|
@ApiImplicitParam(name = "street", dataType = "Integer"),
|
@ApiImplicitParam(name = "site", dataType = "String"),
|
@ApiImplicitParam(name = "startTime", dataType = "String"),
|
@ApiImplicitParam(name = "endTime", dataType = "String")
|
|
})
|
public CommonResult searchViolation(@RequestParam Integer size,
|
@RequestParam Integer current,
|
@RequestParam(required = false) Integer state,
|
@RequestParam Integer type,
|
@RequestParam(required = false) Integer resource,
|
@RequestParam(required = false) String code,
|
@RequestParam(required = false) String categoryBig,
|
@RequestParam(required = false) String categorySmall,
|
@RequestParam(required = false) Integer street,
|
@RequestParam(required = false) String site,
|
@RequestParam(required = false) String startTime,
|
@RequestParam(required = false) String endTime,
|
@RequestParam(required = false) Integer violationsTypeId,
|
@RequestParam(required = false) Integer videoId) {
|
|
Page<Object> queryList;
|
if (type == 1) {
|
queryList = baseCaseService.listViolationsPage(current, size, state, resource, code, categoryBig, categorySmall, street, site, startTime, endTime, violationsTypeId, videoId);
|
} else if (type == 2) {
|
queryList = baseCaseService.listIllegalBuilding(current, size, state, resource);
|
} else {
|
return CommonResult.failed("bad request url");
|
}
|
return CommonResult.success(queryList);
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description delete illegal building or violation
|
* @Param [id, type]
|
**/
|
@ApiOperation(value = "删除违规/违建案件")
|
@DeleteMapping("/deletion")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "type", value = "1 违规,2 违建", dataType = "Integer")
|
})
|
@LogSave(operationType = "事项处置管理", contain = "删除案件")
|
public CommonResult removeCase(@RequestParam Integer id, @RequestParam Integer type) {
|
Integer violationType = 1;
|
Integer illegalBuildingType = 2;
|
if (id != null) {
|
if (type == violationType) {
|
return CommonResult.success(violationsService.removeById(id));
|
} else if (type == illegalBuildingType) {
|
return CommonResult.success(illegalBuildingService.removeById(id));
|
}
|
return CommonResult.success(baseCaseService.removeById(id));
|
}
|
return CommonResult.failed("request parameter is null");
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description delete illegal buildings or violations
|
* @Param [ids, type]
|
**/
|
@ApiOperation(value = "批处理-删除违规/违建案件")
|
@DeleteMapping("/batch_deletion")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "type", value = "1 违规,2 违建", dataType = "Integer")
|
})
|
@LogSave(operationType = "事项处置管理", contain = "批量删除案件")
|
public CommonResult removeCases(@RequestParam List<Long> ids, @RequestParam Integer type) {
|
Integer violationType = 1;
|
Integer illegalBuildingType = 2;
|
if (!ids.isEmpty()) {
|
CommonResult.success(baseCaseService.removeBatchByIds(ids));
|
if (type == violationType) {
|
return CommonResult.success(violationsService.removeBatchByIds(ids));
|
} else if (type == illegalBuildingType) {
|
return CommonResult.success(illegalBuildingService.removeBatchByIds(ids));
|
}
|
}
|
return CommonResult.failed("request parameter is null");
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description add violation
|
* @Param [violationParam]
|
**/
|
@ApiOperation(value = "添加违规案件")
|
@PostMapping("/addition_violation")
|
@LogSave(operationType = "事项处置管理", contain = "新增违规案件")
|
public CommonResult addViolationCase(@RequestBody @Validated ViolationParam violationParam) {
|
Integer violation = 1;
|
Integer resource = 2;
|
BaseCase baseCase = new BaseCase();
|
BeanUtils.copyProperties(violationParam, baseCase);
|
baseCase.setEventSource(resource);
|
baseCase.setCategory(violation);
|
baseCase.setCode(utilNumber.createCaseCode());
|
baseCase.setState(BaseCaseStatus.PENDING);
|
baseCase.setAlarmTime(LocalDateTime.parse(violationParam.getAlarmTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
baseCase.setCreateTime(LocalDateTime.now());
|
baseCaseService.save(baseCase);
|
// JSONArray arr = JSON.parseArray(baseCase.getPic());
|
AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
|
if (CollUtil.isNotEmpty(violationParam.getImageUrls())) {
|
for (int i = 0; i < violationParam.getImageUrls().size(); i++) {
|
ImageResources imageResources = new ImageResources();
|
imageResources.setType("01");
|
imageResources.setBelongToId(baseCase.getId());
|
imageResources.setUrl(violationParam.getImageUrls().get(i));
|
imageResources.setCreateTime(LocalDateTime.now());
|
imageResources.setCreateUser(user.getUserId());
|
iImageResourcesService.save(imageResources);
|
}
|
}
|
|
if (CollUtil.isNotEmpty(violationParam.getVideoUrls())) {
|
VideoResources videoResources = new VideoResources();
|
videoResources.setCreateTime(LocalDateTime.now());
|
videoResources.setType("1");
|
videoResources.setCreateUser(user.getUserId());
|
videoResources.setBelongToId(baseCase.getId().intValue());
|
StringBuilder sb1 = new StringBuilder("");
|
violationParam.getImageUrls().forEach(item -> {
|
sb1.append(",").append(item);
|
});
|
videoResources.setUrl(sb1.substring(1, sb1.length() - 1));
|
iVideoResourcesService.save(videoResources);
|
}
|
return CommonResult.success(baseCaseService.saveViolationCase(violationParam, baseCase.getId()));
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description add illegal building
|
* @Param [violationParam]
|
**/
|
@ApiOperation(value = "添加违建案件")
|
@PostMapping("/addition_illegal_building")
|
@LogSave(operationType = "事项处置管理", contain = "新增违建案件")
|
public CommonResult addIllegalBuildingCase(@RequestBody @Validated IllegalBuildingParam illegalBuildingParam) {
|
Integer illegalBuilding = 2;
|
Integer resource = 2;
|
BaseCase baseCase = new BaseCase();
|
BeanUtils.copyProperties(illegalBuildingParam, baseCase);
|
baseCase.setCategory(illegalBuilding);
|
baseCase.setEventSource(resource);
|
baseCase.setCode(utilNumber.createCaseCode());
|
baseCase.setState(BaseCaseStatus.PENDING);
|
baseCase.setAlarmTime(LocalDateTime.parse(illegalBuildingParam.getAlarmTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
baseCase.setCreateTime(LocalDateTime.now());
|
baseCaseService.save(baseCase);
|
|
// if (CollUtil.isNotEmpty(illegalBuildingParam.getImageUrls())) {
|
// ImageResources imageResources = new ImageResources();
|
// imageResources.setCreateTime(LocalDateTime.now());
|
// imageResources.setType("1");
|
// AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
// imageResources.setCreateUser(user.getUserId());
|
// imageResources.setBelongToId(baseCase.getId());
|
// StringBuilder sb1 = new StringBuilder("");
|
// illegalBuildingParam.getImageUrls().forEach(item -> {
|
// sb1.append(",").append(item);
|
// });
|
// imageResources.setUrl(sb1.substring(1, sb1.length() - 1));
|
// imageResourcesService.save(imageResources);
|
// }
|
|
AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
if (CollUtil.isNotEmpty(illegalBuildingParam.getImageUrls())) {
|
for (int i = 0; i < illegalBuildingParam.getImageUrls().size(); i++) {
|
ImageResources imageResources = new ImageResources();
|
imageResources.setType("01");
|
imageResources.setBelongToId(baseCase.getId());
|
imageResources.setUrl(illegalBuildingParam.getImageUrls().get(i));
|
imageResources.setCreateTime(LocalDateTime.now());
|
imageResources.setCreateUser(user.getUserId());
|
iImageResourcesService.save(imageResources);
|
}
|
}
|
|
if (CollUtil.isNotEmpty(illegalBuildingParam.getVideoUrls())) {
|
VideoResources videoResources = new VideoResources();
|
videoResources.setCreateTime(LocalDateTime.now());
|
videoResources.setType("01");
|
user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
videoResources.setCreateUser(user.getUserId());
|
videoResources.setBelongToId(baseCase.getId().intValue());
|
StringBuilder sb2 = new StringBuilder("");
|
illegalBuildingParam.getImageUrls().forEach(item -> {
|
sb2.append(",").append(item);
|
});
|
videoResources.setUrl(sb2.substring(1, sb2.length() - 1));
|
iVideoResourcesService.save(videoResources);
|
}
|
return CommonResult.success(baseCaseService.saveIllegalBuildingCase(illegalBuildingParam, baseCase.getId()));
|
}
|
|
@ApiOperation(value = "案件详情")
|
@GetMapping("/baseCaseDetail/{code}")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "code", value = "事件编号")
|
})
|
public CommonResult<BaseCaseDetail> baseCaseDetail(@PathVariable(value = "code") String code) {
|
return CommonResult.success(baseCaseService.baseCaseDetail(code));
|
}
|
|
@ApiOperation(value = "人工路径案件图片展示")
|
@GetMapping("/hand_work_case_images")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "type", value = "01 违规,02 违建", dataType = "Integer")
|
})
|
public CommonResult queryCaseImages(@RequestParam Integer id, @RequestParam Integer type) {
|
return CommonResult.success(baseCaseService.listCaseImages(id, type));
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description case status update
|
* @Param [caseId, status]
|
**/
|
@ApiOperation(value = "案件状态修改")
|
@PutMapping("/case_status_update")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "处理状态(0-待处理1-误报2-上报3-再学习/再训练4暂不处理5立案6调度7处置8核查9结案)", name = "state")
|
})
|
public CommonResult updateCaseStatus(@RequestParam Integer caseId, @RequestParam Integer state) {
|
return CommonResult.success(baseCaseService
|
.update(new LambdaUpdateWrapper<BaseCase>()
|
.eq(BaseCase::getId, caseId)
|
.set(BaseCase::getState, state)));
|
}
|
|
@ApiOperation(value = "案件批在学习")
|
@PutMapping("/batch_case_study")
|
public CommonResult batchHandCaseByStudy(@RequestParam List<Long> ids) {
|
ids.stream().forEach(item ->
|
{
|
BaseCase baseCase = new BaseCase();
|
baseCase.setId(item);
|
baseCase.setState(3);
|
baseCaseService.updateById(baseCase);
|
});
|
return CommonResult.success("success");
|
}
|
|
@ApiOperation(value = "案件批暂不处理")
|
@PutMapping("/batch_case_Ignore")
|
public CommonResult batchHandCaseByIgnore(@RequestParam List<Long> ids) {
|
ids.stream().forEach(item ->
|
{
|
BaseCase baseCase = new BaseCase();
|
baseCase.setId(item);
|
baseCase.setState(4);
|
baseCaseService.updateById(baseCase);
|
});
|
return CommonResult.success("success");
|
}
|
|
@ApiOperation(value = "调度管理-批量删除")
|
@DeleteMapping("/batch_case_delete")
|
public CommonResult batchCaseDelete(@RequestParam List<Long> ids) {
|
ids.forEach(
|
item -> {
|
BaseCase baseCase = baseCaseService.getOne(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getId, item));
|
if (baseCase.getCategory() == 1) {
|
violationsService.removeById(item);
|
baseCaseService.removeById(item);
|
} else {
|
illegalBuildingService.removeById(item);
|
baseCaseService.removeById(item);
|
}
|
}
|
);
|
return CommonResult.success("success");
|
}
|
|
/**
|
* @return com.ycl.api.CommonResult
|
* @Description reset case
|
* @Param [caseId]
|
**/
|
@ApiOperation(value = "暂不处置重新处置")
|
@PutMapping("/reset")
|
public CommonResult resetCase(@RequestParam Integer caseId) {
|
Integer firstNum = 1;
|
Integer state = iDisposeRecordService
|
.list(new LambdaQueryWrapper<DisposeRecord>()
|
.eq(DisposeRecord::getBaseCaseId, caseId).
|
orderByDesc(DisposeRecord::getCreateTime)).get(firstNum).getState();
|
return CommonResult.success(baseCaseService
|
.update(new LambdaUpdateWrapper<BaseCase>()
|
.eq(BaseCase::getId, caseId)
|
.set(BaseCase::getState, state)));
|
}
|
|
@ApiOperation(value = "结案")
|
@PutMapping("/end_case")
|
@LogSave(operationType = "事项处置管理", contain = "案件结案")
|
public CommonResult endCase(@RequestParam Long caseId, @RequestParam String result, @RequestParam String opinion) {
|
baseCaseService.endCase(caseId, result, opinion);
|
return CommonResult.success("end case success~!");
|
}
|
|
@ApiOperation(value = "查询案卷")
|
@GetMapping("/query_case")
|
public CommonResult<Page<BaseCase>> queryCase(@RequestParam Integer pageSize,
|
@RequestParam Integer current,
|
@RequestParam(required = false) String number,
|
@RequestParam(required = false) Integer communityId,
|
@RequestParam(required = false) Integer categories,
|
@RequestParam(required = false) String startTime,
|
@RequestParam(required = false) String endTime,
|
@RequestParam(required = false) Integer state,
|
@RequestParam(required = false) Integer time,
|
@RequestParam(required = false) Integer streetId,
|
@RequestParam(required = false) String site) {
|
return CommonResult.success(baseCaseService.selectPage(new Page<BaseCase>().setCurrent(current).setSize(pageSize), number, communityId, categories, startTime, endTime, site, state, streetId, time));
|
}
|
|
@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.selectViolationList(queryForViolationParam));
|
}
|
|
@GetMapping("/video_inspection")
|
@ApiOperation("预警研判")
|
public CommonResult searchVideoInspection(@RequestParam Integer current,
|
@RequestParam Integer pageSize,
|
@RequestParam(required = false) Long gradeId,
|
@RequestParam(required = false) Long videoId,
|
@RequestParam(required = false) String beginTime,
|
@RequestParam(required = false) String endTime) {
|
return CommonResult.success(baseCaseService.selectVideoInspection(current, pageSize, gradeId, videoId, beginTime, endTime));
|
}
|
|
@GetMapping("/video_inspection/{id}")
|
@ApiOperation("预警研判详情")
|
public CommonResult getVideoInspection(@PathVariable Long id) {
|
return CommonResult.success(baseCaseService.getById(id));
|
}
|
|
@GetMapping("/video_inspection/Count")
|
@ApiOperation("预警研判左上角待审核案件,今日审核,今日在学习")
|
public CommonResult searchCount() {
|
return CommonResult.success(baseCaseService.selectCount());
|
}
|
|
@PutMapping("/video_inspection")
|
@ApiOperation("预警研判确定")
|
public CommonResult searchCount(@RequestBody VideoInspectParam violationParam) {
|
return CommonResult.success(baseCaseService.updateCase(violationParam));
|
}
|
}
|