bug修复,项目管理接口逻辑完善
This commit is contained in:
@ -168,5 +168,9 @@ public class Project extends BaseEntity
|
||||
* 确认密码
|
||||
*/
|
||||
private String confirmPassword;
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String phoneNumber;
|
||||
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ import com.fastbee.common.core.domain.entity.SysUser;
|
||||
import com.fastbee.common.exception.ServiceException;
|
||||
import com.fastbee.common.holder.ProjectHolder;
|
||||
import com.fastbee.common.utils.DateUtils;
|
||||
import com.fastbee.framework.web.domain.server.Sys;
|
||||
import com.fastbee.iot.model.RegisterUserInput;
|
||||
import com.fastbee.iot.model.RegisterUserOutput;
|
||||
import com.fastbee.iot.service.IToolService;
|
||||
@ -77,17 +78,30 @@ public class ProjectServiceImpl implements IProjectService
|
||||
*/
|
||||
@Override
|
||||
public Project selectProjectByProjectId(Long projectId)
|
||||
{
|
||||
{ //查询项目信息
|
||||
List<Project> projectList = new LambdaQueryChainWrapper<>(projectMapper)
|
||||
.select(Project::getProjectName, Project::getSysShowName, Project::getCentralCoordinates, Project::getScope,
|
||||
Project::getAdministrativeAreaCode, Project::getLevel, Project::getDeptId, Project::getDeptName,
|
||||
Project::getVideoIntroduction, Project::getImage, Project::getLogo, Project::getRemark)
|
||||
.eq(Project::getId, projectId)
|
||||
.list();
|
||||
//查询项目管理员信息
|
||||
List<SysUser> list = new LambdaQueryChainWrapper<>(sysUserMapper)
|
||||
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getPhonenumber)
|
||||
.eq(SysUser::getDeptId, projectList.get(0).getDeptId())
|
||||
.list();
|
||||
|
||||
if(projectList.isEmpty()){
|
||||
throw new ServiceException("项目不存在!");
|
||||
}
|
||||
return projectList.get(0);
|
||||
if(list.isEmpty()){
|
||||
throw new ServiceException("项目机构管理员不存在!");
|
||||
}
|
||||
Project project = projectList.get(0);
|
||||
project.setUserName(list.get(0).getUserName());
|
||||
project.setPhoneNumber(list.get(0).getPhonenumber());
|
||||
|
||||
return project;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,13 +127,6 @@ public class ProjectServiceImpl implements IProjectService
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int insertProject(Project project)
|
||||
{
|
||||
//判断选择的机构下是否已经绑定项目
|
||||
// List<Project> projectList = new LambdaQueryChainWrapper<>(projectMapper)
|
||||
// .select(Project::getId, Project::getProjectName)
|
||||
// .eq(Project::getDeptId, project.getDeptId()).list();
|
||||
// if(!projectList.isEmpty()){
|
||||
// throw new ServiceException("该机构下已经存在项目");
|
||||
// }
|
||||
//TODO 参数校验
|
||||
//获取当前时间
|
||||
Date nowDate = DateUtils.getNowDate();
|
||||
@ -135,7 +142,10 @@ public class ProjectServiceImpl implements IProjectService
|
||||
newSysDept.setCreateTime(nowDate);
|
||||
//设置默认机构名称
|
||||
newSysDept.setDeptName(project.getProjectName());
|
||||
newSysDept.setLeader("admin");
|
||||
//设置默认机构类型
|
||||
newSysDept.setDeptType(3);
|
||||
//设置机构领导
|
||||
newSysDept.setLeader("hanzhen");
|
||||
|
||||
//设置机构型行政区域信息
|
||||
newSysDept.setAdministrativeAreaCode(Objects.nonNull(project.getAdministrativeAreaCode())?project.getAdministrativeAreaCode():null);
|
||||
@ -150,11 +160,13 @@ public class ProjectServiceImpl implements IProjectService
|
||||
throw new ServiceException("创建默认机构失败!");
|
||||
}
|
||||
// 新增机构关联系统账号
|
||||
|
||||
// 添加管理员角色,给所有权限
|
||||
SysDept sysDept = deptService.selectDeptById(100L);
|
||||
List<SysMenu> sysMenuList = sysMenuService.selectMenuList(new SysMenu(), sysDept.getDeptUserId());
|
||||
Long[] menuIdList = sysMenuList.stream().map(SysMenu::getMenuId).toArray(Long[]::new);
|
||||
Long[] menuIdList = sysMenuList.stream().map(SysMenu::getMenuId)
|
||||
.filter(menuId-> menuId!=3469L&&menuId!=3L&&menuId!=2L)
|
||||
.
|
||||
toArray(Long[]::new);
|
||||
SysRole sysRole = new SysRole();
|
||||
sysRole.setRoleName("管理员");
|
||||
sysRole.setRoleKey("manager");
|
||||
@ -168,7 +180,7 @@ public class ProjectServiceImpl implements IProjectService
|
||||
RegisterUserInput registerUserInput = new RegisterUserInput();
|
||||
registerUserInput.setUsername(project.getUserName());
|
||||
registerUserInput.setPassword(project.getPassword());
|
||||
registerUserInput.setPhonenumber("15666617898");
|
||||
registerUserInput.setPhonenumber(String.valueOf(UUID.randomUUID()).substring(5,9));
|
||||
registerUserInput.setDeptId(newSysDept.getDeptId());
|
||||
registerUserInput.setRoleIds(new Long[]{sysRole.getRoleId()});
|
||||
RegisterUserOutput registerUserOutput = toolService.registerNoCaptcha(registerUserInput);
|
||||
@ -180,21 +192,8 @@ public class ProjectServiceImpl implements IProjectService
|
||||
// 更新机构管理员角色绑定信息
|
||||
deptService.updateDeptUserId(newSysDept.getDeptId(), registerUserOutput.getSysUserId());
|
||||
|
||||
|
||||
|
||||
// //创建该机构的登录账号数据
|
||||
// SysUser newSysUser = new SysUser();
|
||||
// newSysUser.setUserName(project.getUserName());
|
||||
// newSysUser.setPassword(project.getPassword());
|
||||
// newSysUser.setNickName(project.getProjectName()+"管理员");
|
||||
// newSysUser.setDeptId(newSysDept.getDeptId());
|
||||
// newSysUser.setCreateTime(nowDate);
|
||||
// newSysUser.setCreateBy(project.getCreateBy());
|
||||
//
|
||||
// if(sysUserMapper.insertUser(newSysUser)<1){
|
||||
// throw new ServiceException("创建默认机构管理员账号失败!");
|
||||
// }
|
||||
project.setDeptId(newSysDept.getDeptId());
|
||||
project.setDeptName(project.getProjectName());
|
||||
project.setCreateTime(DateUtils.getNowDate());
|
||||
return projectMapper.insertProject(project);
|
||||
}
|
||||
@ -335,28 +334,44 @@ public class ProjectServiceImpl implements IProjectService
|
||||
.select(SysUser::getUserId, SysUser::getDeptId)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.one();
|
||||
//查询机构
|
||||
SysDept sysDept = new LambdaQueryChainWrapper<>(sysDeptMapper)
|
||||
.select(SysDept::getProvinceCode, SysDept::getCityCode, SysDept::getCountyCode,
|
||||
SysDept::getTownCode, SysDept::getVillageCode,SysDept::getAdministrativeLevel,SysDept::getProjectId)
|
||||
.eq(SysDept::getDeptId, sysUser.getDeptId())
|
||||
.one();
|
||||
if(Objects.isNull(sysDept)) {
|
||||
return null;
|
||||
}
|
||||
//查询该管理员所管理的项目id以及子项目id列表
|
||||
Project project = new LambdaQueryChainWrapper<>(projectMapper)
|
||||
.select(Project::getId, Project::getProjectName,Project::getLevel,Project::getDeptId
|
||||
,Project::getCityCode,Project::getCountyCode)
|
||||
.eq(Project::getDeptId, sysUser.getDeptId())
|
||||
,Project::getCityCode,Project::getCountyCode)
|
||||
.eq(Project::getId, sysDept.getProjectId())
|
||||
.one();
|
||||
if(Objects.isNull(project)){
|
||||
return null;
|
||||
}
|
||||
|
||||
//查询项目对应行政区划的地图轮廓数据
|
||||
List<SysDistrict> sysDistrictList = new LambdaQueryChainWrapper<>(sysDistrictMapper)
|
||||
.select(SysDistrict::getMapOutline, SysDistrict::getMapOutlineUrl,SysDistrict::getLng,SysDistrict::getLat)
|
||||
.eq(SysDistrict::getAdcode, JSONUtil.parseArray(project.getCountyCode()).get(0))
|
||||
LambdaQueryChainWrapper<SysDistrict> sysDistrictLambdaQueryChainWrapper = new LambdaQueryChainWrapper<>(sysDistrictMapper)
|
||||
.select(SysDistrict::getMapOutline, SysDistrict::getMapOutlineUrl, SysDistrict::getLng, SysDistrict::getLat);
|
||||
if(sysDept.getAdministrativeLevel() == 3){
|
||||
sysDistrictLambdaQueryChainWrapper.eq(SysDistrict::getAdcode, JSONUtil.parseArray(sysDept.getCountyCode()).get(0));
|
||||
}
|
||||
if(sysDept.getAdministrativeLevel() == 4){
|
||||
sysDistrictLambdaQueryChainWrapper.eq(SysDistrict::getAdcode, JSONUtil.parseArray(sysDept.getTownCode()).get(0));
|
||||
}
|
||||
if(sysDept.getAdministrativeLevel() == 5){
|
||||
sysDistrictLambdaQueryChainWrapper.eq(SysDistrict::getAdcode, JSONUtil.parseArray(sysDept.getVillageCode()).get(0));
|
||||
}
|
||||
List<SysDistrict> sysDistrictList = sysDistrictLambdaQueryChainWrapper
|
||||
.list();
|
||||
|
||||
|
||||
|
||||
List<Long> projects = getAllProjects(project.getId());
|
||||
//把列表进行Base64编码
|
||||
String projectsBase64 = Base64.encode(projects.toString());
|
||||
HashMap<String , Object> map = new HashMap<>();
|
||||
map.put("projectIds",projectsBase64);
|
||||
ArrayList<Long> projectIds = new ArrayList<>();
|
||||
projectIds.add(project.getId());
|
||||
map.put("projectIds",projectIds.toString());
|
||||
map.put("projectId",project.getId());
|
||||
map.put("projectName", project.getProjectName());
|
||||
|
||||
@ -378,7 +393,6 @@ public class ProjectServiceImpl implements IProjectService
|
||||
map.put("longitude",sysDistrictList.get(0).getLng());
|
||||
map.put("latitude",sysDistrictList.get(0).getLat());
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
@ -440,11 +454,6 @@ public class ProjectServiceImpl implements IProjectService
|
||||
throw new ServiceException("超出行政级别查询范围(1~5级)!");
|
||||
}
|
||||
//查询项目的行政区划信息
|
||||
// Project project = new LambdaQueryChainWrapper<>(projectMapper)
|
||||
// .select(Project::getProvinceCode, Project::getCityCode, Project::getCountyCode,
|
||||
// Project::getTownCode, Project::getVillageCode)
|
||||
// .eq(Project::getId, projectId)
|
||||
// .one();
|
||||
SysDept sysDept = new LambdaQueryChainWrapper<>(sysDeptMapper)
|
||||
.select(SysDept::getDeptId,SysDept::getProvinceCode, SysDept::getCityCode, SysDept::getCountyCode,
|
||||
SysDept::getTownCode, SysDept::getVillageCode)
|
||||
@ -464,15 +473,13 @@ public class ProjectServiceImpl implements IProjectService
|
||||
LambdaQueryChainWrapper<SysDistrict> sysDistrictLambdaQueryChainWrapper = new LambdaQueryChainWrapper<>(sysDistrictMapper)
|
||||
.select(SysDistrict::getId, SysDistrict::getParentId, SysDistrict::getName, SysDistrict::getAdcode,
|
||||
SysDistrict::getLevel, SysDistrict::getFullName, SysDistrict::getName
|
||||
, SysDistrict::getLng, SysDistrict::getLat);
|
||||
, SysDistrict::getLng, SysDistrict::getLat,SysDistrict::getMapOutline,SysDistrict::getMapOutlineUrl);
|
||||
|
||||
//限制行政区划级别
|
||||
projectDistrictList = sysDistrictLambdaQueryChainWrapper
|
||||
.in(!administrativeCodeList.isEmpty(),SysDistrict::getAdcode,administrativeCodeList)
|
||||
.list();
|
||||
|
||||
// System.err.println("项目所属县下面的所有镇、村行政区划列表");
|
||||
// System.err.println(projectDistrictList);
|
||||
//构建树状结构
|
||||
return buildTree(projectDistrictList);
|
||||
}
|
||||
@ -519,10 +526,6 @@ public class ProjectServiceImpl implements IProjectService
|
||||
distinctTownCodeList = townCodeList.stream().distinct().collect(Collectors.toList());
|
||||
JSONArray villageCodeList = JSONUtil.parseArray(sysDept.getVillageCode());
|
||||
|
||||
// System.err.println("镇行政区划代码");
|
||||
// System.err.println(distinctTownCodeList);
|
||||
// System.err.println("村行政区划代码");
|
||||
// System.err.println(villageCodeList);
|
||||
//合并省、市、县、镇、村行政区划代码集合
|
||||
List<Object> administrativeCodeList = new ArrayList<>();
|
||||
int[] startLevels = {1, 2, 3, 4, 5};
|
||||
@ -542,9 +545,9 @@ public class ProjectServiceImpl implements IProjectService
|
||||
}
|
||||
|
||||
private void isProvinceCodeBlank(SysDept sysDept) {
|
||||
// if(sysDept.getDeptId().toString().equals("100")){
|
||||
// return ;
|
||||
// }
|
||||
if(sysDept.getDeptId().toString().equals("100")){
|
||||
return ;
|
||||
}
|
||||
if (StringUtils.isBlank(sysDept.getProvinceCode())){
|
||||
throw new ServiceException("项目省级行政区划信息缺失!");
|
||||
}
|
||||
|
Reference in New Issue
Block a user