| | |
| | | import cn.huge.base.common.exception.ServiceException; |
| | | import cn.huge.base.common.utils.DateUtils; |
| | | import cn.huge.base.common.utils.IdUtils; |
| | | import cn.huge.base.common.utils.ReturnFailUtils; |
| | | import cn.huge.module.client.api.impl.UtilsClientImpl; |
| | | import cn.huge.module.constant.BaseConsts; |
| | | import cn.huge.module.ctuser.dao.mapper.CtDeptMapper; |
| | | import cn.huge.module.ctuser.domain.po.CtDept; |
| | | import cn.huge.module.ctuser.domain.po.CtUser; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.domain.Page; |
| | | import org.springframework.data.domain.PageImpl; |
| | | import org.springframework.data.domain.PageRequest; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | |
| | | @Autowired |
| | | private UtilsClientImpl utilsClient; |
| | | |
| | | @Autowired |
| | | private CtUserService ctUserService; |
| | | |
| | | /** |
| | | * 更新对象 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 新增或更新对象 |
| | | * @param ctDept 实体对象 |
| | | */ |
| | | public void saveCtDept(CtDept ctDept){ |
| | | try{ |
| | | Date nowDate = DateUtils.getNowDate(); |
| | | // 判断是否新增 |
| | | if (IdUtils.checkNewId(ctDept.getId())){ |
| | | ctDept.setId(utilsClient.getNewTimeId()); |
| | | ctDept.setCreateTime(nowDate); |
| | | } |
| | | ctDept.setUpdateTime(nowDate); |
| | | this.saveOrUpdate(ctDept); |
| | | }catch (Exception e){ |
| | | log.error("[CtDeptService.saveCtDept]调用失败,异常信息:"+e, e); |
| | | throw new ServiceException("CtDeptService.saveCtDept", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 创建某一级部门下树形结构 |
| | | * @param ctDeptList 所有部门集合 |
| | | * @param firstId 某一级组织编号 |
| | |
| | | } |
| | | childList.add(currentUnit); |
| | | } |
| | | |
| | | /** |
| | | * 新增或更新对象部门 |
| | | * @param ctDept 实体对象 |
| | | */ |
| | | public void saveCtDept(CtDept ctDept, String userId){ |
| | | try{ |
| | | // 获取当前登录用户 |
| | | CtUser loginCtUser = ctUserService.getById(userId); |
| | | |
| | | // 保存新增更新组织 |
| | | ctDept.setCustId(loginCtUser.getCustId()); |
| | | |
| | | Date nowDate = DateUtils.getNowDate(); |
| | | // 判断是否新增 |
| | | if (IdUtils.checkNewId(ctDept.getId())){ |
| | | ctDept.setId(utilsClient.getNewTimeId()); |
| | | ctDept.setCreateTime(nowDate); |
| | | // 新增上级部门 |
| | | if (StringUtils.isNotEmpty(ctDept.getDeptId())){ |
| | | // 更新子级部门的父级编号为当前新增部门的编号 |
| | | CtDept childCtDept = mapper.selectById(ctDept.getDeptId()); |
| | | childCtDept.setParentId(ctDept.getId()); |
| | | mapper.updateById(childCtDept); |
| | | }else{ |
| | | // 新增下级部门,如果没有指定上级编号,则默认为根级 |
| | | if (StringUtils.isBlank(ctDept.getParentId())) { |
| | | ctDept.setParentId(BaseConsts.ROOT); |
| | | } |
| | | } |
| | | } |
| | | ctDept.setUpdateTime(nowDate); |
| | | ctDept.setDeleteStatus(BaseConsts.DELETE_STATUS_0); |
| | | // 部门下成员 |
| | | QueryWrapper<CtUser> ctUserQueryWrapper = new QueryWrapper<>(); |
| | | ctUserQueryWrapper.eq("dept_id", ctDept.getId()); |
| | | List<CtUser> matchUsers = ctUserService.list(ctUserQueryWrapper); |
| | | for (CtUser ctUser : matchUsers){ |
| | | ctUser.setDeptId(null); |
| | | ctUser.setDeptName(null); |
| | | ctUserService.saveOrUpdate(ctUser); |
| | | } |
| | | List<CtUser> ctUsers = ctDept.getMatchUsers(); |
| | | for (CtUser ctUser : ctUsers){ |
| | | CtUser ctUser1 = ctUserService.getById(ctUser.getId()); |
| | | ctUser1.setDeptId(ctDept.getId()); |
| | | ctUser1.setDeptName(ctDept.getName()); |
| | | ctUserService.saveOrUpdate(ctUser1); |
| | | } |
| | | this.saveOrUpdate(ctDept); |
| | | }catch (Exception e){ |
| | | log.error("service方法[CtDeptService.saveCtDept]调用异常:"+e, e); |
| | | throw new ServiceException("CtDeptService.saveCtDept", e); |
| | | } |
| | | } |
| | | |
| | | } |