From a3f132642bdea5338621e1840534cfa7f11eb64b Mon Sep 17 00:00:00 2001 From: xiejunyu Date: Tue, 10 May 2022 10:13:52 +0800 Subject: [PATCH] =?UTF-8?q?bug51773+51768=E8=B4=A3=E4=BB=BB=E9=A2=86?= =?UTF-8?q?=E5=9F=9F=E7=9B=B8=E5=85=B3=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDictItemController.java | 37 +++++++++++++++++-- .../system/mapper/SysDictItemMapper.java | 8 +++- .../modules/system/mapper/SysDictMapper.java | 2 +- .../impl/ProjectLibraryBaseServiceImpl.java | 10 +---- .../ProjectRelatedPersonnelServiceImpl.java | 30 +++++++++++++-- 5 files changed, 69 insertions(+), 18 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java index bb733e519..10c497491 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java @@ -8,14 +8,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CommonConstant; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.enums.FixedFieldEnum; +import com.jero.modules.system.entity.SysDict; import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.service.ISysDictItemService; +import com.jero.modules.system.service.ISysDictService; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang3.RandomUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; @@ -42,7 +47,10 @@ public class SysDictItemController { @Autowired private ISysDictItemService sysDictItemService; - + @Autowired + private ISysDictService sysDictService; + @Autowired + private SysDictItemMapper sysDictItemMapper; /** * @功能:查询字典数据 * @param sysDictItem @@ -159,9 +167,32 @@ public class SysDictItemController { @RequiresPermissions("dictItem:logicDelete") @RequestMapping(value = "/logicDelete", method = RequestMethod.GET) @CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true) - public Result logicDelete(@RequestParam(name="id",required=true) String id) { + public Result logicDelete(@RequestParam(name="id",required=true) String id, + @RequestParam(name = "cut") String cut) { Result result = new Result(); SysDictItem joinSystem = sysDictItemService.getById(id); + //查询传入的id,如果对应的code是责任领域,并且已经使用了->不能删除 + QueryWrapper dictQueryWrapper = new QueryWrapper<>(); + dictQueryWrapper.eq("id", joinSystem.getDictId()).eq("del_flag", 0); + String dictCode = sysDictService.list(dictQueryWrapper).get(0).getDictCode(); + if(StringUtils.isNotEmpty(dictCode)) { + if (dictCode.equals(DictCodeEnum.DUTY_TERRITORY.getValue())) {//判断是否是责任领域 + QueryWrapper itemQueryWrapper = new QueryWrapper<>(); + itemQueryWrapper.eq("id", id).eq("del_flag", 0); + String itemValue = sysDictItemService.list(itemQueryWrapper).get(0).getItemValue().toString(); + System.out.println(itemValue); + int count = sysDictItemMapper.selectCountDutyTerritory(itemValue); + if(count>0){ + //中英切换提示语 + if(CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("这条数据在项目库的相关人员中已使用,不能删除"); + }else{ + throw new JeroBootException("This piece of data has been used by relevant personnel in the project library and cannot be deleted."); + } + } + } + } + if (joinSystem == null) { result.error500("未找到对应实体"); }else { diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java index 1bc4ce42e..c03542fee 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java @@ -35,8 +35,12 @@ public interface SysDictItemMapper extends BaseMapper { public void updateDictDelFlag(@Param("flag") int delFlag, @Param("id") String id); -/**根据code查数据字典具体值*/ + /**根据code查数据字典具体值*/ @Select("SELECT sdi.item_value FROM sys_dict_item as sdi LEFT JOIN sys_dict as sd ON sdi.dict_id =sd.id " + - "WHERE sd.dict_code =#{dictCode} order by sort_order asc, item_value asc") + "WHERE sd.dict_code =#{dictCode} and sdi.del_flag=0 order by sort_order asc, item_value asc") public List selectItemValueByDictCode(String dictCode); + + /**查询相关人员表里用过的责任领域次数*/ + @Select("select count(prp.duty_territory) from project_related_personnel as prp where prp.duty_territory=#{itemValue}") + int selectCountDutyTerritory(String itemValue); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java index 2aff71a9b..34a794996 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java @@ -52,7 +52,7 @@ public interface SysDictMapper extends BaseMapper { public String queryDictKeyByText(@Param("code") String code,@Param("text") String key); /**根据code查询所有中文名*/ - @Select("select s.item_text from sys_dict_item s where s.dict_id = (select id from sys_dict where dict_code = #{code})") + @Select("select s.item_text from sys_dict_item s where s.dict_id = (select id from sys_dict where dict_code = #{code}) and s.del_flag=0") public List queryDictNameByCode(@Param("code") String code); @Deprecated diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 2b40b677a..6c1553114 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.ProjectLibraryBase; -import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.system.entity.SysUser; @@ -61,14 +60,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()); - //新建相关人员表里的责任领域数据 - if (CollectionUtils.isNotEmpty(sysDictItemValueList)) { - for (String sysDictItemValue : sysDictItemValueList) { - projectRelatedPersonnelService.setDutyTerritoryValue(sysDictItemValue,projectLibraryBase.getId()); - } - } + //创建任务计划时间轴 projectTaskPlanningService.setProjectTaskPlanning(projectLibraryBase.getId()); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 1e896d24a..d45c56688 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -13,6 +13,7 @@ import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper; import com.jero.modules.project.service.IProjectRelatedPersonnelService; import com.jero.modules.project.util.ExcelLangUtils; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysDictMapper; import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.service.ISysDictService; @@ -59,7 +60,8 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl queryPageList(String projectId) { + //查询数据 List result = projectRelatedPersonnelMapper.queryPageList(projectId); + //没有数据->新增所有责任领域,查询 + if(CollectionUtils.isEmpty(result)){ + //查标签内容里的责任领域数据 + List sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()); + //新建相关人员表里的责任领域数据 + if (CollectionUtils.isNotEmpty(sysDictItemValueList)) { + for (String sysDictItemValue : sysDictItemValueList) { + setDutyTerritoryValue(sysDictItemValue,projectId); + } + } + //重新查询列表 + result = projectRelatedPersonnelMapper.queryPageList(projectId); + } disposeData(result); return result; } @@ -441,7 +457,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl dictItemNameList = sysDictMapper.queryDictNameByCode(DictCodeEnum.DUTY_TERRITORY.getValue()); //新建相关人员表里的责任领域数据 if (CollectionUtils.isNotEmpty(dictItemNameList)) { @@ -522,7 +538,15 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl dictItemNameList = sysDictMapper.queryDictNameByCode(DictCodeEnum.DUTY_TERRITORY.getValue()); + if(!dictItemNameList.contains(projectRelatedPersonnel.getDutyTerritory())){ + if (CutEnum.CN.getValue().equals(cut)) { + throw new JeroBootException("该责任领域不存在.请检查第" + row + "行"); + }else{ + throw new JeroBootException("The area of responsibility does not exist. Please check line " + row); + } + } //责任领域 if(!projectRelatedPersonnel.getDutyTerritory().isEmpty()) { //导入的一条数据,只能有一个责任领域