Browse Source
			
			
			
			
				
		# Conflicts: # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.javadev
				 33 changed files with 996 additions and 105 deletions
			
			
		| @ -0,0 +1,39 @@ | |||
| package com.epmet.dto.form; | |||
| 
 | |||
| import lombok.Data; | |||
| 
 | |||
| import javax.validation.constraints.NotBlank; | |||
| import java.util.List; | |||
| 
 | |||
| @Data | |||
| public class StaffPermCacheFormDTO { | |||
| 
 | |||
|     /** | |||
|      * 更新权限缓存分组 | |||
|      */ | |||
|     public interface UpdatePermissionCache {} | |||
| 
 | |||
|     /** | |||
|      * 工作人员 id | |||
|      */ | |||
|     @NotBlank(message = "工作人员ID不能为空", groups = {UpdatePermissionCache.class}) | |||
|     private String staffId; | |||
| 
 | |||
|     /** | |||
|      * 登录头信息app | |||
|      */ | |||
|     @NotBlank(message = "登录头信息app不能为空", groups = {UpdatePermissionCache.class}) | |||
|     private String app; | |||
| 
 | |||
|     /** | |||
|      * 登录头信息client | |||
|      */ | |||
|     @NotBlank(message = "登录头信息client不能为空", groups = {UpdatePermissionCache.class}) | |||
|     private String client; | |||
| 
 | |||
|     /** | |||
|      * 权限列表 | |||
|      */ | |||
|     private List<String> permissions; | |||
| 
 | |||
| } | |||
| @ -0,0 +1,43 @@ | |||
| package com.epmet.controller; | |||
| 
 | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.epmet.commons.tools.validator.ValidatorUtils; | |||
| import com.epmet.dto.form.StaffPermCacheFormDTO; | |||
| import com.epmet.service.AccessService; | |||
| 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; | |||
| 
 | |||
| import java.util.List; | |||
| 
 | |||
| /** | |||
|  * 权限相关Api | |||
|  * @Author wxz | |||
|  * @Description | |||
|  * @Date 2020/4/23 17:54 | |||
|  **/ | |||
| @RestController | |||
| @RequestMapping("access") | |||
| public class AccessController { | |||
| 
 | |||
|     @Autowired | |||
|     private AccessService accessService; | |||
| 
 | |||
|     /** | |||
|      * 更新工作人员权限缓存 | |||
|      * @param staffPermCacheFormDTO | |||
|      * @return | |||
|      */ | |||
|     @PostMapping("updatepermissioncache") | |||
|     public Result updatePermissionCache(@RequestBody StaffPermCacheFormDTO staffPermCacheFormDTO) { | |||
|         ValidatorUtils.validateEntity(staffPermCacheFormDTO, StaffPermCacheFormDTO.UpdatePermissionCache.class); | |||
|         String staffId = staffPermCacheFormDTO.getStaffId(); | |||
|         String app = staffPermCacheFormDTO.getApp(); | |||
|         String client = staffPermCacheFormDTO.getClient(); | |||
|         List<String> permissions = staffPermCacheFormDTO.getPermissions(); | |||
|         accessService.updatePermissionCache(staffId, app, client, permissions); | |||
|         return new Result(); | |||
|     } | |||
| } | |||
| @ -0,0 +1,12 @@ | |||
| package com.epmet.service; | |||
| 
 | |||
| import java.util.List; | |||
| 
 | |||
| public interface AccessService { | |||
|     /** | |||
|      * 更新权限缓存 | |||
|      * @param staffId | |||
|      * @param permissions | |||
|      */ | |||
|     void updatePermissionCache(String staffId, String app, String client, List<String> permissions); | |||
| } | |||
| @ -0,0 +1,40 @@ | |||
| package com.epmet.service.impl; | |||
| 
 | |||
| import com.epmet.commons.tools.security.dto.GovTokenDto; | |||
| import com.epmet.commons.tools.utils.CpUserDetailRedis; | |||
| import com.epmet.service.AccessService; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| 
 | |||
| import java.util.List; | |||
| 
 | |||
| @Service | |||
| public class AccessServiceImpl implements AccessService { | |||
| 
 | |||
|     private static Logger logger = LoggerFactory.getLogger(AccessServiceImpl.class); | |||
| 
 | |||
|     @Autowired | |||
|     private CpUserDetailRedis cpUserDetailRedis; | |||
| 
 | |||
|     /** | |||
|      * 更新权限缓存 | |||
|      * @param staffId | |||
|      * @param permissions | |||
|      */ | |||
|     @Override | |||
|     public void updatePermissionCache(String staffId, String app, String client, List<String> permissions) { | |||
|         GovTokenDto govTokenDto = cpUserDetailRedis.get(app, client, staffId, GovTokenDto.class); | |||
|         if (govTokenDto == null) { | |||
|             logger.warn("更新[{}]用户缓存:Redis中不存在该用户TokenDto缓存信息", staffId); | |||
|             return ; | |||
|         } | |||
|         govTokenDto.setPermissions(permissions); | |||
| 
 | |||
|         // 将新的TokenDto更新到redis中
 | |||
|         long expire = cpUserDetailRedis.getExpire(app, client, staffId); | |||
|         cpUserDetailRedis.set(govTokenDto, expire); | |||
|         logger.warn("更新[{}]用户缓存成功。", staffId); | |||
|     } | |||
| } | |||
| @ -0,0 +1,43 @@ | |||
| /** | |||
|  * 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.dto.form; | |||
| 
 | |||
| import lombok.Data; | |||
| 
 | |||
| import javax.validation.constraints.NotBlank; | |||
| import java.io.Serializable; | |||
| 
 | |||
| 
 | |||
| /** | |||
|  * 获取组织列表-接口入参 | |||
|  * | |||
|  * @author sun | |||
|  */ | |||
| @Data | |||
| public class AgencyListFormDTO implements Serializable { | |||
| 
 | |||
|     private static final long serialVersionUID = 1L; | |||
| 
 | |||
|     /** | |||
|      * 机关组织Id | |||
|      */ | |||
|     @NotBlank(message = "组织机构ID不能为空") | |||
|     private String agencyId; | |||
| 
 | |||
| 
 | |||
| } | |||
| @ -0,0 +1,28 @@ | |||
| package com.epmet.dto.form; | |||
| 
 | |||
| import lombok.Data; | |||
| 
 | |||
| import java.io.Serializable; | |||
| import java.util.List; | |||
| 
 | |||
| /** | |||
|  * @author zhaoqifeng | |||
|  * @dscription | |||
|  * @date 2020/4/23 15:45 | |||
|  */ | |||
| @Data | |||
| public class StaffsInAgencyFromDTO implements Serializable { | |||
| 	private static final long serialVersionUID = 1L; | |||
| 	/** | |||
| 	 * 客户ID | |||
| 	 */ | |||
| 	private String customerId; | |||
| 	/** | |||
| 	 * 机关ID | |||
| 	 */ | |||
| 	private String agencyId; | |||
| 	/** | |||
| 	 * 用户ID | |||
| 	 */ | |||
| 	private List<String> staffList; | |||
| } | |||
| @ -0,0 +1,51 @@ | |||
| /** | |||
|  * 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.dto.result; | |||
| 
 | |||
| import lombok.Data; | |||
| 
 | |||
| import java.io.Serializable; | |||
| 
 | |||
| 
 | |||
| /** | |||
|  * 获取组织列表-接口返参 | |||
|  * | |||
|  * @author sun | |||
|  */ | |||
| @Data | |||
| public class AgencyListResultDTO implements Serializable { | |||
| 
 | |||
|     private static final long serialVersionUID = 1L; | |||
| 
 | |||
|     /** | |||
|      * 机关组织Id | |||
|      */ | |||
|     private String agencyId; | |||
| 
 | |||
|     /** | |||
|      * 机关组织名称 | |||
|      */ | |||
|     private String agencyName; | |||
| 
 | |||
|     /** | |||
|      * 总人数 | |||
|      */ | |||
|     private Integer totalUser; | |||
| 
 | |||
| 
 | |||
| } | |||
| @ -0,0 +1,38 @@ | |||
| package com.epmet.dto.result; | |||
| 
 | |||
| import lombok.Data; | |||
| 
 | |||
| import java.io.Serializable; | |||
| 
 | |||
| /** | |||
|  * @author zhaoqifeng | |||
|  * @dscription | |||
|  * @date 2020/4/23 16:08 | |||
|  */ | |||
| @Data | |||
| public class StaffInfoResultDTO implements Serializable { | |||
| 	/** | |||
| 	 * 用户ID | |||
| 	 */ | |||
| 	private String staffId; | |||
| 	/** | |||
| 	 * 用户姓名 | |||
| 	 */ | |||
| 	private String staffName; | |||
| 	/** | |||
| 	 * 头像 | |||
| 	 */ | |||
| 	private String staffHeadPhoto; | |||
| 	/** | |||
| 	 * 性别 | |||
| 	 */ | |||
| 	private Integer gender; | |||
| 	/** | |||
| 	 * 是否禁用(未禁用enable,已禁用disabled) | |||
| 	 */ | |||
| 	private String enableFlag; | |||
| 	/** | |||
| 	 * 权限名 | |||
| 	 */ | |||
| 	private String roleName; | |||
| } | |||
| @ -0,0 +1,27 @@ | |||
| package com.epmet.dto.result; | |||
| 
 | |||
| import lombok.Data; | |||
| import lombok.NoArgsConstructor; | |||
| 
 | |||
| import java.io.Serializable; | |||
| import java.util.List; | |||
| 
 | |||
| /** | |||
|  * @author zhaoqifeng | |||
|  * @dscription | |||
|  * @date 2020/4/23 15:58 | |||
|  */ | |||
| @NoArgsConstructor | |||
| @Data | |||
| public class StaffsInAgencyResultDTO implements Serializable { | |||
| 	private static final long serialVersionUID = 1L; | |||
| 	/** | |||
| 	 * 人员总数 | |||
| 	 */ | |||
| 	private Integer staffCount; | |||
| 	/** | |||
| 	 * 人员列表 | |||
| 	 */ | |||
| 	private List<StaffInfoResultDTO> staffList; | |||
| 
 | |||
| } | |||
| @ -0,0 +1,113 @@ | |||
| /** | |||
|  * 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.AgencyListResultDTO; | |||
| 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; | |||
| 
 | |||
| import java.util.List; | |||
| 
 | |||
| 
 | |||
| /** | |||
|  * 组织机构 | |||
|  * | |||
|  * @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); | |||
|     } | |||
| 
 | |||
|     /** | |||
|      * @param formDTO | |||
|      * @return | |||
|      * @Author sun | |||
|      * @Description 获取组织列表 | |||
|      */ | |||
|     @PostMapping("agencylist") | |||
|     public Result<List<AgencyListResultDTO>> agencyList(@RequestBody AgencyListFormDTO formDTO) { | |||
|         return agencyService.agencyList(formDTO); | |||
|     } | |||
| } | |||
| @ -0,0 +1,36 @@ | |||
| package com.epmet.controller; | |||
| 
 | |||
| 
 | |||
| 
 | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.epmet.dto.form.StaffsInAgencyFromDTO; | |||
| import com.epmet.dto.result.StaffInfoResultDTO; | |||
| import com.epmet.dto.result.StaffsInAgencyResultDTO; | |||
| import com.epmet.service.StaffService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.PostMapping; | |||
| import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.RestController; | |||
| 
 | |||
| import java.util.List; | |||
| 
 | |||
| /** | |||
|  * 组织结构-工作人员 | |||
|  * @author zhaoqifeng | |||
|  * @date 2020/4/23 17:59 | |||
|  */ | |||
| @RestController | |||
| @RequestMapping("staff") | |||
| public class StaffController { | |||
| 	@Autowired | |||
| 	private StaffService staffService; | |||
| 	/** | |||
| 	 * 组织首页-工作人员列表 | |||
| 	 * @param fromDTO | |||
| 	 * @return | |||
| 	 */ | |||
| 	@PostMapping("staffsinagency") | |||
| 	public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { | |||
| 		return staffService.getStaffInfoForHome(fromDTO); | |||
| 	} | |||
| } | |||
| @ -0,0 +1,85 @@ | |||
| /** | |||
|  * 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.*; | |||
| 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); | |||
| 
 | |||
|     /** | |||
|      * @param formDTO | |||
|      * @return | |||
|      * @Author sun | |||
|      * @Description 获取组织列表 | |||
|      */ | |||
|     Result<List<AgencyListResultDTO>> agencyList(AgencyListFormDTO formDTO); | |||
| } | |||
| @ -0,0 +1,22 @@ | |||
| package com.epmet.service; | |||
| 
 | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.epmet.dto.form.StaffsInAgencyFromDTO; | |||
| import com.epmet.dto.result.StaffsInAgencyResultDTO; | |||
| 
 | |||
| /** | |||
|  * 组织结构-工作人员 | |||
|  * | |||
|  * @author zhaoqifeng | |||
|  * @date 2020/4/23 18:00 | |||
|  */ | |||
| public interface StaffService { | |||
| 	/** | |||
| 	 * 组织首页-工作人员列表 | |||
| 	 * | |||
| 	 * @param fromDTO 参数 | |||
| 	 * @return Result<StaffsInAgencyResultDTO> | |||
| 	 * @author zhaoqifeng | |||
| 	 */ | |||
| 	Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO); | |||
| } | |||
| @ -0,0 +1,197 @@ | |||
| /** | |||
|  * 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); | |||
|     } | |||
| 
 | |||
|     /** | |||
|      * @param formDTO | |||
|      * @return | |||
|      * @Author sun | |||
|      * @Description 获取组织列表 | |||
|      */ | |||
|     @Override | |||
|     public Result<List<AgencyListResultDTO>> agencyList(AgencyListFormDTO formDTO) { | |||
|         List<AgencyListResultDTO> agencyList = customerAgencyDao.selectAgencyList(formDTO.getAgencyId()); | |||
|         return new Result<List<AgencyListResultDTO>>().ok(agencyList); | |||
|     } | |||
| } | |||
| @ -0,0 +1,54 @@ | |||
| package com.epmet.service.impl; | |||
| 
 | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.epmet.dto.CustomerStaffAgencyDTO; | |||
| import com.epmet.dto.form.StaffsInAgencyFromDTO; | |||
| import com.epmet.dto.result.StaffInfoResultDTO; | |||
| import com.epmet.dto.result.StaffsInAgencyResultDTO; | |||
| import com.epmet.entity.CustomerAgencyEntity; | |||
| import com.epmet.feign.EpmetUserFeignClient; | |||
| import com.epmet.feign.OperCrmFeignClient; | |||
| import com.epmet.service.CustomerAgencyService; | |||
| import com.epmet.service.CustomerStaffAgencyService; | |||
| import com.epmet.service.StaffService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| 
 | |||
| import java.util.List; | |||
| import java.util.stream.Collectors; | |||
| 
 | |||
| /** | |||
|  * @author zhaoqifeng | |||
|  * @dscription | |||
|  * @date 2020/4/23 18:05 | |||
|  */ | |||
| @Service | |||
| public class StaffServiceImpl implements StaffService { | |||
| 	@Autowired | |||
| 	private EpmetUserFeignClient epmetUserFeignClient; | |||
| 	@Autowired | |||
| 	private OperCrmFeignClient operCrmFeignClient; | |||
| 	@Autowired | |||
| 	private CustomerAgencyService customerAgencyService; | |||
| 	@Autowired | |||
| 	private CustomerStaffAgencyService customerStaffAgencyService; | |||
| 	@Override | |||
| 	public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { | |||
| 		StaffsInAgencyResultDTO resultDTO = new StaffsInAgencyResultDTO(); | |||
| 		//获取机关所在客户ID和人员总数
 | |||
| 		CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); | |||
| 		resultDTO.setStaffCount(customerAgencyEntity.getTotalUser()); | |||
| 		fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); | |||
| 		List<CustomerStaffAgencyDTO> customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); | |||
| 		if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { | |||
| 			return new Result<StaffsInAgencyResultDTO>().ok(null); | |||
| 		} | |||
| 		//提取所有userID
 | |||
| 		List<String> staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); | |||
| 		fromDTO.setStaffList(staffIds); | |||
| 		//获取用户信息
 | |||
| 		Result<List<StaffInfoResultDTO>> staffInfoListResult =  epmetUserFeignClient.getStaffInfoForHome(fromDTO); | |||
| 		resultDTO.setStaffList(staffInfoListResult.getData()); | |||
| 		return new Result<StaffsInAgencyResultDTO>().ok(resultDTO); | |||
| 	} | |||
| } | |||
					Loading…
					
					
				
		Reference in new issue