From 8910275656c9bf398832dc14957a03684a593e96 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 30 八月 2024 15:16:58 +0800
Subject: [PATCH] 2024-08-30 朱宝民 修改配置文件bug

---
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java |  308 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 242 insertions(+), 66 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
index 942eba6..a6bb146 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
@@ -1,13 +1,21 @@
 package com.dy.pipIrrBase.block;
 
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.aop.SsoAop;
+import com.dy.common.mybatis.envm.Deleted;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrBase.block.dto.Block;
+import com.dy.pipIrrBase.block.enums.graphTypeENUM;
+import com.dy.pipIrrBase.result.SystemResultCode;
 import com.dy.pipIrrGlobal.pojoBa.BaBlock;
+import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates;
+import com.dy.pipIrrGlobal.pojoBa.BaMapGraph;
+import com.dy.pipIrrGlobal.voBa.VoBlock;
 import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -17,28 +25,31 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 @Slf4j
 @Tag(name = "鐗囧尯绠$悊", description = "鐗囧尯澧炲垹鏀规煡绛夋搷浣�")
 @RestController
-@RequestMapping(path="block")
+@RequestMapping(path = "block")
 @SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
 public class BlockCtrl {
 
-    private BlockSv sv ;
+    private BlockSv sv;
 
     @Autowired
-    private void setSv(BlockSv sv){
-        this.sv = sv ;
+    private void setSv(BlockSv sv) {
+        this.sv = sv;
     }
 
     /**
      * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹�
+     *
      * @return 鎵�鏈夌墖鍖烘暟鎹�
      */
     @Operation(summary = "鑾峰緱鍏ㄩ儴鐗囧尯", description = "杩斿洖鍏ㄩ儴鐗囧尯鏁版嵁")
@@ -52,43 +63,54 @@
     })
     @GetMapping(path = "all")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<BaBlock>>> all(){
+    public BaseResponse<QueryResultVo<List<BaBlock>>> all() {
         try {
-            QueryResultVo<List<BaBlock>> res = this.sv.selectAll() ;
+            QueryResultVo<List<BaBlock>> res = this.sv.selectAll();
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
-     * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹�
+     * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹� 2024-08-14搴熷純
+     *
      * @return 鎵�鏈夌墖鍖烘暟鎹�
      */
-    @Operation(summary = "鑾峰緱涓�椤电墖鍖�", description = "杩斿洖涓�椤电墖鍖烘暟鎹�")
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
-                    description = "杩斿洖涓�椤电墖鍖烘暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
-                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
-                            schema = @Schema(implementation = BaBlock.class))}
-            )
-    })
-    @PostMapping(path = "some", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(path = "some2", consumes = MediaType.APPLICATION_JSON_VALUE)
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<BaBlock>>> some(@RequestBody @Parameter(description = "鏌ヨform琛ㄥ崟json鏁版嵁", required = true) QueryVo vo){
+    public BaseResponse<QueryResultVo<List<BaBlock>>> some(@RequestBody QueryVo vo) {
         try {
-            QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo) ;
+            QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo);
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯锛�2024-08-14鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯鍒嗛〉鏌ヨ
+     *
+     * @param qo
+     * @param
+     * @return
+     */
+    @GetMapping(path = "/some")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoBlock>>> getBlocks(QueryVo qo) {
+        try {
+            return BaseResponseUtils.buildSuccess(this.sv.getBlocks(qo));
+        } catch (Exception e) {
+            log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
      * 寰楀埌涓�涓墖鍖烘暟鎹�
+     *
      * @return 涓�涓墖鍖烘暟鎹�
      */
     @Operation(summary = "涓�涓墖鍖�", description = "寰楀埌涓�涓墖鍖烘暟鎹�")
@@ -100,14 +122,16 @@
                             schema = @Schema(implementation = BaBlock.class))}
             )
     })
-    @GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE)
+    //@GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE)
+    @GetMapping(path = "one")
     @SsoAop()
-    public BaseResponse<BaBlock> one(@Parameter(description = "瀹炰綋id", required = true) Long id){
+    public BaseResponse<BaBlock> one(Long id) {
         return BaseResponseUtils.buildSuccess(this.sv.selectById(id));
     }
 
     /**
      * 淇濆瓨鐗囧尯
+     *
      * @param po 淇濆瓨鐗囧尯form琛ㄥ崟瀵硅薄
      * @return 鏄惁鎴愬姛
      */
@@ -121,66 +145,210 @@
             )
     })
     @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> save(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid BaBlock po, @Parameter(hidden = true) BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    //public BaseResponse<Boolean> save(@RequestBody @Valid BaBlock po, BindingResult bindingResult){
+    public BaseResponse<Boolean> save(@RequestBody @Valid Block po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
-        po.id = null ;
-        int count;
-        try {
-            count = this.sv.save(po);
-        } catch (Exception e) {
-            log.error("淇濆瓨鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+
+        // 娣诲姞鐗囧尯璁板綍
+        BaBlock baBlock = new BaBlock();
+        baBlock.setName(po.getName());
+        baBlock.setHeader(po.getHeader());
+        baBlock.setPhone(po.getPhone());
+        baBlock.setArea(po.getArea());
+        baBlock.setColor(po.getColor());
+        baBlock.setRemark(po.getRemark());
+        baBlock.deleted = Deleted.NO;
+        Long blockId = Optional.ofNullable(this.sv.save(baBlock)).orElse(0L);
+        if (blockId.equals(0)) {
+            return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
         }
-        if(count <= 0){
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
-        }else{
-            return BaseResponseUtils.buildSuccess(true) ;
+
+        JSONArray graphs = po.getGraphs();
+        for (int i = 0; i < graphs.size(); i++) {
+            JSONObject graph = graphs.getJSONObject(i);
+
+            // 娣诲姞鍦板浘鍥惧舰璁板綍
+            BaMapGraph baMapGraph = new BaMapGraph();
+            baMapGraph.setBlockId(blockId);
+            switch (graph.getString("type")) {
+                case "CircleMarker":
+                    baMapGraph.setGraphType(graphTypeENUM.CIRCLE_MARKER.getCode());
+                    break;
+                case "Polygon":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYGON.getCode());
+                    break;
+                case "Polyline":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYLINE.getCode());
+                    break;
+            }
+            Long graphId = Optional.ofNullable(this.sv.addMapGraph(baMapGraph)).orElse(0L);
+            if (graphId.equals(0)) {
+                return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+            }
+
+            // 娣诲姞鍦板浘鍥惧舰鍧愭爣璁板綍
+            JSONArray coordinates = graph.getJSONArray("coordinates");
+            for (int j = 0; j < coordinates.size(); j++) {
+                JSONArray coordinate = coordinates.getJSONArray(j);
+                for (int k = 0; k < coordinate.size(); k++) {
+                    JSONObject point = coordinate.getJSONObject(k);
+
+                    BaMapCoordinates mapCoordinates = new BaMapCoordinates();
+                    mapCoordinates.setGraphId(graphId);
+                    mapCoordinates.setLat(point.getBigDecimal("lat"));
+                    mapCoordinates.setLng(point.getBigDecimal("lng"));
+                    Long coordinateId = Optional.ofNullable(this.sv.addMapCoordinate(mapCoordinates)).orElse(0L);
+                    if (coordinateId.equals(0)) {
+                        return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+                    }
+                }
+            }
         }
+        return BaseResponseUtils.buildSuccess(true);
+
+        //po.id = null ;
+        //po.deleted = Deleted.NO;
+        //int count;
+        //try {
+        //    count = this.sv.save(po);
+        //} catch (Exception e) {
+        //    log.error("淇濆瓨鐗囧尯寮傚父", e);
+        //    return BaseResponseUtils.buildException(e.getMessage()) ;
+        //}
+        //if(count <= 0){
+        //    return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
+        //}else{
+        //    return BaseResponseUtils.buildSuccess(true) ;
+        //}
     }
 
     /**
-     * 缂栬緫淇敼鐗囧尯
+     * 缂栬緫淇敼鐗囧尯 2024-08-15 浣滃簾
+     *
      * @param po 淇濆瓨鐗囧尯form琛ㄥ崟瀵硅薄
      * @return 鏄惁鎴愬姛
      */
-    @Operation(summary = "缂栬緫淇敼鐗囧尯", description = "鎻愪氦鐗囧尯鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜淇敼")
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
-                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
-                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
-                            schema = @Schema(implementation = Boolean.class))}
-            )
-    })
-    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(path = "update2", consumes = MediaType.APPLICATION_JSON_VALUE)
     @SsoAop()
-    public BaseResponse<Boolean> update(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid BaBlock po, @Parameter(hidden = true) BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> update2(@RequestBody @Valid BaBlock po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
-        if(po.id == null){
-            return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D") ;
+        if (po.id == null) {
+            return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D");
         }
         int count;
         try {
             count = this.sv.update(po);
         } catch (Exception e) {
             log.error("淇濆瓨鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
-        if(count <= 0){
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
-        }else{
-            return BaseResponseUtils.buildSuccess(true) ;
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
+        } else {
+            return BaseResponseUtils.buildSuccess(true);
         }
     }
 
+    /**
+     * 淇敼鐗囧尯淇℃伅锛�2024-08-15鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯淇敼鎺ュ彛
+     *
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> update(@RequestBody @Valid Block po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        Long blockId = po.getId();
+        if (blockId == null) {
+            return BaseResponseUtils.buildErrorMsg(SystemResultCode.THE_BLOCK_NOT_EXIST.getMessage());
+        }
+
+        // 淇敼鐗囧尯淇℃伅
+        BaBlock baBlock = new BaBlock();
+        baBlock.setId(po.getId());
+        baBlock.setName(po.getName());
+        baBlock.setHeader(po.getHeader());
+        baBlock.setPhone(po.getPhone());
+        baBlock.setArea(po.getArea());
+        baBlock.setColor(po.getColor());
+        baBlock.setRemark(po.getRemark());
+        baBlock.setDeleted(po.getDeleted());
+        int count;
+        try {
+            count = this.sv.update(baBlock);
+        } catch (Exception e) {
+            log.error("淇濆瓨鐗囧尯寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
+        }
+
+        // 鍒犻櫎鍦板浘鍥惧舰鍧愭爣
+        this.sv.deleteMapCoordinates(blockId);
+        // 鍒犻櫎鐗囧尯鍏宠仈鐨勫湴鍥惧浘褰�
+        this.sv.deleteMapGraph(blockId);
+
+        JSONArray graphs = po.getGraphs();
+        for (int i = 0; i < graphs.size(); i++) {
+            JSONObject graph = graphs.getJSONObject(i);
+
+            // 娣诲姞鍦板浘鍥惧舰璁板綍
+            BaMapGraph baMapGraph = new BaMapGraph();
+            baMapGraph.setBlockId(blockId);
+            switch (graph.getString("type")) {
+                case "CircleMarker":
+                    baMapGraph.setGraphType(graphTypeENUM.CIRCLE_MARKER.getCode());
+                    break;
+                case "Polygon":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYGON.getCode());
+                    break;
+                case "Polyline":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYLINE.getCode());
+                    break;
+            }
+            Long graphId = Optional.ofNullable(this.sv.addMapGraph(baMapGraph)).orElse(0L);
+            if (graphId.equals(0)) {
+                return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+            }
+
+            // 娣诲姞鍦板浘鍥惧舰鍧愭爣璁板綍
+            JSONArray coordinates = graph.getJSONArray("coordinates");
+            for (int j = 0; j < coordinates.size(); j++) {
+                JSONArray coordinate = coordinates.getJSONArray(j);
+                for (int k = 0; k < coordinate.size(); k++) {
+                    JSONObject point = coordinate.getJSONObject(k);
+
+                    BaMapCoordinates mapCoordinates = new BaMapCoordinates();
+                    mapCoordinates.setGraphId(graphId);
+                    mapCoordinates.setLat(point.getBigDecimal("lat"));
+                    mapCoordinates.setLng(point.getBigDecimal("lng"));
+                    Long coordinateId = Optional.ofNullable(this.sv.addMapCoordinate(mapCoordinates)).orElse(0L);
+                    if (coordinateId.equals(0)) {
+                        return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+                    }
+                }
+            }
+        }
+
+        return BaseResponseUtils.buildSuccess(true);
+    }
 
     /**
      * 鍒犻櫎鐗囧尯
+     *
      * @param id 鐗囧尯ID
      * @return 鏄惁鎴愬姛
      */
@@ -193,23 +361,31 @@
                             schema = @Schema(implementation = Boolean.class))}
             )
     })
-    @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE)
+
+    //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE)
+    @GetMapping(path = "delete")
+    @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> delete(@Parameter(description = "瀹炰綋id", required = true) Long id){
-        if(id == null){
-            return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖") ;
+    public BaseResponse<Boolean> delete(Long id) {
+        if (id == null) {
+            return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖");
         }
         int count;
         try {
             count = this.sv.delete(id);
         } catch (Exception e) {
             log.error("淇濆瓨鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
-        if(count <= 0){
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
-        }else{
-            return BaseResponseUtils.buildSuccess(true) ;
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
         }
+
+        // 鍒犻櫎鍦板浘鍥惧舰鍧愭爣
+        this.sv.deleteMapCoordinates(id);
+        // 鍒犻櫎鐗囧尯鍏宠仈鐨勫湴鍥惧浘褰�
+        this.sv.deleteMapGraph(id);
+
+        return BaseResponseUtils.buildSuccess(true);
     }
 }

--
Gitblit v1.8.0