From a1744d0bf7f0ad8ac861d672cffd7c710dac4e7e Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 11 四月 2025 14:17:36 +0800
Subject: [PATCH] 获取未绑定轮灌组的取水口

---
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java |  359 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 359 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
new file mode 100644
index 0000000..d252cd4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
@@ -0,0 +1,359 @@
+package com.dy.pipIrrProject.intakeController;
+
+
+import com.dy.common.aop.SsoAop;
+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.pipIrrGlobal.pojoBa.BaClient;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import com.dy.pipIrrGlobal.pojoPr.PrIntakeController;
+import com.dy.pipIrrProject.controller.ControllerSv;
+import com.dy.pipIrrProject.intake.IntakeSv;
+import com.dy.pipIrrProject.result.ProjectResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-02 9:18
+ * @LastEditTime 2024-01-02 9:18
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "鍙栨按鍙�/鎺у埗鍣ㄥ叧鑱旂鐞�", description = "鍙栨按鍙�/鎺у埗鍣ㄥ叧鑱旀搷浣�")
+@RestController
+@RequestMapping(path = "intake_controller")
+@RequiredArgsConstructor
+public class IntakeControllerCtrl {
+    private final IntakeControllerSv intakeControllerSv;
+    private final IntakeSv intakeSv;
+    private final ControllerSv controllerSv;
+
+    /**
+     * 鍙栨按鍙g粦瀹氭帶鍒跺櫒
+     * 1. 鎺ユ敹鍙栨按鍙D鍙婃祦娴帶鍒跺櫒ID锛屽苟楠岃瘉鍙栨按鍙e拰鎺у埗鍣ㄦ槸鍚﹀瓨鍦�
+     * 2. 鍒ゆ柇璇ユ帶鍒跺櫒鏄惁瀛樺湪鏈В缁戣褰曪紝濡傛灉瀛樺湪鎻愮ず鐢ㄦ埛璇ユ帶鍒跺櫒瀛樺湪鏈В缁戣褰�
+     * 3. 缁勮鎺у埗鍣ㄥ璞℃彃鍏ユ帶鍒跺櫒琛ㄤ腑锛堝強娣诲姞缁戝畾璁板綍锛�
+     * 4. 淇敼缁戝畾璁板綍璁剧疆澶囨敞
+     * 5. 鍒犻櫎娴佹氮鎺у埗鍣紙鐗╃悊鍒犻櫎锛�
+     *
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @Operation(summary = "娣诲姞缁戝畾璁板綍", description = "娣诲姞缁戝畾璁板綍")
+    @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 = "bind", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> bind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult) throws ParseException {
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        // 鎺ユ敹鍙傛暟
+        Long intakeId = po.getIntakeId();
+        Long trampControllerId = po.getControllerId();
+        String remarks = po.getRemarks();
+        Long operator = po.getOperator();
+
+        // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇鍙栨按鍙h褰曟暟銆佹祦娴帶鍒跺櫒淇℃伅锛屽垽鏂彇姘村彛鍙婃帶鍒跺櫒鏄惁瀛樺湪
+        Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(intakeId)).orElse(0);
+        PrControllerTramp prControllerTramp = intakeControllerSv.getTrampControllerInfo(trampControllerId);
+        //Map map_TrampController = Optional.ofNullable(intakeControllerSv.getTrampControllerInfo(controllerId)).orElse(new HashMap());
+        if (recIntke == 0 || prControllerTramp == null) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage());
+        }
+
+        // 鏍规嵁鎺у埗鍣ㄧ紪鍙峰垽鏂鎺у埗鍣ㄦ槸鍚﹀瓨鍦ㄦ湭瑙g粦璁板綍
+        Integer recBinded = Optional.ofNullable(controllerSv.getBindedCount(trampControllerId)).orElse(0);
+        if (recBinded > 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_BINDED.getMessage());
+        }
+
+        // 娣诲姞鎺у埗鍣ㄨ褰�
+        PrController prController = new PrController();
+        prController.setIntakeId(intakeId);
+        prController.setRtuAddr(prControllerTramp.getRtuAddr());
+        prController.setProtocol(prControllerTramp.getProtocol());
+        prController.setProtocolVersion(prControllerTramp.getProtocolVersion());
+        prController.setFindDt(prControllerTramp.getFindDt());
+        prController.setOrgTag(prControllerTramp.getOrgTag());
+        prController.setAddWays((byte) 1);
+        prController.setOperator(operator);
+        Date operateTime = new Date();
+        prController.setOperateDt(operateTime);
+        prController.setDeleted((byte) 0);
+        Integer rec_addController = Optional.ofNullable(controllerSv.addController(prController)).orElse(0);
+        if (rec_addController == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
+        }
+//        if (remarks != null || remarks !=""){
+//            // 淇敼缁戝畾璁板綍
+//            PrIntakeController prIntakeController = new PrIntakeController();
+//            prIntakeController.setRemarks(remarks);
+//            prIntakeController.setIntakeid(intakeId);
+//
+//            Integer rec = Optional.ofNullable(intakeControllerSv.updateBindRecord(prIntakeController)).orElse(0);
+//            if (rec == 0) {
+//                return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
+//            }
+//        }
+
+
+        // 鏍规嵁娴佹氮鎺у埗鍣ㄧ紪鍙峰垹闄ゆ祦娴帶鍒跺櫒璁板綍
+        intakeControllerSv.deleteTrampController(trampControllerId);
+
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鍙栨按鍙hВ缁戞帶鍒跺櫒
+     * 1. 鎺ユ敹鍙栨按鍙D鍙婃祦娴帶鍒跺櫒ID锛屽苟楠岃瘉鍙栨按鍙e拰鎺у埗鍣ㄦ槸鍚﹀瓨鍦�
+     * 2. 娣诲姞瑙g粦璁板綍
+     * 3. 鍒犻櫎鎺у埗鍣ㄥ閿�
+     *
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @Operation(summary = "娣诲姞瑙g粦璁板綍", description = "娣诲姞瑙g粦璁板綍")
+    @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 = "unbind", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> unbind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇鍙栨按鍙c�佹帶鍒跺櫒鏈垹闄よ褰曟暟
+        Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(po.getIntakeId())).orElse(0);
+        Integer recController = Optional.ofNullable(controllerSv.getRecordCountOfController(po.getControllerId())).orElse(0);
+        if (recIntke == 0 || recController == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage());
+        }
+
+        // 鍒ゆ柇鏈�鍚庢搷浣滆褰曟槸鍚︿负瑙g粦璁板綍
+        //Integer recordCount = Optional.ofNullable(intakeControllerSv.getBindRecordCount(po.getIntakeId(), po.getControllerId(), (byte)2)).orElse(0);
+        //if(recordCount > 0) {
+        //    return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_CONTROLLER_HAS_UNBOUND.getMessage());
+        //}
+
+        // 娣诲姞瑙g粦璁板綍
+        PrIntakeController prIntakeController = DtoToPojo.INSTANCT.po2vo(po);
+        Date operateTime = new Date();
+        prIntakeController.setOperatedt(operateTime);
+        prIntakeController.setOperatetype((byte) 2);
+        prIntakeController.setRemarks("瑙g粦");
+        Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0);
+        if (rec == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
+        }
+        //娣诲姞鍒版祦娴帶鍒跺櫒
+        PrController ControllerList = controllerSv.getByControllerId(po.getControllerId());
+        PrControllerTramp prControllerTramp = new PrControllerTramp();
+        prControllerTramp.setRtuAddr(ControllerList.getRtuAddr());
+        prControllerTramp.setProtocol(ControllerList.getProtocol());
+        prControllerTramp.setFindDt(new Date());
+        prControllerTramp.setOrgTag(ControllerList.getOrgTag());
+        Integer rec_addControllerTramp = Optional.ofNullable(intakeControllerSv.addTrampController(prControllerTramp)).orElse(0);
+        if (rec_addControllerTramp == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.ADD_TRAMP_CONTROLLER_FAIL.getMessage());
+        }
+        // 鍒犻櫎鎺у埗鍣�
+        Integer rec_deleteIntakeId = Optional.ofNullable(controllerSv.deleteControllerByIdTwo(po.getControllerId())).orElse(0);
+        if (rec_deleteIntakeId == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
+        }
+
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栫粦瀹氳褰曞垪琛�
+     *
+     * @param intakeId 鍙栨按鍙g紪鍙�
+     * @return 鍙栨按鍙d笅鎺у埗鍣ㄧ殑缁戝畾銆佽В缁戣褰�
+     */
+    @Operation(summary = "鑾峰緱鍙栨按鍙d笅鎺у埗鍣ㄧ粦瀹氬強瑙g粦璁板綍", description = "杩斿洖鍙栨按鍙d笅鎺у埗鍣ㄧ粦瀹氬強瑙g粦鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖鍏ㄩ儴缁戝畾鍙婅В缁戞暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaClient.class))}
+            )
+    })
+    @GetMapping(path = "intake_binds")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByIntakeId(Long intakeId) {
+        try {
+            List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByIntakeId(intakeId)).orElse(new ArrayList<>());
+            if (list.size() <= 0) {
+                //鏃犵粦瀹氳褰曚篃杩斿洖鎴愬姛 浣嗘暟鎹负绌�
+                return BaseResponseUtils.buildSuccess(list);
+            }//鎴愬姛杩斿洖缁戝畾璁板綍鏁版嵁
+            return BaseResponseUtils.buildSuccess(list);
+        } catch (Exception e) {
+            log.error("鏌ヨ寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栫粦瀹氳褰曞垪琛�
+     *
+     * @param controllerId 鎺у埗鍣ㄧ紪鍙�
+     * @return 涓庤鎺у埗鍣ㄧ浉鍏崇殑缁戝畾銆佽В缁戣褰�
+     */
+    @Operation(summary = "鑾峰緱鎺у埗鍣ㄤ笌鍙栨按鍙g粦瀹氬強瑙g粦璁板綍", description = "杩斿洖鎺у埗鍣ㄤ笌鍙栨按鍙g粦瀹氬強瑙g粦鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖鍏ㄩ儴缁戝畾鍙婅В缁戞暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaClient.class))}
+            )
+    })
+    @GetMapping(path = "controller_binds")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByControllerId(Long controllerId) {
+        try {
+            List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByControllerId(controllerId)).orElse(new ArrayList<>());
+            if (list.size() <= 0) {
+                //鏃犵粦瀹氳褰曚篃杩斿洖鎴愬姛 浣嗘暟鎹负绌�
+                return BaseResponseUtils.buildSuccess(list);
+            }
+            return BaseResponseUtils.buildSuccess(list);
+        } catch (Exception e) {
+            log.error("鏌ヨ寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇娴佹氮鎺у埗鍣ㄥ垪琛�
+     *
+     * @param vo 鏌ヨ鏉′欢
+     * @return 绗﹀悎鏉′欢鐨勬帶鍒跺櫒鍒楄〃
+     */
+    @Operation(summary = "鑾峰緱涓�椤垫祦娴帶鍒跺櫒璁板綍", description = "杩斿洖涓�椤垫祦娴帶鍒跺櫒鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤垫祦娴帶鍒跺櫒鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrControllerTramp.class))}
+            )
+    })
+    @GetMapping(path = "/getTrampControllers")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<PrControllerTramp>>> getTrampControllers(TrampControllerQueryVo vo) {
+        try {
+            //QueryResultVo<List<PrControllerTramp>> res = intakeControllerSv.getTrampControllers(vo);
+            //if (res.itemTotal != null && res.itemTotal > 0) {
+            //    return BaseResponseUtils.buildSuccess(res);
+            //} else {
+            //    //璇锋眰鎴愬姛浣嗘暟鎹负绌�
+            //    return BaseResponseUtils.buildSuccess(res);
+            //}
+            return BaseResponseUtils.buildSuccess(intakeControllerSv.getTrampControllers(vo));
+        } catch (Exception e) {
+            log.error("鑾峰彇娴佹氮鎺у埗鍣ㄨ褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 娣诲姞娴佹氮鎺у埗鍣�
+     *
+     * @param pct
+     * @return
+     */
+    @PostMapping("addTrampController")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addTrampController(@RequestBody PrControllerTramp pct) {
+        pct.setFindDt(new Date());
+        Integer rows = intakeControllerSv.addTrampController(pct);
+        if (rows == 0) {
+            return BaseResponseUtils.buildErrorMsg(ProjectResultCode.ADD_TRAMP_CONTROLLER_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鍒犻櫎娴佹氮鎺у埗鍣�
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("deleteTrampController")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteTrampController(Long id) {
+        PrControllerTramp controllerInfo = intakeControllerSv.getTrampControllerInfo(id);
+        if (controllerInfo == null) {
+            return BaseResponseUtils.buildErrorMsg(ProjectResultCode.NO_EXIST_TRAMP_CONTROLLER.getMessage());
+        }
+
+        Integer rows = intakeControllerSv.deleteTrampController(id);
+//        if (rows == 0) {
+//            return BaseResponseUtils.buildErrorMsg(ProjectResultCode.DELETE_TRAMP_CONTROLLER_FAIL.getMessage());
+//        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 娓呯┖娴佹氮鎺у埗鍣�
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("emptyTrampController")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> emptyTrampController() {
+
+        Integer rows = intakeControllerSv.emptyTrampController();
+        if (rows == 0) {
+            return BaseResponseUtils.buildErrorMsg(ProjectResultCode.DELETE_TRAMP_CONTROLLER_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+}

--
Gitblit v1.8.0