pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrDivideMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoPr.PrDivide; import com.dy.pipIrrGlobal.voPr.VoDivide; import com.dy.pipIrrGlobal.voPr.VoSimpleDivide; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -56,4 +57,11 @@ * @return */ Long getBlockIdById(@Param("divideId") Long divideId); /** * 根据片区ID获取分水房列表 * @param blockId * @return */ List<VoSimpleDivide> getDividesByBlockId(Long blockId); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoSimpleDivide.java
New file @@ -0,0 +1,28 @@ package com.dy.pipIrrGlobal.voPr; import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; import lombok.Data; /** * @author ZhuBaoMin * @date 2024-09-09 20:05 * @LastEditTime 2024-09-09 20:05 * @Description */ @Data public class VoSimpleDivide { private static final long serialVersionUID = 202409092005001L; /** * 分水房ID */ @JSONField(serializeUsing= ObjectWriterImplToString.class) private Long divideId; /** * 分水房名称 */ private String divideName; } pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
@@ -302,14 +302,23 @@ update pr_divide set deleted = 1 <where> <if test = "id != null and id > 0"> AND id = ${id} AND id = #{id} </if> </where> </update> <!--根据分水房编号获取所属片区编号--> <select id="getBlockIdById" resultType="java.lang.Long"> SELECT blockId FROM pr_divide WHERE id = ${divideId} SELECT blockId FROM pr_divide WHERE id = #{divideId} </select> <!--根据片区ID获取分水房列表--> <select id="getDividesByBlockId" resultType="com.dy.pipIrrGlobal.voPr.VoSimpleDivide"> SELECT id As divideId, name AS divideName FROM pr_divide WHERE deleted = 0 AND blockId = #{blockId} </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
@@ -388,4 +388,19 @@ return BaseResponseUtils.buildSuccess(true); } /** * 获取片区、分水房联动视图,添加农户时使用 * @return */ @GetMapping(path = "/block_divides") @SsoAop() public BaseResponse<JSONArray> getBlockDivides() { try { return BaseResponseUtils.buildSuccess(this.sv.getBlockDivides()); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java
@@ -7,20 +7,24 @@ import com.dy.pipIrrGlobal.daoBa.BaBlockMapper; import com.dy.pipIrrGlobal.daoBa.BaMapCoordinatesMapper; import com.dy.pipIrrGlobal.daoBa.BaMapGraphMapper; import com.dy.pipIrrGlobal.daoPr.PrDivideMapper; 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 com.dy.pipIrrGlobal.voBa.VoMapCoordinates; import com.dy.pipIrrGlobal.voBa.VoMapGraph; import com.dy.pipIrrGlobal.voPr.VoSimpleDivide; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; @Slf4j @Service @@ -38,6 +42,9 @@ @Autowired private BaMapCoordinatesMapper baMapCoordinatesMapper; @Autowired private PrDivideMapper prDivideMapper; /** * 得到一个片区 @@ -212,4 +219,32 @@ return this.baMapCoordinatesMapper.deleteByBlockId(blockId); } /** * 获取片区、分水房联动视图,添加农户时使用 * @return */ public JSONArray getBlockDivides() { JSONArray array_blocks = null; JSONArray array_divides = null; JSONArray array_result = new JSONArray(); List<BaBlock> list_blocks = dao.selectAll(); if(list_blocks != null && list_blocks.size() > 0) { array_blocks = (JSONArray) JSON.toJSON(list_blocks); for (int i = 0; i < array_blocks.size(); i++) { JSONObject job_block = array_blocks.getJSONObject(i); JSONObject job_blockNew = new JSONObject(); job_blockNew.put("value", job_block.getLong("id")); job_blockNew.put("label", job_block.getString("name")); List<VoSimpleDivide> list_divides = Optional.ofNullable( prDivideMapper.getDividesByBlockId(job_block.getLong("id"))).orElse(new ArrayList<>()); array_divides = (JSONArray) JSON.toJSON(list_divides); job_blockNew.put("children", array_divides); array_result.add(job_blockNew); } return array_result; }else { return new JSONArray(); } } }