orgIds查所以组织关系

master
wyj2080 6 years ago
parent a6e9e8c7ef
commit 86319bfa1f

@ -62,9 +62,9 @@ public class RetailCompanyController extends BaseController {
*/
@ResponseBody
@GetMapping("/org")
public Map<String,Object> listOfRetailCompany(@RequestParam("userId") long userId){
public Map<String,Object> listOfRetailCompany(@RequestParam("userId") long userId, Long regionId, Long companyId, Long customerId){
try{
List<PrivilageOrganizational> privilageOrganizationals = retailCompanyService.listOfRetailOrg(userId);
List<PrivilageOrganizational> privilageOrganizationals = retailCompanyService.listOfRetailOrg(userId, regionId, companyId, customerId);
return data(privilageOrganizationals);
}catch (Exception e){
log.error("查询所有的组织数据失败",e);

@ -0,0 +1,24 @@
package com.kiisoo.ic.generalize.entity;
import lombok.Data;
/**
* @Description: 广VO
* @Author: wangyinjia
* @Date: 2020/4/17
* @Company: kiisoo
* @Version: 1.0
*/
@Data
public class PrivilageOrganizationalRelationVO {
/**大区*/
private Long regionId;
private String region;
/**零售公司*/
private Long companyId;
private String company;
/**客户*/
private Long customerId;
private String customer;
}

@ -2,8 +2,8 @@ package com.kiisoo.ic.generalize.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kiisoo.ic.generalize.entity.CompanyStoreDO;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalRelationVO;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizational;
import com.kiisoo.ic.region.entity.RegionDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -23,4 +23,9 @@ public interface RetailCompanyMapper extends BaseMapper<PrivilageOrganizational>
Set<Long> selectChildList(@Param("companys") Set<Long> companys);
void insertDomainOrgRelation(@Param("domainId")Long domainId, @Param("companyId")Long companyId);
/**
* list
*/
List<PrivilageOrganizationalRelationVO> selectAllOrgListByOrgIds(@Param("orgIds") List<Long> orgIds, @Param("regionId")Long regionId , @Param("companyId")Long companyId, @Param("customerId")Long customerId);
}

@ -7,10 +7,7 @@ import com.github.pagehelper.PageHelper;
import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation;
import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper;
import com.kiisoo.ic.generalize.bean.*;
import com.kiisoo.ic.generalize.entity.CompanyStoreDO;
import com.kiisoo.ic.generalize.entity.PoiCustomerContactDataStat;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizational;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalMember;
import com.kiisoo.ic.generalize.entity.*;
import com.kiisoo.ic.generalize.mapper.OrganizationalMemberMapper;
import com.kiisoo.ic.generalize.mapper.PoiCustomerContactDataStatMapper;
import com.kiisoo.ic.generalize.mapper.RetailCompanyMapper;
@ -38,6 +35,13 @@ import java.util.stream.Collectors;
@Service
public class RetailCompanyService {
/**区域*/
static final Integer LEVEL_REGION = 1;
/**零售公司*/
static final Integer LEVEL_COMPANY = 2;
/**客户*/
static final Integer LEVEL_CUSTOMER = 3;
private RetailCompanyMapper retailCompanyMapper;
private OrganizationalMemberMapper organizationalMemberMapper;
@ -110,17 +114,39 @@ public class RetailCompanyService {
/**
*
*/
public List<PrivilageOrganizational> listOfRetailOrg(long userId){
public List<PrivilageOrganizational> listOfRetailOrg(long userId, Long regionId, Long companyId, Long customerId){
QueryWrapper<PrivilageOrganizationalMember> wrapper1 = new QueryWrapper<>();
wrapper1.eq("user_id",userId);
List<PrivilageOrganizationalMember> pm = organizationalMemberMapper.selectList(wrapper1);
QueryWrapper<PrivilageOrganizational> wrapper = new QueryWrapper<>();
if(pm.isEmpty()) {
return new ArrayList<>();
}else {
wrapper.eq("type", 1).eq("status", 1).in("id", pm.stream().map(PrivilageOrganizationalMember::getOrgId).collect(Collectors.toList()));
List<PrivilageOrganizational> privilageOrganizationals = retailCompanyMapper.selectList(wrapper);
return privilageOrganizationals;
List<Long> orgIds = pm.stream().map(PrivilageOrganizationalMember::getOrgId).collect(Collectors.toList());
List<PrivilageOrganizationalRelationVO> orgRelationList = retailCompanyMapper.selectAllOrgListByOrgIds(orgIds, regionId, companyId, customerId);
//所以组织list
List<PrivilageOrganizational> tmpOrgList = new ArrayList<>();
orgRelationList.forEach(orgRelationVO -> {
PrivilageOrganizational regionDO = new PrivilageOrganizational();
regionDO.setId(orgRelationVO.getRegionId());
regionDO.setName(orgRelationVO.getRegion());
regionDO.setLevel((long)LEVEL_REGION);
regionDO.setParentId(0L);
PrivilageOrganizational companyDO = new PrivilageOrganizational();
companyDO.setId(orgRelationVO.getCompanyId());
companyDO.setName(orgRelationVO.getCompany());
companyDO.setLevel((long)LEVEL_COMPANY);
companyDO.setParentId(orgRelationVO.getRegionId());
PrivilageOrganizational customerDO = new PrivilageOrganizational();
customerDO.setId(orgRelationVO.getCustomerId());
customerDO.setName(orgRelationVO.getCustomer());
customerDO.setLevel((long)LEVEL_CUSTOMER);
customerDO.setParentId(orgRelationVO.getCompanyId());
tmpOrgList.add(regionDO);
tmpOrgList.add(companyDO);
tmpOrgList.add(customerDO);
});
List<PrivilageOrganizational> orgList = tmpOrgList.stream().distinct().collect(Collectors.toList());
return orgList;
}
}

@ -55,4 +55,44 @@
</choose>
</select>
<!--所以组织对应关系list-->
<select id="selectAllOrgListByOrgIds" resultType="com.kiisoo.ic.generalize.entity.PrivilageOrganizationalRelationVO">
SELECT region.id as regionId,region.name as region,company.id as companyId,company.name as company,
customer.id as customerId,customer.name as customer
FROM `privilage_organizational` region,`privilage_organizational` company,`privilage_organizational` customer
where company.parent_id=region.id
and customer.parent_id = company.id
and region.`level`=1
and company.`level`=2
and customer.`level`=3
and region.type=1
and company.type=1
and customer.type=1
and region.`status`=1
and company.`status`=1
and customer.`status`=1
and (region.id in
<foreach collection="orgIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
or company.id in
<foreach collection="orgIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
or customer.id in
<foreach collection="orgIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
)
<if test="regionId != null and regionId != 0">
and region.id = #{regionId}
</if>
<if test="companyId != null and companyId != 0">
and company.id = #{companyId}
</if>
<if test="customerId != null and customerId != 0">
and customer.id = #{customerId}
</if>
</select>
</mapper>

Loading…
Cancel
Save