package com.gkhy.safePlatform.account.rpc.test; import com.gkhy.safePlatform.account.enums.DepartmentLevelEnum; import com.gkhy.safePlatform.account.enums.DepartmentStatusEnum; import com.gkhy.safePlatform.account.model.dto.req.*; import com.gkhy.safePlatform.account.model.dto.resp.DepRespDTO; import com.gkhy.safePlatform.account.model.dto.resp.DepartmentRespDTO; import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.DepAddRPCReqDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.DepModRPCReqDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.*; import com.gkhy.safePlatform.account.service.DepartmentService; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.AusinessException; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.vo.ResultVO; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; @DubboService public class AccountDepartmentServiceProvider implements AccountDepartmentService { @Autowired private DepartmentService departmentService; @Override public ResultVO addDep(ContextCacheUser currentUser, DepAddRPCReqDTO depAddRPCReqDTO) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { DepartmentAddReqDTO departmentAddReqDTO = new DepartmentAddReqDTO(); BeanUtils.copyProperties(depAddRPCReqDTO, departmentAddReqDTO); departmentService.addDepartment(currentUser, departmentAddReqDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO modDep(ContextCacheUser currentUser, DepModRPCReqDTO depModRPCReqDTO) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { DepartmentModReqDTO departmentModReqDTO = new DepartmentModReqDTO(); BeanUtils.copyProperties(depModRPCReqDTO, departmentModReqDTO); departmentService.modDepartment(currentUser, departmentModReqDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO> depList() { try { List departmentEnableList = departmentService.getDepartmentEnableList(); List data = convert2DepRPCRespDTO(departmentEnableList); return new ResultVO<>(ResultCodes.OK, data); }catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { ResultVO resultVO = new ResultVO<>(); resultVO.setCode(ResultCodes.SERVER_ERROR); return resultVO; } } @Override public ResultVO delDep(ContextCacheUser currentUser, Long depId) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { departmentService.delDepartment(currentUser, depId); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO getDepInfoByDepId(Long userId, Long depId) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { DepRespDTO depRespDTO = departmentService.getEnableDepartmentInfoByDepId(userId, depId); DepInfoRPCRespDTO depInfoRPCRespDTO = null; if (depRespDTO != null) { depInfoRPCRespDTO = new DepInfoRPCRespDTO(); BeanUtils.copyProperties(depRespDTO, depInfoRPCRespDTO); } result.setData(depInfoRPCRespDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO getDepInfoByDepId(Long depId) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { DepRespDTO depRespDTO = departmentService.getDepartmentInfoByDepId(depId); DepInfoRPCRespDTO depInfoRPCRespDTO = null; if (depRespDTO != null) { depInfoRPCRespDTO = new DepInfoRPCRespDTO(); BeanUtils.copyProperties(depRespDTO, depInfoRPCRespDTO); } result.setData(depInfoRPCRespDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO getParentDepInfoByDepId(Long depId) { ResultVO result = new ResultVO<>(ResultCodes.OK); try { DepRespDTO depRespDTO = departmentService.getParentDepInfoByDepId(depId); DepInfoRPCRespDTO depInfoRPCRespDTO = null; if (depRespDTO != null) { depInfoRPCRespDTO = new DepInfoRPCRespDTO(); BeanUtils.copyProperties(depRespDTO, depInfoRPCRespDTO); } result.setData(depInfoRPCRespDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO isSelfOrSubDep(Long depId, Long depId1) { try { boolean result = departmentService.isSelfOrSubDep(depId, depId1); return new ResultVO<>(ResultCodes.OK,result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO getDepartmentInfoByDepName(String depName) { try { DepRespDTO depRespDTO = departmentService.getDepartmentInfoByDepName(depName); DepInfoRPCRespDTO result = null; if (depRespDTO != null) { result = new DepInfoRPCRespDTO(); result.setDepId(depRespDTO.getDepId()); result.setDepName(depRespDTO.getDepName()); result.setDepInfo(depRespDTO.getDepInfo()); result.setDepLevel(depRespDTO.getDepLevel()); result.setDepCode(depRespDTO.getDepCode()); result.setDepLevelDesc(depRespDTO.getDepLevelDesc()); result.setParentDepId(depRespDTO.getParentDepId()); result.setStatus(depRespDTO.getStatus()); result.setStatusDesc(depRespDTO.getStatusDesc()); } return new ResultVO<>(ResultCodes.OK,result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO> listDepAndSubDepIds(Long depId) { try { List ids = departmentService.listDepAndSubDepIds(depId); return new ResultVO<>(ResultCodes.OK,ids); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO> listDepAndSubDepByDepId(Long depId) { try { List depRespDTOs = departmentService.listDepAndSubByDepId(depId); List result = new ArrayList<>(depRespDTOs.size()); if (depRespDTOs.size() > 0) { DepInfoRPCRespDTO respDTO; for (DepRespDTO dep : depRespDTOs) { respDTO = new DepInfoRPCRespDTO(); respDTO.setDepId(dep.getDepId()); respDTO.setDepName(dep.getDepName()); respDTO.setDepInfo(dep.getDepInfo()); respDTO.setDepCode(dep.getDepCode()); respDTO.setParentDepId(dep.getParentDepId()); respDTO.setStatus(dep.getStatus()); respDTO.setStatusDesc(dep.getStatusDesc()); respDTO.setDepLevel(dep.getDepLevel()); respDTO.setDepLevelDesc(dep.getDepLevelDesc()); result.add(respDTO); } } return new ResultVO<>(ResultCodes.OK,result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO> listDepByDepIds(List depIds) { try { List depRespDTOs= departmentService.listDepByDepIds(depIds); List result = new ArrayList<>(depRespDTOs.size()); DepInfoRPCRespDTO respDTO; for (DepRespDTO dep : depRespDTOs) { respDTO = new DepInfoRPCRespDTO(); respDTO.setDepId(dep.getDepId()); respDTO.setDepName(dep.getDepName()); respDTO.setDepInfo(dep.getDepInfo()); respDTO.setParentDepId(dep.getParentDepId()); respDTO.setDepCode(dep.getDepCode()); respDTO.setStatus(dep.getStatus()); respDTO.setStatusDesc(dep.getStatusDesc()); respDTO.setDepLevel(dep.getDepLevel()); respDTO.setDepLevelDesc(dep.getDepLevelDesc()); result.add(respDTO); } return new ResultVO<>(ResultCodes.OK, result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO> listSubDepsByDepId(Long depId) { try { List depRespDTOS = departmentService.listSubDepsByDepId(depId); List result = new ArrayList<>(depRespDTOS.size()); if (depRespDTOS.size() > 0) { DepInfoRPCRespDTO respDTO; for (DepRespDTO dep : depRespDTOS) { respDTO = new DepInfoRPCRespDTO(); respDTO.setDepId(dep.getDepId()); respDTO.setDepName(dep.getDepName()); respDTO.setDepInfo(dep.getDepInfo()); respDTO.setDepCode(dep.getDepCode()); respDTO.setParentDepId(dep.getParentDepId()); respDTO.setStatus(dep.getStatus()); respDTO.setStatusDesc(dep.getStatusDesc()); respDTO.setDepLevel(dep.getDepLevel()); respDTO.setDepLevelDesc(dep.getDepLevelDesc()); result.add(respDTO); } } return new ResultVO<>(ResultCodes.OK, result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { return new ResultVO<>(ResultCodes.SERVER_ERROR); } } private List convert2DepRPCRespDTO(List sources) { ; List targets = new ArrayList<>(); DepartmentStatusEnum statusEnum; DepartmentLevelEnum levelEnum; for (DepartmentRespDTO source : sources) { DepRPCRespDTO target = new DepRPCRespDTO(); target.setDepId(source.getDepId()); target.setDepName(source.getDepName()); target.setDepInfo(source.getDepInfo()); target.setDepLevel(source.getDepLevel()); target.setDepCode(source.getDepCode()); levelEnum = DepartmentLevelEnum.parse(source.getDepLevel()); if (levelEnum != null) { target.setDepLevelDesc(levelEnum.value); } target.setStatus(source.getStatus()); statusEnum = DepartmentStatusEnum.parse(source.getStatus()); if (statusEnum != null) { target.setStatusDesc(statusEnum.getValue()); } target.setParentDepId(source.getParentDepId()); if (source.getChildren() != null && source.getChildren().size() > 0) { List subChildren = convert2DepRPCRespDTO(source.getChildren()); target.setChildren(subChildren); } targets.add(target); } return targets; } }