From 94acbdfc31d3f410a710ca2ad5c4e6dfceb4f1b0 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 22 Mar 2021 17:28:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/exception/EpmetErrorCode.java | 4 +- .../IssueProjectCategoryDictController.java | 9 ++-- .../java/com/epmet/dao/IssueCategoryDao.java | 7 +++ .../dao/IssueProjectCategoryDictDao.java | 15 ++++++ .../IssueProjectCategoryDictService.java | 3 +- .../IssueProjectCategoryDictServiceImpl.java | 52 ++++++++++++++++--- .../resources/mapper/IssueCategoryDao.xml | 14 +++++ .../mapper/IssueProjectCategoryDictDao.xml | 25 +++++++++ .../epmet/dto/form/DelCategoryFormDTO.java | 35 +++++++++++++ .../feign/GovProjectOpenFeignClient.java | 9 ++++ .../GovProjectOpenFeignClientFallback.java | 7 +++ .../controller/ProjectCategoryController.java | 11 ++++ .../com/epmet/dao/ProjectCategoryDao.java | 8 +++ .../epmet/service/ProjectCategoryService.java | 8 +++ .../impl/ProjectCategoryServiceImpl.java | 11 ++++ .../resources/mapper/ProjectCategoryDao.xml | 14 +++++ 16 files changed, 221 insertions(+), 11 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DelCategoryFormDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index d771565080..fa03a32618 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -144,7 +144,9 @@ public enum EpmetErrorCode { TOPIC_SHIFTED_TO_ISSUE_UNDER_AUDITING(9004,"当前话题正在转议题审核"), TOPIC_ALREADY_SHIFTED_TO_ISSUE(9005,"该话题已被转为议题,请勿重复操作"), TOPIC_IS_HIDDEN(9006,"该话题已被屏蔽,请先解除屏蔽"), - TOPIC_IS_CLOSED(9008,"该话题已关闭,无法转为议题"); + TOPIC_IS_CLOSED(9008,"该话题已关闭,无法转为议题"), + + CUSTOMER_CATEGORY(9101,"分类已使用,不允许删除"); private int code; private String msg; diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java index cbd7c63190..484636d73f 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java @@ -29,6 +29,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IssueProjectCategoryDictDTO; import com.epmet.dto.form.CategoryTagInitFormDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO; import com.epmet.dto.form.ProjectSaveCategoryFormDTO; import com.epmet.dto.result.CustomerCategoryListResultDTO; @@ -160,12 +161,14 @@ public class IssueProjectCategoryDictController { /** * @param formDTO * @return - * @Description 分类删除 + * @Description 分类删除【存在客户在使用时不允许删除】 * @Author sun **/ @PostMapping("delcategory") - public Result delCategory(@RequestBody ProjectSaveCategoryFormDTO formDTO) { - return new Result().ok(issueProjectCategoryDictService.delCategory(formDTO)); + public Result delCategory(@RequestBody DelCategoryFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, DelCategoryFormDTO.DelCategory.class); + issueProjectCategoryDictService.delCategory(formDTO); + return new Result(); } /** diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCategoryDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCategoryDao.java index c263ec1ddb..650e4ac227 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCategoryDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCategoryDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IssueCategoryDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.ProjectCategoryTagListFormDTO; import com.epmet.dto.result.IssueCategoryTagResultDTO; import com.epmet.dto.result.ProjectCategoryTagResultDTO; @@ -65,4 +66,10 @@ public interface IssueCategoryDao extends BaseDao { * @Author sun **/ void delByIssueId(@Param("issueId") String issueId); + + /** + * @Description 查询客户分类有没有被议题使用 + * @Author sun + **/ + List selectIssueList(DelCategoryFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java index 1524bc1fc0..45ec49e689 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IssueProjectCategoryDictDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO; import com.epmet.dto.result.CustomerCategoryListResultDTO; import com.epmet.entity.IssueProjectCategoryDictEntity; @@ -87,4 +88,18 @@ public interface IssueProjectCategoryDictDao extends BaseDao selectListCategoryDict(@Param("customerId") String customerId, @Param("pid") String pid); + + /** + * 查询客户某个分类信息 + * @author sun + */ + IssueProjectCategoryDictDTO selectByCustomerId(@Param("customerId") String customerId, @Param("categoryId") String categoryId); + + /** + * 删除一级或二级分类,二级分类下默认有的标签不作处理 + * @author sun + */ + int delCategory(DelCategoryFormDTO formDTO); + + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java index 24e824ffff..067c0a059d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueProjectCategoryDictDTO; import com.epmet.dto.form.CategoryTagInitFormDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO; import com.epmet.dto.form.ProjectSaveCategoryFormDTO; import com.epmet.dto.result.CustomerCategoryListResultDTO; @@ -142,7 +143,7 @@ public interface IssueProjectCategoryDictService extends BaseService implements IssueProjectCategoryDictService { + private static Logger logger = LoggerFactory.getLogger(IssueProjectCategoryDictServiceImpl.class); @Autowired private IssueProjectCategoryDictRedis issueProjectCategoryDictRedis; @Autowired @@ -69,6 +76,11 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -215,11 +227,39 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl issueList = issueCategoryDao.selectIssueList(formDTO); + //已使用,不允许删除 + if (null != issueList || issueList.size() > NumConstant.ZERO) { + throw new RenException(EpmetErrorCode.CUSTOMER_CATEGORY.getCode(), EpmetErrorCode.CUSTOMER_CATEGORY.getMsg()); + } + //2-2.判断项目有无使用 + Result> resultList = govProjectOpenFeignClient.getProjectCategoryList(formDTO); + if (!resultList.success()) { + throw new RenException(resultList.getCode(), resultList.getMsg()); + } + if (null != resultList.getData() || resultList.getData().size() > NumConstant.ZERO) { + throw new RenException(EpmetErrorCode.CUSTOMER_CATEGORY.getCode(), EpmetErrorCode.CUSTOMER_CATEGORY.getMsg()); + } + + //3.分类未被使用,则删除一级、二级分类,二级分类下默认有的标签不作处理 + if (baseDao.delCategory(formDTO) < NumConstant.ONE) { + logger.error(String.format("分类删除失败,客户Id->%s,分类Id->%s", formDTO.getCustomerId(), formDTO.getCategoryId())); + throw new RuntimeException("分类删除失败!"); + } + } @Override diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml index ef271342d3..d5fc89045e 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCategoryDao.xml @@ -57,6 +57,20 @@ AND ISSUE_ID = #{issueId} + + DELETE FROM diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index 5054069566..ac2dcd2730 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -113,4 +113,29 @@ AND d.PID != '0' + + + + + UPDATE issue_project_category_dict + SET DEL_FLAG = '1' + WHERE + CUSTOMER_ID = #{customerId} + + AND id = #{categoryId} + + + AND pid = #{categoryId} + + + diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DelCategoryFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DelCategoryFormDTO.java new file mode 100644 index 0000000000..c1fa3252c6 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DelCategoryFormDTO.java @@ -0,0 +1,35 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 分类删除-接口入参 + * @Author sun + */ +@Data +public class DelCategoryFormDTO implements Serializable { + + private static final long serialVersionUID = 2599592072265715951L; + public interface DelCategory{} + + /** + * 客户Id + */ + @NotBlank(message = "客户ID不能为空",groups = {DelCategory.class}) + private String customerId; + /** + * 分类Id + */ + @NotBlank(message = "分类ID不能为空",groups = {DelCategory.class}) + private String categoryId; + /** + * 分类级别 1:一类 2:二类 + */ + private String level; + + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 49b573f0be..e3246e8bae 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -2,7 +2,9 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.ProjectDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; import com.epmet.dto.form.ProjectListFromDTO; @@ -77,4 +79,11 @@ public interface GovProjectOpenFeignClient { @GetMapping("gov/project/project/queryprojectinfobyprojectid/{projectId}") Result queryProjectInfoByProjectId(@PathVariable("projectId")String projectId); + + /** + * @Description 判断分类有没有被项目使用 + * @Author sun + **/ + @PostMapping("gov/project/projectcategory/getprojectcategorylist") + Result> getProjectCategoryList(@RequestBody DelCategoryFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index ca4488be17..f03dabfef1 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -3,7 +3,9 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.ProjectDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; import com.epmet.dto.form.ProjectListFromDTO; @@ -71,4 +73,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result queryProjectInfoByProjectId(String projectId) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "queryProjectInfoByProjectId", projectId); } + + @Override + public Result> getProjectCategoryList(DelCategoryFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProjectCategoryList", formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java index d1392bd0a6..ff9417e6ca 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectCategoryController.java @@ -30,6 +30,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.ProjectCategoryDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.ProjectCategoryTagListFormDTO; import com.epmet.dto.form.ProjectSaveCategoryFormDTO; import com.epmet.dto.result.ProjectCategoryTagListResultDTO; @@ -125,4 +126,14 @@ public class ProjectCategoryController { return new Result(); } + /** + * @param formDTO + * @Description 判断分类有没有被项目使用 + * @Author sun + **/ + @PostMapping("getprojectcategorylist") + public Result> getProjectCategoryList(@RequestBody DelCategoryFormDTO formDTO) { + return new Result>().ok(projectCategoryService.getProjectCategoryList(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java index 424adbbc50..247f239261 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.ProjectCategoryDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.entity.ProjectCategoryEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -44,4 +46,10 @@ public interface ProjectCategoryDao extends BaseDao { * @Author sun **/ void delByProjectId(@Param("projectId") String projectId); + + /** + * @Description 判断分类有没有被项目使用 + * @Author sun + **/ + List selectProjectCategoryList(DelCategoryFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java index d975623295..37fb5fa984 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.ProjectCategoryDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.ProjectCategoryTagListFormDTO; import com.epmet.dto.form.ProjectSaveCategoryFormDTO; import com.epmet.dto.result.ProjectCategoryTagListResultDTO; @@ -111,4 +112,11 @@ public interface ProjectCategoryService extends BaseService getProjectCategoryList(DelCategoryFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java index f2a12df324..4562835095 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java @@ -29,6 +29,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dao.ProjectCategoryDao; import com.epmet.dao.ProjectTagsDao; import com.epmet.dto.ProjectCategoryDTO; +import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.ProjectCategoryTagListFormDTO; import com.epmet.dto.form.ProjectSaveCategoryFormDTO; import com.epmet.dto.result.*; @@ -192,4 +193,14 @@ public class ProjectCategoryServiceImpl extends BaseServiceImpl getProjectCategoryList(DelCategoryFormDTO formDTO) { + return baseDao.selectProjectCategoryList(formDTO); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml index 09dbfae3a9..bb6a148e90 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml @@ -13,6 +13,20 @@ AND project_id = #{projectId} + + DELETE FROM