7 changed files with 366 additions and 225 deletions
@ -0,0 +1,100 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.AddAgencyResultDTO; |
|||
import com.epmet.dto.result.AgencydetailResultDTO; |
|||
import com.epmet.dto.result.SubAgencyResultDTO; |
|||
import com.epmet.service.AgencyService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
|
|||
/** |
|||
* 组织机构 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("agency") |
|||
public class AgencyController { |
|||
|
|||
@Autowired |
|||
private AgencyService agencyService; |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加组织 |
|||
*/ |
|||
@PostMapping("addagency") |
|||
public Result<AddAgencyResultDTO> addAgency(@RequestBody AddAgencyFormDTO formDTO) { |
|||
return agencyService.addAgency(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织名称编辑 |
|||
*/ |
|||
@PostMapping("editagency") |
|||
public Result editAgency(@RequestBody EditAgencyFormDTO formDTO) { |
|||
return agencyService.editAgency(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除组织机关 |
|||
*/ |
|||
@PostMapping("removeagency") |
|||
public Result removeAgency(@RequestBody RemoveAgencyFormDTO formDTO) { |
|||
return agencyService.removeAgency(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取组织机构信息 |
|||
*/ |
|||
@PostMapping("agencydetail") |
|||
public Result<AgencydetailResultDTO> agencyDetail(@RequestBody AgencydetailFormDTO formDTO) { |
|||
return agencyService.agencyDetail(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-下级机关列表 |
|||
*/ |
|||
@PostMapping("subagencylist") |
|||
public Result<SubAgencyResultDTO> subAgencyList(@RequestBody SubAgencyFormDTO formDTO) { |
|||
return agencyService.subAgencyList(formDTO); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,80 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.CustomerAgencyDTO; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.AddAgencyResultDTO; |
|||
import com.epmet.dto.result.AgencydetailResultDTO; |
|||
import com.epmet.dto.result.StaffOrgsResultDTO; |
|||
import com.epmet.dto.result.SubAgencyResultDTO; |
|||
import com.epmet.entity.CustomerAgencyEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 机关单位信息 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
*/ |
|||
public interface AgencyService { |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加组织 |
|||
*/ |
|||
Result<AddAgencyResultDTO> addAgency(AddAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织名称编辑 |
|||
*/ |
|||
Result editAgency(EditAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除组织机关 |
|||
*/ |
|||
Result removeAgency(RemoveAgencyFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取组织机构信息 |
|||
*/ |
|||
Result<AgencydetailResultDTO> agencyDetail(AgencydetailFormDTO formDTO); |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-下级机关列表 |
|||
*/ |
|||
Result<SubAgencyResultDTO> subAgencyList(SubAgencyFormDTO formDTO); |
|||
} |
@ -0,0 +1,185 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.constant.FieldConstant; |
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.RenException; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.constant.CustomerAgencyConstant; |
|||
import com.epmet.dao.CustomerAgencyDao; |
|||
import com.epmet.dto.CustomerAgencyDTO; |
|||
import com.epmet.dto.form.*; |
|||
import com.epmet.dto.result.*; |
|||
import com.epmet.entity.CustomerAgencyEntity; |
|||
import com.epmet.redis.CustomerAgencyRedis; |
|||
import com.epmet.service.AgencyService; |
|||
import com.epmet.service.CustomerAgencyService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 机关单位信息 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
*/ |
|||
@Service |
|||
public class AgencyServiceImpl implements AgencyService { |
|||
|
|||
private static final Logger log = LoggerFactory.getLogger(AgencyServiceImpl.class); |
|||
@Autowired |
|||
private CustomerAgencyDao customerAgencyDao; |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 添加组织 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result<AddAgencyResultDTO> addAgency(AddAgencyFormDTO formDTO) { |
|||
Result<AddAgencyResultDTO> result = new Result<AddAgencyResultDTO>(); |
|||
AddAgencyResultDTO addAgencyResultDTO = new AddAgencyResultDTO(); |
|||
//0:属性映射赋值
|
|||
CustomerAgencyEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); |
|||
entity.setOrganizationName(formDTO.getAgencyName()); |
|||
entity.setTotalUser(NumConstant.ZERO); |
|||
//1:查询上级机关信息
|
|||
CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getPid()); |
|||
entity.setCustomerId(parentEntity.getCustomerId()); |
|||
if (null == parentEntity.getPid()) { |
|||
entity.setPids(parentEntity.getId()); |
|||
entity.setAllParentName(parentEntity.getOrganizationName()); |
|||
} else { |
|||
entity.setPids(":" + parentEntity.getId()); |
|||
entity.setAllParentName("-" + parentEntity.getOrganizationName()); |
|||
} |
|||
//2:保存组织信息
|
|||
if (customerAgencyDao.insert(entity) < NumConstant.ONE) { |
|||
log.error(CustomerAgencyConstant.SAVE_EXCEPTION); |
|||
throw new RenException(CustomerAgencyConstant.SAVE_EXCEPTION); |
|||
} |
|||
//3:返回新组织Id
|
|||
addAgencyResultDTO.setAgencyId(entity.getId()); |
|||
return result.ok(addAgencyResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织名称编辑 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result editAgency(EditAgencyFormDTO formDTO) { |
|||
Result result = new Result(); |
|||
CustomerAgencyEntity entity = new CustomerAgencyEntity(); |
|||
entity.setId(formDTO.getAgencyId()); |
|||
entity.setOrganizationName(formDTO.getAgencyName()); |
|||
if (customerAgencyDao.updateById(entity) < NumConstant.ONE) { |
|||
log.error(CustomerAgencyConstant.UPDATE_EXCEPTION); |
|||
throw new RenException(CustomerAgencyConstant.UPDATE_EXCEPTION); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 删除组织机关 |
|||
*/ |
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result removeAgency(RemoveAgencyFormDTO formDTO) { |
|||
Result result = new Result(); |
|||
//1:查询当前机关是否存在所属下级机关,存在下级的不能删除
|
|||
List<SubListResultDTO> agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId()); |
|||
if (null != agencyList && agencyList.size() > NumConstant.ZERO) { |
|||
result.setCode(EpmetErrorCode.NOT_DEL_AGENCY.getCode()); |
|||
result.setMsg(EpmetErrorCode.NOT_DEL_AGENCY.getMsg()); |
|||
return result; |
|||
} |
|||
//2:删除当前机关组织(逻辑删)
|
|||
if (customerAgencyDao.deleteById(formDTO.getAgencyId()) < NumConstant.ONE) { |
|||
log.error(CustomerAgencyConstant.DEL_EXCEPTION); |
|||
throw new RenException(CustomerAgencyConstant.DEL_EXCEPTION); |
|||
} |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-获取组织机构信息 |
|||
*/ |
|||
@Override |
|||
public Result<AgencydetailResultDTO> agencyDetail(AgencydetailFormDTO formDTO) { |
|||
AgencydetailResultDTO agencydetailResultDTO = new AgencydetailResultDTO(); |
|||
//1:查询本机关详细信息
|
|||
CustomerAgencyEntity entity = customerAgencyDao.selectById(formDTO.getAgencyId()); |
|||
if (null == entity) { |
|||
return new Result<AgencydetailResultDTO>().ok(agencydetailResultDTO); |
|||
} |
|||
agencydetailResultDTO = ConvertUtils.sourceToTarget(entity, AgencydetailResultDTO.class); |
|||
agencydetailResultDTO.setAgencyId(entity.getId()); |
|||
agencydetailResultDTO.setAgencyName(entity.getOrganizationName()); |
|||
//2:查询本机关的所有上级机关,按自上而下层级顺序
|
|||
if (null == entity.getPids()) { |
|||
return new Result<AgencydetailResultDTO>().ok(agencydetailResultDTO); |
|||
} |
|||
List<String> listStr = Arrays.asList(entity.getPids().split(":")); |
|||
List<ParentListResultDTO> parentList = customerAgencyDao.selectPAgencyById(listStr); |
|||
agencydetailResultDTO.setParentList(parentList); |
|||
return new Result<AgencydetailResultDTO>().ok(agencydetailResultDTO); |
|||
} |
|||
|
|||
/** |
|||
* @param formDTO |
|||
* @return |
|||
* @Author sun |
|||
* @Description 组织首页-下级机关列表 |
|||
*/ |
|||
@Override |
|||
public Result<SubAgencyResultDTO> subAgencyList(SubAgencyFormDTO formDTO) { |
|||
SubAgencyResultDTO subAgencyResultDTO = new SubAgencyResultDTO(); |
|||
//1:根据当前机关Id查询直属下一级机关列表
|
|||
List<SubListResultDTO> agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId()); |
|||
subAgencyResultDTO.setAgencyList(agencyList); |
|||
//2:统计下一级机关数
|
|||
subAgencyResultDTO.setSubAgencyCount(agencyList.size()); |
|||
return new Result<SubAgencyResultDTO>().ok(subAgencyResultDTO); |
|||
} |
|||
} |
Loading…
Reference in new issue