From 5de06c73416275934bcfce7cb0e04562c9462ce8 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期六, 06 一月 2024 10:12:52 +0800 Subject: [PATCH] 2024-01-06 朱宝民 三级行政区划获取 --- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java | 96 ++++++++++++++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java | 16 ++- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java | 51 ++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java | 32 ++++++++ 4 files changed, 188 insertions(+), 7 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java index dbec7d5..8a41586 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java +++ b/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(); + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java index 64e007f..5483b23 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java +++ b/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()); } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java new file mode 100644 index 0000000..ee84f0c --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java @@ -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 = "鎵�鍦ㄧ墖鍖篒D", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�") + private Long blockId; + + /** + * 鍒嗘按鍙e悕绉版垨缂栧彿 + */ + @Schema(description = "鍒嗘按鍙e悕绉�", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "鍒嗘按鎴垮悕绉颁笉鑳戒负绌�") + @Length(max = 25, message = "鍒嗘按鍙e悕绉版渶澶�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; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java new file mode 100644 index 0000000..9fbdc5e --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java @@ -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); +} -- Gitblit v1.8.0