bug51773+51768责任领域相关的修改

This commit is contained in:
xiejunyu
2022-05-10 10:14:03 +08:00
parent b6313d30fc
commit a3f132642b
5 changed files with 69 additions and 18 deletions
@@ -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<SysDictItem> logicDelete(@RequestParam(name="id",required=true) String id) {
public Result<SysDictItem> logicDelete(@RequestParam(name="id",required=true) String id,
@RequestParam(name = "cut") String cut) {
Result<SysDictItem> result = new Result<SysDictItem>();
SysDictItem joinSystem = sysDictItemService.getById(id);
//查询传入的id,如果对应的code是责任领域,并且已经使用了->不能删除
QueryWrapper<SysDict> 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<SysDictItem> 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 {
@@ -35,8 +35,12 @@ public interface SysDictItemMapper extends BaseMapper<SysDictItem> {
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<String> selectItemValueByDictCode(String dictCode);
/**查询相关人员表里用过的责任领域次数*/
@Select("select count(prp.duty_territory) from project_related_personnel as prp where prp.duty_territory=#{itemValue}")
int selectCountDutyTerritory(String itemValue);
}
@@ -52,7 +52,7 @@ public interface SysDictMapper extends BaseMapper<SysDict> {
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<String> queryDictNameByCode(@Param("code") String code);
@Deprecated
@@ -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<ProjectLibraryBas
projectLibraryBase.setUpdateBy(sysUser.getUsername());
save(projectLibraryBase);
//查标签内容里的责任领域数据
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//新建相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
projectRelatedPersonnelService.setDutyTerritoryValue(sysDictItemValue,projectLibraryBase.getId());
}
}
//创建任务计划时间轴
projectTaskPlanningService.setProjectTaskPlanning(projectLibraryBase.getId());
}
@@ -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<ProjectRelat
@Autowired
private SysDictMapper sysDictMapper;
@Autowired
private SysDictItemMapper sysDictItemMapper;
/**
* 保存
*
@@ -154,7 +156,21 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
*/
@Override
public List<ProjectRelatedPersonnel> queryPageList(String projectId) {
//查询数据
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId);
//没有数据->新增所有责任领域,查询
if(CollectionUtils.isEmpty(result)){
//查标签内容里的责任领域数据
List<String> 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<ProjectRelat
//projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getValue());
exportParams=new ExportParams(title , null, title);
}
//查标签内容里的责任领域数据
//查标签内容里的责任领域数据
List<String> dictItemNameList = sysDictMapper.queryDictNameByCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//新建相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(dictItemNameList)) {
@@ -522,7 +538,15 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
int row=1;
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
//查标签内容里的责任领域数据
List<String> 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()) {
//导入的一条数据,只能有一个责任领域