提交 0a70c555 authored 作者: 宋文杰's avatar 宋文杰

feat(dept): add get secondary dept name by dept id

上级 4977d88c
......@@ -54,7 +54,7 @@ public class EmergencyEventController extends BaseController {
@SysLog("新增应急事件表")
@PostMapping
public R save(@RequestBody EmergencyEvent emergencyEvent){
return new R<>(emergencyEventService.save(emergencyEvent));
return new R<>(emergencyEventService.saveEvent(emergencyEvent));
}
/**
......
......@@ -11,4 +11,12 @@ import com.elephant.framework.galaxy.aroad.module.emergencyevent.entity.Emergenc
*/
public interface EmergencyEventService extends IService<EmergencyEvent> {
/**
* @Description: 新增(上报)应急事件
* @Param: [event]
* @return: boolean
* @Author: songwenjie
* @Date: 2019/5/8
*/
boolean saveEvent(EmergencyEvent event);
}
......@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.elephant.framework.galaxy.aroad.module.emergencyevent.entity.EmergencyEvent;
import com.elephant.framework.galaxy.aroad.module.emergencyevent.mapper.EmergencyEventMapper;
import com.elephant.framework.galaxy.aroad.module.emergencyevent.service.EmergencyEventService;
import com.elephant.framework.galaxy.aroad.module.system.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
......@@ -15,4 +17,20 @@ import org.springframework.stereotype.Service;
@Service
public class EmergencyEventServiceImpl extends ServiceImpl<EmergencyEventMapper, EmergencyEvent> implements EmergencyEventService {
@Autowired
private DeptService deptService;
/**
* @Description: 新增(上报)应急事件
* @Param: [event]
* @return: boolean
* @Author: songwenjie
* @Date: 2019/5/8
*/
public boolean saveEvent(EmergencyEvent event){
int reportingDeptId = event.getReportingDeptId();
String deptName = deptService.getDeptName(reportingDeptId);
event.setReportingDept(deptName);
return save(event);
}
}
......@@ -2,6 +2,7 @@ package com.elephant.framework.galaxy.aroad.module.system.mapper;
import com.elephant.framework.galaxy.aroad.module.system.entity.Dept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -20,4 +21,31 @@ public interface DeptMapper extends BaseMapper<Dept> {
* @return 数据列表
*/
List<Dept> listDepts();
/**
* @Description: 根据部门id获取部门信息
* @Param: [deptId]
* @return: java.util.List<com.elephant.framework.galaxy.aroad.module.system.entity.Dept>
* @Author: songwenjie
* @Date: 2019/5/8
*/
List<Dept> getDeptById(Integer deptId);
/**
* @Description: 根据上级部门id获取下级部门信息
* @Param: [parentId]
* @return: java.util.List<com.elephant.framework.galaxy.aroad.module.system.entity.Dept>
* @Author: songwenjie
* @Date: 2019/5/8
*/
List<Dept> getDeptByParentId(Integer parentId);
/**
* @Description: 根据上级部门ids获取下级部门信息
* @Param: [parentIds]
* @return: java.util.List<com.elephant.framework.galaxy.aroad.module.system.entity.Dept>
* @Author: songwenjie
* @Date: 2019/5/8
*/
List<Dept> getDeptByParentIds(@Param("parentIds") List<Integer> parentIds);
}
......@@ -54,4 +54,13 @@ public interface DeptService extends IService<Dept> {
*/
Boolean updateDeptById(Dept sysDept);
/**
* @Description: 根据部门id获取二级单位名称
* @Param: [deptId]
* @return: java.lang.String
* @Author: songwenjie
* @Date: 2019/5/8
*/
String getDeptName(int deptId);
}
......@@ -16,7 +16,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -33,6 +35,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
private final DeptRelationService deptRelationService;
//部门映射 key:三级节点部门id value:二级单位
private final Map<Integer,Dept> deptMap;
/**
* 添加信息部门
*
......@@ -142,4 +147,65 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
return TreeUtil.bulid(treeList, 0);
}
/**
* @Description: 获取部门映射 key:三级节点部门id value:二级单位
* @Param: []
* @return: java.util.Map<java.lang.Integer,com.elephant.framework.galaxy.aroad.module.system.entity.Dept>
* @Author: songwenjie
* @Date: 2019/5/8
*/
private Map<Integer,Dept> getDeptMap(){
//二级节点单位
List<Dept> secondaryDepts = baseMapper.getDeptByParentId(1);
List<Integer> secondaryDeptIds = secondaryDepts.stream()
.map(x -> x.getDeptId())
.collect(Collectors.toList());
//三级节点部门
List<Dept> tertiaryDepts = baseMapper.getDeptByParentIds(secondaryDeptIds);
List<Integer> tertiaryDeptIds = tertiaryDepts.stream()
.map(x -> x.getDeptId())
.collect(Collectors.toList());
//key:三级节点部门id value:二级单位
Map<Integer,Dept> deptMap = new HashMap<>();
tertiaryDepts.forEach(t->{
secondaryDepts.forEach(s->{
if(t.getParentId() == s.getDeptId() ){
deptMap.put(t.getDeptId(),s);
}
});
});
return deptMap;
}
/**
* @Description: 根据部门id获取二级单位名称
* @Param: [deptId]
* @return: java.lang.String
* @Author: songwenjie
* @Date: 2019/5/8
*/
public String getDeptName(int deptId){
Dept dept = baseMapper.getDeptById(deptId)
.stream()
.findFirst()
.get();
if(dept == null || dept.getParentId() == 0){
return "";
}
if(dept.getParentId() == 1){
return dept.getName();
}
//部门映射 key:三级节点部门id value:二级单位
Map<Integer,Dept> deptMap = getDeptMap();
if(deptMap.containsKey(
dept.getDeptId())){
return deptMap.get(
dept.getDeptId())
.getName();
}
return getDeptName(dept.getParentId());
}
}
......@@ -24,4 +24,24 @@
WHERE dr.ancestor = 0
</select>
<select id="getDeptById" resultMap="BaseResultMap">
select dept_id,name,parent_id from sys_dept
where del_flag = 0 and dept_id = #{deptId}
</select>
<select id="getDeptByParentId" resultMap="BaseResultMap">
select dept_id,name,parent_id from sys_dept
where del_flag = 0 and parent_id = #{parentId}
</select>
<select id="getDeptByParentIds" resultMap="BaseResultMap">
select dept_id,name,parent_id from sys_dept
where del_flag = 0
and
parent_id in
<foreach collection="parentIds" item="parentId" index="index" open="(" close=")" separator=",">
#{parentId}
</foreach>
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论