组织开发
This commit is contained in:
@@ -3,12 +3,15 @@ package com.dc.dc_project.controller.sys;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.common.aop.DcCheckPermission;
|
||||
import com.dc.dc_project.model.dto.OrgDto;
|
||||
import com.dc.dc_project.model.dto.OrgQueryDto;
|
||||
import com.dc.dc_project.model.dto.OrgUpdateDto;
|
||||
import com.dc.dc_project.model.pojo.Org;
|
||||
import com.dc.dc_project.service.OrgService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -21,14 +24,34 @@ public class OrgController {
|
||||
|
||||
private final OrgService orgService;
|
||||
|
||||
@RequestMapping("/tree")
|
||||
@PostMapping("/list")
|
||||
public ResponseResult list(OrgQueryDto queryDto) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return orgService.getList(queryDto, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/tree")
|
||||
public ResponseResult tree(OrgQueryDto queryDto) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return orgService.getTree(queryDto, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
public ResponseResult add(@RequestBody OrgDto orgDto) {
|
||||
return orgService.newOrg(orgDto);
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
@DcCheckPermission("system:org:update")
|
||||
public ResponseResult update(@RequestBody @Validated OrgUpdateDto org) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return orgService.updateOrg(org, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
@DcCheckPermission("system:org:delete")
|
||||
public ResponseResult delete(@RequestBody Org org) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return orgService.deleteOrg(org, userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.dc.dc_project.model.dto.OrgQueryDto;
|
||||
import com.dc.dc_project.model.pojo.Org;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.dc.dc_project.model.vo.OrgVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -19,7 +20,7 @@ public interface OrgMapper extends BaseMapper<Org> {
|
||||
|
||||
List<Long> getCListByOrgId(Long pOrgId);
|
||||
|
||||
List<OrgVo> getList(OrgQueryDto queryDto);
|
||||
List<OrgVo> getList(@Param("queryDto") OrgQueryDto queryDto);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.dc.dc_project.mapper;
|
||||
import com.dc.dc_project.model.pojo.StandardCategory;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author ADMIN
|
||||
* @description 针对表【sys_standard_category(标准分类表(行业/专业领域))】的数据库操作Mapper
|
||||
@@ -11,6 +13,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
*/
|
||||
public interface StandardCategoryMapper extends BaseMapper<StandardCategory> {
|
||||
|
||||
/**
|
||||
* 根据组织id获取标准分类列表
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
List<StandardCategory> selectListByOrgId(Long id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
58
src/main/java/com/dc/dc_project/model/dto/OrgUpdateDto.java
Normal file
58
src/main/java/com/dc/dc_project/model/dto/OrgUpdateDto.java
Normal file
@@ -0,0 +1,58 @@
|
||||
package com.dc.dc_project.model.dto;
|
||||
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrgUpdateDto {
|
||||
|
||||
@NotNull
|
||||
private Long id;
|
||||
/**
|
||||
* 上级组织ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 组织名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 组织类型(1=公司,2=项目部,3=试验室)
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 组织编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
private Integer sortOrder;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 负责人id
|
||||
*/
|
||||
private Long leaderId;
|
||||
|
||||
/**
|
||||
* 试验室类型(1工地;2中心;3未知)
|
||||
*/
|
||||
private Integer lTtype;
|
||||
|
||||
private String coordinateA;
|
||||
private String coordinateB;
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.dc.dc_project.model.vo;
|
||||
|
||||
import com.dc.dc_project.model.TreeNode;
|
||||
import com.dc.dc_project.model.pojo.StandardCategory;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
@@ -26,6 +27,10 @@ public class OrgVo implements TreeNode<OrgVo> {
|
||||
|
||||
private Long parentId;
|
||||
|
||||
private String parentName;
|
||||
|
||||
private List<StandardCategory> standardCategorys;
|
||||
|
||||
private List<OrgVo> children;
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.dc.dc_project.service;
|
||||
import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.model.dto.OrgDto;
|
||||
import com.dc.dc_project.model.dto.OrgQueryDto;
|
||||
import com.dc.dc_project.model.dto.OrgUpdateDto;
|
||||
import com.dc.dc_project.model.pojo.Org;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@@ -36,4 +37,25 @@ public interface OrgService extends IService<Org> {
|
||||
* @return
|
||||
*/
|
||||
ResponseResult getList(OrgQueryDto queryDto, Long userId);
|
||||
|
||||
/**
|
||||
* 修改组织
|
||||
* @param org
|
||||
* @return
|
||||
*/
|
||||
ResponseResult updateOrg(OrgUpdateDto org, Long userId);
|
||||
|
||||
/**
|
||||
* 删除组织
|
||||
* @param org
|
||||
* @return
|
||||
*/
|
||||
ResponseResult deleteOrg(Org org, Long userId);
|
||||
|
||||
/**
|
||||
* 获取组织树
|
||||
* @param queryDto
|
||||
* @return
|
||||
*/
|
||||
ResponseResult getTree(OrgQueryDto queryDto, Long userId);
|
||||
}
|
||||
|
||||
@@ -4,14 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.common.ResultCode;
|
||||
import com.dc.dc_project.enums.DataScopeType;
|
||||
import com.dc.dc_project.enums.OrgType;
|
||||
import com.dc.dc_project.mapper.LaboratoryMapper;
|
||||
import com.dc.dc_project.mapper.StandardCategoryMapper;
|
||||
import com.dc.dc_project.model.dto.OrgDto;
|
||||
import com.dc.dc_project.model.dto.OrgQueryDto;
|
||||
import com.dc.dc_project.model.dto.OrgUpdateDto;
|
||||
import com.dc.dc_project.model.pojo.Laboratory;
|
||||
import com.dc.dc_project.model.pojo.Org;
|
||||
import com.dc.dc_project.model.pojo.StandardCategory;
|
||||
import com.dc.dc_project.model.vo.OrgVo;
|
||||
import com.dc.dc_project.service.OrgService;
|
||||
import com.dc.dc_project.mapper.OrgMapper;
|
||||
import com.dc.dc_project.utils.PermissionUtils;
|
||||
import com.dc.dc_project.utils.TreeUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -25,9 +34,13 @@ import java.util.Objects;
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||
public class OrgServiceImpl extends ServiceImpl<OrgMapper, Org>
|
||||
implements OrgService{
|
||||
|
||||
private final LaboratoryMapper laboratoryMapper;
|
||||
private final StandardCategoryMapper standardCategoryMapper;
|
||||
|
||||
@Override
|
||||
public ResponseResult newOrg(OrgDto orgDto) {
|
||||
// 检验参数
|
||||
@@ -74,9 +87,72 @@ public class OrgServiceImpl extends ServiceImpl<OrgMapper, Org>
|
||||
@Override
|
||||
public ResponseResult getList(OrgQueryDto queryDto, Long userId) {
|
||||
List<OrgVo> list = baseMapper.getList(queryDto);
|
||||
|
||||
for (OrgVo orgVo : list){
|
||||
List<StandardCategory> standardCategorys = standardCategoryMapper.selectListByOrgId(orgVo.getId());
|
||||
orgVo.setStandardCategorys(standardCategorys);
|
||||
}
|
||||
return ResponseResult.success(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult updateOrg(OrgUpdateDto org, Long userId) {
|
||||
// 权限范围检查
|
||||
DataScopeType dataScopeType = DataScopeType.getByLevel(PermissionUtils.getOrDefault(DataScopeType.SELF.getLevel()));
|
||||
|
||||
Org oldOrg = this.getById(org.getId());
|
||||
|
||||
if(oldOrg == null){
|
||||
return ResponseResult.error("组织不存在");
|
||||
}
|
||||
|
||||
oldOrg.setParentId(org.getParentId() == null ? oldOrg.getParentId() : org.getParentId());
|
||||
oldOrg.setName(org.getName() == null ? oldOrg.getName() : org.getName());
|
||||
oldOrg.setCode(org.getCode() == null ? oldOrg.getCode() : org.getCode());
|
||||
//oldOrg.setType(org.getType() == null ? oldOrg.getType() : org.getType());
|
||||
oldOrg.setSortOrder(org.getSortOrder() == null ? oldOrg.getSortOrder() : org.getSortOrder());
|
||||
oldOrg.setRemark(org.getRemark() == null ? oldOrg.getRemark() : org.getRemark());
|
||||
oldOrg.setLeaderId(org.getLeaderId() == null ? oldOrg.getLeaderId() : org.getLeaderId());
|
||||
|
||||
if (org.getType() != null && !Objects.equals(org.getType(), oldOrg.getType())){
|
||||
if ( !Objects.equals(oldOrg.getType(), OrgType.LABORATORY.getCode()) && (org.getType().equals(OrgType.LABORATORY.getCode()))){
|
||||
Laboratory laboratory = new Laboratory();
|
||||
laboratory.setName(org.getName());
|
||||
laboratory.setCoordinateA(org.getCoordinateA());
|
||||
laboratory.setCoordinateB(org.getCoordinateB());
|
||||
laboratory.setType(org.getLTtype());
|
||||
laboratory.setOrgId(org.getId());
|
||||
laboratoryMapper.insert(laboratory);
|
||||
}
|
||||
if (Objects.equals(oldOrg.getType(), OrgType.LABORATORY.getCode()) && !(org.getType().equals(OrgType.LABORATORY.getCode()))){
|
||||
Laboratory laboratory = laboratoryMapper.selectOne(new LambdaQueryWrapper<Laboratory>().eq(Laboratory::getOrgId, org.getId()));
|
||||
if (laboratory != null){
|
||||
laboratoryMapper.deleteById(laboratory);
|
||||
}
|
||||
}
|
||||
oldOrg.setType(org.getType());
|
||||
}
|
||||
return this.updateById(oldOrg)? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult deleteOrg(Org org, Long userId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult getTree(OrgQueryDto queryDto, Long userId) {
|
||||
if( queryDto.getId() == null){
|
||||
return ResponseResult.error("参数缺失");
|
||||
}
|
||||
OrgQueryDto queryDto1 = new OrgQueryDto();
|
||||
queryDto1.setId(queryDto.getId());
|
||||
List<OrgVo> list = baseMapper.getList(queryDto1);
|
||||
for (OrgVo orgVo : list){
|
||||
List<StandardCategory> standardCategorys = standardCategoryMapper.selectListByOrgId(orgVo.getId());
|
||||
orgVo.setStandardCategorys(standardCategorys);
|
||||
}
|
||||
return ResponseResult.success(TreeUtil.buildTree(list, queryDto.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.enums.DataScopeType;
|
||||
import com.dc.dc_project.enums.IsDeleted;
|
||||
import com.dc.dc_project.mapper.OrgMapper;
|
||||
import com.dc.dc_project.mapper.UserMapper;
|
||||
import com.dc.dc_project.model.dto.DeleteDto;
|
||||
import com.dc.dc_project.model.dto.PersonnelDto;
|
||||
import com.dc.dc_project.model.dto.PersonnelNewDto;
|
||||
@@ -40,7 +41,7 @@ public class PersonnelServiceImpl extends ServiceImpl<PersonnelMapper, Personnel
|
||||
private final OrgMapper orgMapper;
|
||||
private final OrgService orgService;
|
||||
private final PersonnelOrgService personnelOrgService;
|
||||
private final UserService userService;
|
||||
private final UserMapper userMapper;
|
||||
private final PersonnelPositionService personnelPositionService;
|
||||
|
||||
|
||||
@@ -102,7 +103,7 @@ public class PersonnelServiceImpl extends ServiceImpl<PersonnelMapper, Personnel
|
||||
user.setPhone(personnel.getContactPhone());
|
||||
user.setStatus(1);
|
||||
user.setRemark(personnel.getRemark());
|
||||
userService.save(user);
|
||||
userMapper.insert( user);
|
||||
personnel.setUserId(user.getId());
|
||||
}
|
||||
if (this.save(personnel)){
|
||||
@@ -120,10 +121,10 @@ public class PersonnelServiceImpl extends ServiceImpl<PersonnelMapper, Personnel
|
||||
List<Personnel> personnels = this.list(queryWrapper);
|
||||
for (Personnel personnel : personnels) {
|
||||
if (personnel.getUserId() != null) {
|
||||
User user = userService.getById(personnel.getUserId());
|
||||
User user = userMapper.selectById(personnel.getUserId());
|
||||
if (user != null) {
|
||||
user.setIsDeleted(1);
|
||||
userService.updateById(user);
|
||||
userMapper.updateById(user);
|
||||
}
|
||||
}
|
||||
personnelOrgService.remove(new LambdaQueryWrapper<PersonnelOrg>().eq(PersonnelOrg::getPersonnelId, personnel.getId()));
|
||||
|
||||
@@ -21,5 +21,40 @@
|
||||
</select>
|
||||
<select id="getList" resultType="com.dc.dc_project.model.vo.OrgVo">
|
||||
select
|
||||
o.name as name,
|
||||
o.code as code,
|
||||
o.type as type,
|
||||
o.sort_order as sortOrder,
|
||||
o.remark as remark,
|
||||
o.leader_id as leaderId,
|
||||
p.name as leaderName,
|
||||
o.parent_id as parentId,
|
||||
o1.name as parentName,
|
||||
o.id as id
|
||||
from sys_org o
|
||||
left join sys_personnel p on o.leader_id = p.id
|
||||
left join sys_org o1 on o.parent_id = o1.id
|
||||
left join sys_org_laboratory_standard ol on o.id = ol.org_id
|
||||
<where>
|
||||
and o.is_deleted = 0
|
||||
<if test="queryDto.id != null">
|
||||
and o.id = #{queryDto.id}
|
||||
</if>
|
||||
<if test="queryDto.name != null">
|
||||
and o.name like concat('%',#{queryDto.name},'%')
|
||||
</if>
|
||||
<if test="queryDto.type != null">
|
||||
and o.type = #{queryDto.type}
|
||||
</if>
|
||||
<if test="queryDto.code != null">
|
||||
and o.code like concat('%',#{queryDto.code},'%')
|
||||
</if>
|
||||
<if test="queryDto.remark != null">
|
||||
and o.remark like concat('%',#{queryDto.remark},'%')
|
||||
</if>
|
||||
<if test="queryDto.standardCategoryId != null">
|
||||
and ol.standard_category_id = #{queryDto.standardCategoryId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -4,20 +4,13 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.dc.dc_project.mapper.StandardCategoryMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.dc.dc_project.model.pojo.StandardCategory">
|
||||
<id property="id" column="id" />
|
||||
<result property="parent_id" column="parent_id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="code" column="code" />
|
||||
<result property="sort_order" column="sort_order" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="created_at" column="created_at" />
|
||||
<result property="updated_at" column="updated_at" />
|
||||
<result property="is_deleted" column="is_deleted" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,parent_id,name,code,sort_order,remark,
|
||||
created_at,updated_at,is_deleted
|
||||
</sql>
|
||||
<select id="selectListByOrgId" resultType="com.dc.dc_project.model.pojo.StandardCategory">
|
||||
select ssc.*
|
||||
from sys_standard_category ssc
|
||||
where id in (select standard_category_id from sys_org_laboratory_standard where org_id=#{orgId})
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user