|
|
@ -21,29 +21,35 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
|
import com.epmet.commons.tools.exception.RenException; |
|
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
|
import com.epmet.dao.IssueCategoryDao; |
|
|
|
import com.epmet.dao.IssueProjectCategoryDictDao; |
|
|
|
import com.epmet.dao.IssueProjectRelationDao; |
|
|
|
import com.epmet.dto.IssueCategoryDTO; |
|
|
|
import com.epmet.dto.IssueDTO; |
|
|
|
import com.epmet.dto.IssueProjectCategoryDictDTO; |
|
|
|
import com.epmet.dto.form.CategoryTagInitFormDTO; |
|
|
|
import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO; |
|
|
|
import com.epmet.dto.form.ProjectSaveCategoryFormDTO; |
|
|
|
import com.epmet.dto.form.SaveIssueCategoryFormDTO; |
|
|
|
import com.epmet.dto.ProjectCategoryDTO; |
|
|
|
import com.epmet.dto.form.*; |
|
|
|
import com.epmet.dto.result.CustomerCategoryListResultDTO; |
|
|
|
import com.epmet.dto.result.ProjectCategoryDTOResultDTO; |
|
|
|
import com.epmet.dto.result.ProjectIssueCategoryResultDTO; |
|
|
|
import com.epmet.dto.result.ProjectIssueDTOResultDTO; |
|
|
|
import com.epmet.entity.IssueProjectCategoryDictEntity; |
|
|
|
import com.epmet.entity.IssueProjectTagDictEntity; |
|
|
|
import com.epmet.feign.GovProjectOpenFeignClient; |
|
|
|
import com.epmet.project.dto.result.ProjectCategoryDictResultDTO; |
|
|
|
import com.epmet.redis.IssueProjectCategoryDictRedis; |
|
|
|
import com.epmet.service.IssueProjectCategoryDictService; |
|
|
|
import com.epmet.service.IssueProjectTagDictService; |
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
@ -62,6 +68,7 @@ import java.util.stream.Collectors; |
|
|
|
@Service |
|
|
|
public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssueProjectCategoryDictDao, IssueProjectCategoryDictEntity> implements IssueProjectCategoryDictService { |
|
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(IssueProjectCategoryDictServiceImpl.class); |
|
|
|
@Autowired |
|
|
|
private IssueProjectCategoryDictRedis issueProjectCategoryDictRedis; |
|
|
|
@Autowired |
|
|
@ -69,6 +76,11 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssuePr |
|
|
|
@Autowired |
|
|
|
private IssueProjectTagDictService issueProjectTagDictService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IssueCategoryDao issueCategoryDao; |
|
|
|
@Autowired |
|
|
|
private GovProjectOpenFeignClient govProjectOpenFeignClient; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<IssueProjectCategoryDictDTO> page(Map<String, Object> params) { |
|
|
|
IPage<IssueProjectCategoryDictEntity> page = baseDao.selectPage( |
|
|
@ -215,11 +227,39 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssuePr |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 分类删除 |
|
|
|
* 分类客户没有使用过的可以直接删除 包括子类删除,只要客户用过 不管什么状态都不能再删除,允许删除的也跟标签没关系,不删标签 |
|
|
|
* @Author sun |
|
|
|
**/ |
|
|
|
@Override |
|
|
|
public ProjectIssueCategoryResultDTO delCategory(ProjectSaveCategoryFormDTO formDTO) { |
|
|
|
return null; |
|
|
|
public void delCategory(DelCategoryFormDTO formDTO) { |
|
|
|
//1.查询分类信息
|
|
|
|
IssueProjectCategoryDictDTO dto = baseDao.selectByCustomerId(formDTO.getCustomerId(), formDTO.getCategoryId()); |
|
|
|
if (null == dto) { |
|
|
|
throw new RuntimeException("未查询到客户分类信息!"); |
|
|
|
} |
|
|
|
//2.判断分类有没有被客户的议题、项目使用过
|
|
|
|
formDTO.setLevel(dto.getCategoryType()); |
|
|
|
//2-1.判断议题有无使用
|
|
|
|
List<IssueCategoryDTO> 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<List<ProjectCategoryDTO>> 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 |
|
|
|