diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java index cb4e6992..e1fb43ca 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java @@ -9,6 +9,7 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.commons.tools.annotation.LogOperation; +import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.AssertUtils; @@ -23,6 +24,7 @@ import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO; import com.elink.esua.epdc.service.SysDeptService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -284,4 +286,29 @@ public class SysDeptController { return new Result>().ok(data); } + + /** + * 新增区域编码 + * + * @param dto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author Liuchuang + * @since 2021/5/11 15:20 + */ + @PostMapping("addAreaCode") + public Result addAreaCode(@RequestBody SysDeptDTO dto) { + if (!OrganizationTypeConstant.ORG_TYPE_STREET_PARTY.equals(dto.getTypeKey()) + && !OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(dto.getTypeKey())) { + return new Result().error("只有机构类型为街道或者社区时可以新增区域编码"); + } + if (null == dto.getName() || StringUtils.isEmpty(dto.getName())) { + return new Result().error("请填写机构名称"); + } + + if (null == dto.getPid() || 0 == dto.getPid()) { + return new Result().error("请选择上级部门"); + } + + return sysDeptService.addAreaCode(dto); + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java index 3a2dd4dc..905eb1e6 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java @@ -2,12 +2,15 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeFormDTO; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeResultDTO; import com.elink.esua.epdc.dto.admin.DeptCodeFormDTO; import com.elink.esua.epdc.dto.epdc.DeptCodeOption; import com.elink.esua.epdc.feign.fallback.AnalysisFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; /** @@ -29,4 +32,15 @@ public interface AnalysisFeignClient { @GetMapping(value = "analysis/admin/getDeptCode", consumes = MediaType.APPLICATION_JSON_VALUE) Result getDeptCode(@RequestBody DeptCodeFormDTO deptCodeFormDTO); + /** + * 新增区域编码 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author Liuchuang + * @since 2021/5/11 15:38 + */ + @PostMapping(value = "analysis/admin/addAreaCode", consumes = MediaType.APPLICATION_JSON_VALUE) + Result addAreaCode(DeptAddAreaCodeFormDTO formDto); + } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java index 76fe5976..0691bd96 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java @@ -3,6 +3,8 @@ package com.elink.esua.epdc.feign.fallback; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeFormDTO; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeResultDTO; import com.elink.esua.epdc.dto.admin.DeptCodeFormDTO; import com.elink.esua.epdc.dto.epdc.DeptCodeOption; import com.elink.esua.epdc.feign.AnalysisFeignClient; @@ -18,6 +20,11 @@ public class AnalysisFeignClientFallback implements AnalysisFeignClient { @Override public Result getDeptCode(DeptCodeFormDTO deptCodeFormDTO) { - return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "homePagePlatformSummary",deptCodeFormDTO); + return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "getDeptCode",deptCodeFormDTO); + } + + @Override + public Result addAreaCode(DeptAddAreaCodeFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "addAreaCode",formDto); } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index af7cf646..f4f4f00b 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java @@ -288,4 +288,14 @@ public interface SysDeptService extends BaseService { * @return com.elink.esua.epdc.commons.tools.utils.Result **/ Result getUserDeptOptionByUserId(String userId); + + /** + * 新增区域编码 + * + * @param dto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author Liuchuang + * @since 2021/5/11 15:21 + */ + Result addAreaCode(SysDeptDTO dto); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 55660da3..1b2ec1ad 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -29,6 +29,8 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.TreeUtils; import com.elink.esua.epdc.dao.SysDeptDao; import com.elink.esua.epdc.dto.*; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeFormDTO; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeResultDTO; import com.elink.esua.epdc.dto.admin.DeptCodeFormDTO; import com.elink.esua.epdc.dto.epdc.DeptCodeOption; import com.elink.esua.epdc.dto.epdc.DeptTreeWithTypeKeyDTO; @@ -978,4 +980,33 @@ public class SysDeptServiceImpl extends BaseServiceImpl().ok((DeptOption) obj); } + + @Override + public Result addAreaCode(SysDeptDTO dto) { + SysDeptEntity parentDeptInfo = baseDao.getById(dto.getPid()); + if (null == parentDeptInfo) { + return new Result().error("请选择上级部门"); + } + if (StringUtils.isEmpty(parentDeptInfo.getAreaCode())) { + return new Result().error("上级部门未绑定区域编码,请先绑定上级部门区域编码"); + } + + DeptAddAreaCodeFormDTO formDto = new DeptAddAreaCodeFormDTO(); + formDto.setParentAreaCode(parentDeptInfo.getAreaCode()); + formDto.setName(dto.getName()); + if (null != dto.getId() && NumConstant.ZERO_L != dto.getId()) { + SysDeptEntity deptInfo = baseDao.getById(dto.getId()); + formDto.setCode(deptInfo.getAreaCode()); + } + Result data = analysisFeignClient.addAreaCode(formDto); + if (!data.success()) { + return new Result().error(data.getMsg()); + } + dto.setAreaCode(data.getData().getCode()); + + // 更新缓存中的行政区划 + this.packageKcDeptCodeOption(); + + return new Result().ok(dto); + } } diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java index 1a466019..31e1d361 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java @@ -222,6 +222,11 @@ public interface EpmetConstant { */ String EPMET_PROJECT_CATEGORY_ORG_DAILY = "/data/stats/project/category-org-daily"; + /** + * 新增行政地区编码 + */ + String EPMET_SCREEN_AGENCY_ADD_STREET_COMM = "/data/report/screen/agency/addstreetcomm"; + /** * 行政地区编码查询 - 平阴县 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/admin/DeptAddAreaCodeFormDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/admin/DeptAddAreaCodeFormDTO.java new file mode 100644 index 00000000..53dcf1a6 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/admin/DeptAddAreaCodeFormDTO.java @@ -0,0 +1,31 @@ +package com.elink.esua.epdc.dto.admin; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author Liuchuang + */ +@Data +public class DeptAddAreaCodeFormDTO implements Serializable { + private static final long serialVersionUID = -8154207132241940362L; + + /** + * 上级组织区域编码 + */ + @NotBlank(message = "上级组织区域编码不能为空") + private String parentAreaCode; + + /** + * 新增组织名称 + */ + @NotBlank(message = "新增组织名称不能为空") + private String name; + + /** + * 新增组织区域编码,如果code有值,会更新行政区划的名字。 + */ + private String code; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/admin/DeptAddAreaCodeResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/admin/DeptAddAreaCodeResultDTO.java new file mode 100644 index 00000000..91dba9db --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/admin/DeptAddAreaCodeResultDTO.java @@ -0,0 +1,18 @@ +package com.elink.esua.epdc.dto.admin; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author Liuchuang + */ +@Data +public class DeptAddAreaCodeResultDTO implements Serializable { + private static final long serialVersionUID = 8182151134618271181L; + + /** + * 区域编码 + */ + private String code; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/controller/AdminAnalysisController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/controller/AdminAnalysisController.java index c62d3d6b..6f6e2768 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/controller/AdminAnalysisController.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/controller/AdminAnalysisController.java @@ -1,14 +1,14 @@ package com.elink.esua.epdc.modules.admin.controller; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeFormDTO; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeResultDTO; import com.elink.esua.epdc.dto.admin.DeptCodeFormDTO; import com.elink.esua.epdc.dto.epdc.DeptCodeOption; import com.elink.esua.epdc.modules.admin.service.AdminAnalysisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @Description admin相关 @@ -35,4 +35,19 @@ public class AdminAnalysisController { return new Result().ok(deptCodeOption); } + /** + * 新增区域编码 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author Liuchuang + * @since 2021/5/11 15:43 + */ + @PostMapping("addAreaCode") + public Result addAreaCode(@RequestBody DeptAddAreaCodeFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + + return adminAnalysisService.addAreaCode(formDto); + } + } diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/AdminAnalysisService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/AdminAnalysisService.java index 3f1edf4a..3ff10493 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/AdminAnalysisService.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/AdminAnalysisService.java @@ -1,5 +1,8 @@ package com.elink.esua.epdc.modules.admin.service; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeFormDTO; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeResultDTO; import com.elink.esua.epdc.dto.admin.DeptCodeFormDTO; import com.elink.esua.epdc.dto.epdc.DeptCodeOption; @@ -17,4 +20,14 @@ public interface AdminAnalysisService { * @return java.lang.String **/ DeptCodeOption getDeptCode(DeptCodeFormDTO deptCodeFormDTO); + + /** + * 新增区域编码 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author Liuchuang + * @since 2021/5/11 15:45 + */ + Result addAreaCode(DeptAddAreaCodeFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/impl/AdminAnalysisServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/impl/AdminAnalysisServiceImpl.java index c4b6f851..7960056e 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/impl/AdminAnalysisServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/admin/service/impl/AdminAnalysisServiceImpl.java @@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.constant.EpmetConstant; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeFormDTO; +import com.elink.esua.epdc.dto.admin.DeptAddAreaCodeResultDTO; import com.elink.esua.epdc.dto.admin.DeptCodeFormDTO; import com.elink.esua.epdc.dto.admin.DeptCodeTree; import com.elink.esua.epdc.dto.epdc.DeptCodeOption; @@ -44,4 +46,10 @@ public class AdminAnalysisServiceImpl extends BaseServiceImpl addAreaCode(DeptAddAreaCodeFormDTO formDto) { + String dataResult = epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_AGENCY_ADD_STREET_COMM, JSONObject.toJSONString(formDto)); + return JSONObject.parseObject(dataResult, Result.class); + } + }