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