From e986bd63309fba70f7f3cfaf70aadec46220917b Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期四, 30 三月 2023 20:06:12 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java | 286 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 240 insertions(+), 46 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 6172da9..b7522e0 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,27 +1,39 @@ package com.ycl.controller.caseHandler; - -import com.alibaba.druid.util.StringUtils; +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.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.service.caseHandler.IBaseCaseService; import com.ycl.service.caseHandler.IDisposeRecordService; import com.ycl.service.caseHandler.IIllegalBuildingService; import com.ycl.service.caseHandler.IViolationsService; -import com.ycl.vo.casePool.CasePoolIllegalBuildingVO; -import com.ycl.vo.casePool.CasePoolViolationVO; -import io.swagger.annotations.*; +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.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; @@ -34,7 +46,7 @@ * @since 2022-09-24 */ @RestController -@RequestMapping("/base-case") +@RequestMapping("/base_case") @Api(tags = "妗堜欢姹�") public class BaseCaseController extends BaseController { @@ -49,6 +61,9 @@ @Autowired IDisposeRecordService iDisposeRecordService; + @Autowired + UtilNumber utilNumber; + @Autowired public void setBaseCaseService(IBaseCaseService baseCaseService) { @@ -57,7 +72,7 @@ @ApiOperation(value = "涓婁紶甯傚钩鍙�") @PostMapping("/upload-event") - public CommonResult uploadEvent(@RequestParam Integer caseId, CommonResult<Object> success) { + public CommonResult uploadEvent(@RequestParam Long caseId, CommonResult<Object> success) { String msg = baseCaseService.uploadEvent(caseId); if (StringUtils.isEmpty(msg)) { return success; @@ -71,34 +86,72 @@ * @Description query illegal building and violation * @Param [size, current, state, type, resource] **/ - @ApiOperation(value = "鏌ヨ杩濊杩濆缓") - @GetMapping("/query/{type}") +/* @ApiOperation(value = "鏌ヨ杩濊杩濆缓") + @GetMapping("/query") @ApiImplicitParams({ - @ApiImplicitParam(name = "state", value = "澶勭悊鐘舵��(0璇姤 1涓婃姤 2绔嬫 3娲鹃仯 4澶勭疆 5鏍告煡 6缁撴7澶勭悊涓�)", dataType = "Integer"), - @ApiImplicitParam(name = "type", value = "01 杩濊,02 杩濆缓", 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") }) public CommonResult searchViolation(@RequestParam Integer size, @RequestParam Integer current, @RequestParam Integer state, - @PathVariable(value = "type") Integer type, - @RequestParam Integer resource) { + @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 = 01; - Integer illegalBuilding = 02; + 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); } /** @@ -109,15 +162,12 @@ @ApiOperation(value = "鍒犻櫎杩濊/杩濆缓妗堜欢") @DeleteMapping("/deletion") @ApiImplicitParams({ - @ApiImplicitParam(name = "type", value = "01 杩濊,02 杩濆缓", dataType = "Integer") + @ApiImplicitParam(name = "type", value = "1 杩濊,2 杩濆缓", dataType = "Integer") }) - @ApiResponses({ - @ApiResponse(code = 200, message = "鎴愬姛", response = CasePoolViolationVO.class), - @ApiResponse(code = 200, message = "鎴愬姛", response = CasePoolIllegalBuildingVO.class), - }) + @LogSave(operationType = "浜嬮」澶勭疆绠$悊", contain = "鍒犻櫎妗堜欢") public CommonResult removeCase(@RequestParam Integer id, @RequestParam Integer type) { - Integer violationType = 01; - Integer illegalBuildingType = 02; + Integer violationType = 1; + Integer illegalBuildingType = 2; if (id != null) { if (type == violationType) { return CommonResult.success(violationsService.removeById(id)); @@ -134,22 +184,22 @@ * @Description delete illegal buildings or violations * @Param [ids, type] **/ - @ApiOperation(value = "鍒犻櫎杩濊/杩濆缓妗堜欢") + @ApiOperation(value = "鎵瑰鐞�-鍒犻櫎杩濊/杩濆缓妗堜欢") @DeleteMapping("/batch_deletion") @ApiImplicitParams({ - @ApiImplicitParam(name = "type", value = "01 杩濊,02 杩濆缓", dataType = "Integer") + @ApiImplicitParam(name = "type", value = "1 杩濊,2 杩濆缓", dataType = "Integer") }) - public CommonResult removeCases(@RequestParam String[] ids, @RequestParam Integer type) { - Integer violationType = 01; - Integer illegalBuildingType = 02; - List<String> idList = Arrays.asList(ids); - if (!idList.isEmpty()) { + @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(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"); } @@ -161,9 +211,18 @@ **/ @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); return CommonResult.success(baseCaseService.saveViolationCase(violationParam, baseCase.getId())); } @@ -175,9 +234,18 @@ **/ @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); return CommonResult.success(baseCaseService.saveIllegalBuildingCase(illegalBuildingParam, baseCase.getId())); } @@ -187,11 +255,11 @@ @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)); } - @ApiOperation("浜哄伐璺緞妗堜欢鍥剧墖灞曠ず") + @ApiOperation(value = "浜哄伐璺緞妗堜欢鍥剧墖灞曠ず") @GetMapping("/hand_work_case_images") @ApiImplicitParams({ @ApiImplicitParam(name = "type", value = "01 杩濊,02 杩濆缓", dataType = "Integer") @@ -200,13 +268,139 @@ return CommonResult.success(baseCaseService.listCaseImages(id, type)); } - @ApiOperation("妗堜欢鏆備笉澶勭悊") - @PutMapping("/case_leave") - public CommonResult updateCaseStatus(@RequestParam Integer caseId) { - Integer leaveType = 8; + /** + * @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, leaveType))); + .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 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) 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.selectViolationList(queryForViolationParam)); + } + + @GetMapping("/video_inspection") + @ApiOperation("棰勮鐮斿垽") + public CommonResult searchVideoInspection(@RequestParam Integer current, + @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, gradeId, videoId, beginTime, endTime)); + } + + @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