From ddd9d82bcda5cb6e8be8f1dd142dbae2e07b25c3 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期二, 13 十二月 2022 17:56:28 +0800
Subject: [PATCH] feat: 添加批量接口处理
---
ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java | 315 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 310 insertions(+), 5 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 56df11d..5f8dd6b 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,10 +1,40 @@
package com.ycl.controller.caseHandler;
-
+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.video.common.constant.BaseCaseStatus;
+import com.ycl.controller.video.common.util.UtilNumber;
import com.ycl.controller.BaseController;
-import org.springframework.web.bind.annotation.RequestMapping;
+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.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 org.springframework.web.bind.annotation.RestController;
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
/**
@@ -16,7 +46,282 @@
* @since 2022-09-24
*/
@RestController
-@RequestMapping("/base-case")
+@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
+ public void setBaseCaseService(IBaseCaseService baseCaseService) {
+ this.baseCaseService = baseCaseService;
+ }
+
+ @ApiOperation(value = "涓婁紶甯傚钩鍙�")
+ @PostMapping("/upload-event")
+ public CommonResult uploadEvent(@RequestParam Long caseId, CommonResult<Object> success) {
+ String msg = baseCaseService.uploadEvent(caseId);
+ if (StringUtils.isEmpty(msg)) {
+ return success;
+ } 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");
+ }
+
+ /**
+ * @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);
+ 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);
+ 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_status_update")
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "澶勭悊鐘舵��(0-寰呭鐞�1-璇姤2-涓婃姤3-鍐嶅涔�/鍐嶈缁�4鏆備笉澶勭悊5绔嬫6璋冨害7澶勭疆8鏍告煡9缁撴)", name = "state")
+ })
+ public CommonResult updateCaseStatusBatch(@RequestBody List<BaseCase> baseCasesList) {
+ return CommonResult.success(baseCaseService.updateBatchById(baseCasesList));
+ }
+
+ /**
+ * @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){
+ return CommonResult.success(baseCaseService.selectVideoInspection(current));
+ }
+
+ @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