Browse Source
			
			
			
			
				
		# Conflicts: # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.javafeature/evaluate
				 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