pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
@@ -1,5 +1,8 @@ package com.dy.pipIrrBase.district; import com.alibaba.fastjson2.JSON; 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; @@ -263,4 +266,52 @@ } return BaseResponseUtils.buildSuccess(map_Districts); } /** * 获取三级行政区划 * @return 县镇村三级行政区划 */ @GetMapping(path = "/three") @SsoAop() public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getThreeDistrict() { JSONArray array_counties = new JSONArray(); JSONArray array_towns = new JSONArray(); JSONArray array_villages = new JSONArray(); List<Map<String, Object>> list_counties = Optional.ofNullable(sv.getDistrictgsByLevel(2)).orElse(new ArrayList<>()); if(list_counties.size() > 0) { array_counties = JSONArray.parseArray(JSON.toJSONString(list_counties)); // 遍历每一个县,将县下的镇村加到县的子集 for(int i = 0; i < array_counties.size(); i++) { JSONObject job_county = array_counties.getJSONObject(i); Long countyId = job_county.getLong("id"); List<Map<String, Object>> list_towns = Optional.ofNullable(sv.getDistrictsBySupperId(countyId)).orElse(new ArrayList<>()); if(list_towns.size() > 0) { array_towns = JSONArray.parseArray(JSON.toJSONString(list_towns)); // 遍历每一个镇,将镇下村列表加到镇的子集 for(int j = 0; j < array_towns.size(); j++) { JSONObject job_town = array_towns.getJSONObject(j); Long townId = job_town.getLong("id"); List<Map<String, Object>> list_villages = Optional.ofNullable(sv.getDistrictsBySupperId(townId)).orElse(new ArrayList<>()); if(list_villages.size() > 0) { array_villages = JSONArray.parseArray(JSON.toJSONString(list_villages)); job_town.put("children", array_villages); } } //System.out.println("----" + array_towns); } // 镇村组装完毕,将镇村加到县下 job_county.put("children", array_towns); } // 县组装完毕 //String a = array_counties.toJSONString(); //System.out.println(a); return BaseResponseUtils.buildSuccess(array_counties); }else { return BaseResponseUtils.buildFail("县级行政区划不存在"); } //return BaseResponseUtils.buildSuccess(); } } pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
@@ -119,12 +119,12 @@ @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() public BaseResponse<Boolean> add(@RequestBody @Valid PrDivide po, BindingResult bindingResult){ public BaseResponse<Boolean> add(@RequestBody @Valid DtoDivide po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } // 接收村编号(主键) Long villageId = po.getVillageid(); Long villageId = po.getVillageId(); /** * 获取5级行政区划信息 @@ -134,15 +134,17 @@ return BaseResponseUtils.buildFail("区划信息有误"); } PrDivide prDivide = DtoToDividePojo.INSTANCT.po2vo(po); Long countryId = Long.parseLong(map_districts.get("countryId").toString()); Long townId = Long.parseLong(map_districts.get("townId").toString()); po.setCountyid(countryId); po.setTownid(townId); prDivide.setCountyid(countryId); prDivide.setTownid(townId); Date operateTime = new Date(); po.setOperatedt(operateTime); po.setDeleted((byte)0); Integer rec = Optional.ofNullable(divideSv.addDivide(po)).orElse(0); prDivide.setOperatedt(operateTime); prDivide.setDeleted((byte)0); Integer rec = Optional.ofNullable(divideSv.addDivide(prDivide)).orElse(0); if(rec == 0) { return BaseResponseUtils.buildFail(ProjectResultCode.DIVIDE_FAIL.getMessage()); } pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java
New file @@ -0,0 +1,96 @@ package com.dy.pipIrrProject.divide; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import org.hibernate.validator.constraints.Length; /** * @author ZhuBaoMin * @date 2024-01-05 17:00 * @LastEditTime 2024-01-05 17:00 * @Description */ @Data @Schema(name = "分水房传入对象") public class DtoDivide { public static final long serialVersionUID = 1L; /** * 所在村 */ @Schema(description = "所在村ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "所在村不能为空") private Long villageId; /** * 所在片区 */ @Schema(description = "所在片区ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "所在片区不能为空") private Long blockId; /** * 分水口名称或编号 */ @Schema(description = "分水口名称", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "分水房名称不能为空") @Length(max = 25, message = "分水口名称最多25字") private String name; /** * 覆盖村 */ @Schema(description = "覆盖村", requiredMode = Schema.RequiredMode.REQUIRED) @Length(max = 100, message = "覆盖村最多100字") private String villages; /** * 覆盖面积(平方公里) */ @Schema(description = "覆盖面积", requiredMode = Schema.RequiredMode.REQUIRED) private Double area; /** * 负责人 */ @Schema(description = "负责人", requiredMode = Schema.RequiredMode.REQUIRED) private String header; /** * 联系电话 */ @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED) @Length(max = 11, message = "联系电话最大11位") private String phone; /** * 经度 */ @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "经度不能为空") private Double lng; /** * 纬度 */ @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "经度不能为空") private Double lat; /** * 备注信息 */ @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @Length(max = 200, message = "备注最多200字") private String remarks; /** * 操作人编号 */ @Schema(description = "操作人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @NotNull(message = "操作人编号不能为空") private Long operator; } pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java
New file @@ -0,0 +1,32 @@ package com.dy.pipIrrProject.divide; import com.dy.pipIrrGlobal.pojoPr.PrDivide; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers; /** * @author ZhuBaoMin * @date 2024-01-05 17:10 * @LastEditTime 2024-01-05 17:10 * @Description */ @Mapper public interface DtoToDividePojo { DtoToDividePojo INSTANCT = Mappers.getMapper(DtoToDividePojo.class); @Mapping(target = "villageid", source = "villageId") @Mapping(target = "blockid", source = "blockId") @Mapping(target = "name", source = "name") @Mapping(target = "villages", source = "villages") @Mapping(target = "area", source = "area") @Mapping(target = "header", source = "header") @Mapping(target = "phone", source = "phone") @Mapping(target = "lng", source = "lng") @Mapping(target = "lat", source = "lat") @Mapping(target = "remarks", source = "remarks") @Mapping(target = "operator", source = "operator") PrDivide po2vo(DtoDivide po); }