From 704e7207d74b6477c5f472c5aba92d484ab17f98 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 29 十一月 2023 17:07:11 +0800 Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_server --- ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java | 324 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 291 insertions(+), 33 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java b/ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java index 6b74abf..6a3c479 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java +++ b/ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java @@ -1,32 +1,50 @@ package com.ycl.controller.caseHandler; - -import com.alibaba.druid.util.StringUtils; +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 lombok.extern.slf4j.Slf4j; 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 java.util.Arrays; +import javax.servlet.http.HttpServletResponse; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; -import java.util.UUID; /** @@ -40,6 +58,7 @@ @RestController @RequestMapping("/base_case") @Api(tags = "妗堜欢姹�") +@Slf4j public class BaseCaseController extends BaseController { private IBaseCaseService baseCaseService; @@ -53,6 +72,15 @@ @Autowired IDisposeRecordService iDisposeRecordService; + @Autowired + UtilNumber utilNumber; + + @Autowired + IImageResourcesService iImageResourcesService; + + @Autowired + IVideoResourcesService iVideoResourcesService; + @Autowired public void setBaseCaseService(IBaseCaseService baseCaseService) { @@ -60,11 +88,11 @@ } @ApiOperation(value = "涓婁紶甯傚钩鍙�") - @PostMapping("/upload-event") - public CommonResult uploadEvent(@RequestParam Integer caseId, CommonResult<Object> success) { + @PostMapping("/upload-event/{caseId}") + public CommonResult uploadEvent(@PathVariable Long caseId) { String msg = baseCaseService.uploadEvent(caseId); if (StringUtils.isEmpty(msg)) { - return success; + return CommonResult.success(msg); } else { return CommonResult.failed(msg); } @@ -75,10 +103,10 @@ * @Description query illegal building and violation * @Param [size, current, state, type, resource] **/ - @ApiOperation(value = "鏌ヨ杩濊杩濆缓") +/* @ApiOperation(value = "鏌ヨ杩濊杩濆缓") @GetMapping("/query") @ApiImplicitParams({ - @ApiImplicitParam(name = "state", value = "澶勭悊鐘舵��(0璇姤 1涓婃姤 2绔嬫 3娲鹃仯 4澶勭疆 5鏍告煡 6缁撴7澶勭悊涓�)", dataType = "Integer"), + @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") }) @@ -88,22 +116,59 @@ @RequestParam(required = false) Integer type, @RequestParam(required = false) Integer resource) { if (state != null) { - Page<Object> page = new Page<>(); - page.setCurrent(current); - page.setSize(size); Page<Object> queryList; Integer violation = 1; Integer illegalBuilding = 2; if (type == violation) { - queryList = baseCaseService.listViolationsPage(page, state, resource); + queryList = baseCaseService.listViolationsPage(new Page<>().setCurrent(current).setSize(size), state, resource); } else if (type == illegalBuilding) { - queryList = baseCaseService.listIllegalBuilding(page, state, resource); + 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); } /** @@ -116,6 +181,7 @@ @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; @@ -135,22 +201,22 @@ * @Description delete illegal buildings or violations * @Param [ids, type] **/ - @ApiOperation(value = "鍒犻櫎杩濊/杩濆缓妗堜欢") + @ApiOperation(value = "鎵瑰鐞�-鍒犻櫎杩濊/杩濆缓妗堜欢") @DeleteMapping("/batch_deletion") @ApiImplicitParams({ @ApiImplicitParam(name = "type", value = "1 杩濊,2 杩濆缓", dataType = "Integer") }) - public CommonResult removeCases(@RequestParam String[] ids, @RequestParam Integer type) { + @LogSave(operationType = "浜嬮」澶勭疆绠$悊", contain = "鎵归噺鍒犻櫎妗堜欢") + public CommonResult removeCases(@RequestParam List<Long> ids, @RequestParam Integer type) { Integer violationType = 1; Integer illegalBuildingType = 2; - List<String> idList = Arrays.asList(ids); - if (!idList.isEmpty()) { + if (!ids.isEmpty()) { + CommonResult.success(baseCaseService.removeBatchByIds(ids)); if (type == violationType) { - return CommonResult.success(violationsService.removeBatchByIds(idList)); + return CommonResult.success(violationsService.removeBatchByIds(ids)); } else if (type == illegalBuildingType) { - return CommonResult.success(illegalBuildingService.removeBatchByIds(idList)); + return CommonResult.success(illegalBuildingService.removeBatchByIds(ids)); } - return CommonResult.success(baseCaseService.removeBatchByIds(idList)); } return CommonResult.failed("request parameter is null"); } @@ -162,17 +228,54 @@ **/ @ApiOperation(value = "娣诲姞杩濊妗堜欢") @PostMapping("/addition_violation") + @LogSave(operationType = "浜嬮」澶勭疆绠$悊", contain = "鏂板杩濊妗堜欢") public CommonResult addViolationCase(@RequestBody @Validated ViolationParam violationParam) { + log.info("---------------->鍙傛暟,鎶ヨ鏃堕棿{},闄愭椂{},瀵硅薄{}", violationParam.getAlarmTime(), violationParam.getLimitTime(), violationParam); + if (violationParam.getAlarmTime() != null) { + violationParam.setAlarmTime(violationParam.getAlarmTime().replace("/", "-")); + } + if (violationParam.getLimitTime() != null) { + violationParam.setLimitTime(violationParam.getLimitTime().replace("/", "-")); + } Integer violation = 1; Integer resource = 2; - Integer state = 7; BaseCase baseCase = new BaseCase(); BeanUtils.copyProperties(violationParam, baseCase); baseCase.setEventSource(resource); baseCase.setCategory(violation); - baseCase.setCode(UUID.randomUUID().toString()); - baseCase.setState(state); + 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())); } @@ -183,17 +286,69 @@ **/ @ApiOperation(value = "娣诲姞杩濆缓妗堜欢") @PostMapping("/addition_illegal_building") + @LogSave(operationType = "浜嬮」澶勭疆绠$悊", contain = "鏂板杩濆缓妗堜欢") public CommonResult addIllegalBuildingCase(@RequestBody @Validated IllegalBuildingParam illegalBuildingParam) { + log.info("---------------->鍙傛暟,鎶ヨ鏃堕棿{},闄愭椂{},瀵硅薄{}", illegalBuildingParam.getAlarmTime(), illegalBuildingParam.getLimitTime(), illegalBuildingParam); + if (illegalBuildingParam.getAlarmTime() != null) { + illegalBuildingParam.setAlarmTime(illegalBuildingParam.getAlarmTime().replace("/", "-")); + } + if (illegalBuildingParam.getLimitTime() != null) { + illegalBuildingParam.setLimitTime(illegalBuildingParam.getLimitTime().replace("/", "-")); + } Integer illegalBuilding = 2; Integer resource = 2; - Integer state = 7; BaseCase baseCase = new BaseCase(); BeanUtils.copyProperties(illegalBuildingParam, baseCase); baseCase.setCategory(illegalBuilding); baseCase.setEventSource(resource); - baseCase.setCode(UUID.randomUUID().toString()); - baseCase.setState(state); + 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().toString()); + 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())); } @@ -202,7 +357,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "浜嬩欢缂栧彿") }) - public CommonResult baseCaseDetail(@PathVariable(value = "code") String code) { + public CommonResult<BaseCaseDetail> baseCaseDetail(@PathVariable(value = "code") String code) { return CommonResult.success(baseCaseService.baseCaseDetail(code)); } @@ -223,13 +378,57 @@ @ApiOperation(value = "妗堜欢鐘舵�佷慨鏀�") @PutMapping("/case_status_update") @ApiImplicitParams({ - @ApiImplicitParam(value = "澶勭悊鐘舵��(0璇姤 1涓婃姤 2绔嬫 3娲鹃仯 4澶勭疆 5鏍告煡 6缁撴7澶勭悊涓�8鏆備笉澶勭悊)",name = "state") + @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"); } /** @@ -240,7 +439,7 @@ @ApiOperation(value = "鏆備笉澶勭疆閲嶆柊澶勭疆") @PutMapping("/reset") public CommonResult resetCase(@RequestParam Integer caseId) { - Integer firstNum = 0; + Integer firstNum = 1; Integer state = iDisposeRecordService .list(new LambdaQueryWrapper<DisposeRecord>() .eq(DisposeRecord::getBaseCaseId, caseId). @@ -253,8 +452,67 @@ @ApiOperation(value = "缁撴") @PutMapping("/end_case") - public CommonResult endCase(@RequestParam Integer caseId,@RequestParam String result){ - baseCaseService.endCase(caseId,result); + @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)); + } +} \ No newline at end of file -- Gitblit v1.8.0