@@ -56,7 +56,7 @@ public class GeneratorCodeKingbaseConfig { | |||||
} | } | ||||
public static void main(String[] args) { | public static void main(String[] args) { | ||||
generate("WendyYang", "projectlib", PATH_YYD, "nd_project_application"); | |||||
generate("Lierbao", "organization", PATH_LXX, "ding_organization"); | |||||
} | } | ||||
} | } |
@@ -0,0 +1,154 @@ | |||||
//package com.ningdatech.pmapi.ding.task; | |||||
// | |||||
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | |||||
//import com.google.common.collect.Lists; | |||||
//import com.ningdatech.basic.model.GenericResult; | |||||
//import com.ningdatech.zwdd.client.ZwddAuthClient; | |||||
//import com.ningdatech.zwdd.client.ZwddClient; | |||||
//import com.ningdatech.zwdd.model.dto.DingOrgInfoDTO; | |||||
//import com.ningdatech.zwdd.model.dto.DingScopesV2DTO; | |||||
//import com.ningdatech.zwdd.model.dto.PageSubOrganizationCodeDTO; | |||||
//import org.springframework.beans.factory.annotation.Autowired; | |||||
//import org.springframework.stereotype.Component; | |||||
// | |||||
//import java.util.ArrayList; | |||||
//import java.util.List; | |||||
//import java.util.Objects; | |||||
//import java.util.stream.Collectors; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2023/2/7 上午10:15 | |||||
// */ | |||||
// | |||||
//@Component | |||||
//public class OrganizationBatchGetTask { | |||||
// | |||||
// @Autowired | |||||
// private ZwddClient zwddClient; | |||||
// | |||||
// @Autowired | |||||
// private ZwddAuthClient zwddAuthClient; | |||||
// | |||||
// public OrganizationBatchGetTask() { | |||||
// // 获取通讯录权限范围 获取顶级组织code | |||||
// GenericResult<DingScopesV2DTO> scopesV2Result = zwddClient.getScopesV2(); | |||||
// DingScopesV2DTO data = scopesV2Result.getData(); | |||||
// | |||||
// if (Objects.nonNull(data)) { | |||||
// | |||||
// } | |||||
// | |||||
//// // 根据组织code查询详情获取部门信息 | |||||
//// List<String> deptVisibleScopes = data.getDeptVisibleScopes(); | |||||
//// for (String deptVisibleScope : deptVisibleScopes) { | |||||
//// GenericResult<DingOrgInfoDTO> organizationByCodeResult = zwddClient.getOrganizationByCode(deptVisibleScope); | |||||
//// DingOrgInfoDTO dingOrgInfoDTO = organizationByCodeResult.getData(); | |||||
////// dingOrgInfoDTO | |||||
//// } | |||||
// List<String> currentAllOrganizationCodeList = new ArrayList<>(); | |||||
// | |||||
// | |||||
// List<String> deptVisibleScopes = data.getDeptVisibleScopes(); | |||||
// for (String orgCode : deptVisibleScopes) { | |||||
// if (currentAllOrganizationCodeList.contains(orgCode)) { | |||||
//// log.info("已存在组织架构---{}", orgCode); | |||||
// continue; | |||||
// } | |||||
// List<DingOrgInfoTreeDTO> treeDTOList = new ArrayList<>(); | |||||
// | |||||
// DingOrgInfoTreeDTO childDingOrgInfoTreeDTO = new DingOrgInfoTreeDTO(); | |||||
// //设置节点详情 | |||||
// if (dingOrgInfoDtos != null && !dingOrgInfoDtos.isEmpty()) { | |||||
// for (DingOrgInfoDTO orgInfo : dingOrgInfoDtos) { | |||||
// if (orgInfo.getOrganizationCode().equals(orgCode)) { | |||||
// childDingOrgInfoTreeDTO.setDingOrgInfoDTO(orgInfo); | |||||
// } | |||||
// } | |||||
// } | |||||
// childDingOrgInfoTreeDTO.setCode(orgCode); | |||||
// childDingOrgInfoTreeDTO.setChildCodes(new ArrayList<>()); | |||||
// getDingOrgChild(childDingOrgInfoTreeDTO); | |||||
// treeDTOList.add(childDingOrgInfoTreeDTO); | |||||
// | |||||
// if (CollectionUtils.isNotEmpty(treeDTOList)) { | |||||
// List<DingOrganization> saveRecordList = new ArrayList<>(); | |||||
// buildSaveRecordList(treeDTOList, saveRecordList); | |||||
// | |||||
// // 批量保存 | |||||
// if (saveRecordList.size() <= GROUP_SIZE) { | |||||
// iDingOrganizationService.saveBatch(saveRecordList); | |||||
// } else { | |||||
// List<List<DingOrganization>> split = Lists.partition(saveRecordList, GROUP_SIZE); | |||||
// for (List<DingOrganization> segment : split) { | |||||
// iDingOrganizationService.saveBatch(segment); | |||||
// } | |||||
// } | |||||
// } | |||||
// log.info("----拉取浙政钉组织结构结束---,顶级code:" + orgCode); | |||||
// } | |||||
// } | |||||
// | |||||
// | |||||
// private void getDingOrgChild(DingOrgInfoTreeDTO parentDingOrgInfoTreeDTO) { | |||||
// String parentOrgCode = parentDingOrgInfoTreeDTO.getCode(); | |||||
// DingOrgInfoDTO orgInfoDTO = parentDingOrgInfoTreeDTO.getDingOrgInfoDTO(); | |||||
// boolean leaf = orgInfoDTO.getLeaf(); | |||||
// if (!leaf) { | |||||
// int currentPage = 1; | |||||
// int pageSize = 100; | |||||
// PageSubOrganizationCodeDTO pageSubOrganizationCodeDTO = | |||||
// dingApiClient.pageSubOrganizationCodes(currentPage++, pageSize, parentOrgCode); | |||||
// List<String> subOrganizationCodeList = new ArrayList<>(pageSubOrganizationCodeDTO.getSubOrganizationCodeList()); | |||||
// Long totalSize = pageSubOrganizationCodeDTO.getTotalSize(); | |||||
// | |||||
// while (totalSize > (long) currentPage * pageSize) { | |||||
// PageSubOrganizationCodeDTO subOrganizationCodeDTO = dingApiClient | |||||
// .pageSubOrganizationCodes(currentPage++, pageSize, parentOrgCode); | |||||
// if (CollectionUtils.isNotEmpty(subOrganizationCodeDTO.getSubOrganizationCodeList())) { | |||||
// subOrganizationCodeList.addAll(subOrganizationCodeDTO.getSubOrganizationCodeList()); | |||||
// } | |||||
// } | |||||
// | |||||
// if (CollectionUtils.isNotEmpty(subOrganizationCodeList)) { | |||||
// List<DingOrgInfoDTO> dingOrgInfoDtos = dingApiClient | |||||
// .listOrganizationsByCodes(subOrganizationCodeList); | |||||
// List<DingOrgInfoTreeDTO> dingOrgInfoTreeDTOList = dingOrgInfoDtos.stream().map(r -> { | |||||
// DingOrgInfoTreeDTO dingOrgInfoTreeDTO = new DingOrgInfoTreeDTO(); | |||||
// dingOrgInfoTreeDTO.setCode(r.getOrganizationCode()); | |||||
// dingOrgInfoTreeDTO.setDingOrgInfoDTO(r); | |||||
// dingOrgInfoTreeDTO.setChildCodes(new ArrayList<>()); | |||||
// getDingOrgChild(dingOrgInfoTreeDTO); | |||||
// return dingOrgInfoTreeDTO; | |||||
// }).collect(Collectors.toList()); | |||||
// parentDingOrgInfoTreeDTO.setChildCodes(dingOrgInfoTreeDTOList); | |||||
// } | |||||
// | |||||
// } | |||||
// } | |||||
// | |||||
// | |||||
// private void buildSaveRecordList(List<DingOrgInfoTreeDTO> treeDTOList, List<DingOrganization> saveRecordList) { | |||||
// if (CollectionUtils.isEmpty(treeDTOList)) { | |||||
// return; | |||||
// } | |||||
// for (DingOrgInfoTreeDTO dingOrgInfoTreeDTO : treeDTOList) { | |||||
// DingOrganization saveRecord = new DingOrganization(); | |||||
// DingOrgInfoDTO dingOrgInfoDTO = dingOrgInfoTreeDTO.getDingOrgInfoDTO(); | |||||
// List<DingOrgInfoTreeDTO> childCodes = dingOrgInfoTreeDTO.getChildCodes(); | |||||
// saveRecord.setDeptSort(dingOrgInfoDTO.getDisplayOrder()); | |||||
// saveRecord.setEnabled("1"); | |||||
// saveRecord.setParentCode(dingOrgInfoDTO.getParentCode()); | |||||
// saveRecord.setOrganizationCode(dingOrgInfoDTO.getOrganizationCode()); | |||||
// saveRecord.setSubCount((long) dingOrgInfoTreeDTO.getChildCodes().size()); | |||||
// saveRecord.setName(dingOrgInfoDTO.getOrganizationName()); | |||||
// saveRecordList.add(saveRecord); | |||||
// if (CollectionUtils.isNotEmpty(childCodes)) { | |||||
// buildSaveRecordList(childCodes, saveRecordList); | |||||
// } | |||||
// } | |||||
// | |||||
// } | |||||
// | |||||
// | |||||
//} |
@@ -0,0 +1,20 @@ | |||||
package com.ningdatech.pmapi.organization.controller; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.stereotype.Controller; | |||||
/** | |||||
* <p> | |||||
* 前端控制器 | |||||
* </p> | |||||
* | |||||
* @author Lierbao | |||||
* @since 2023-02-09 | |||||
*/ | |||||
@Controller | |||||
@RequestMapping("/pmapi.organization/ding-organization") | |||||
public class DingOrganizationController { | |||||
} |
@@ -0,0 +1,179 @@ | |||||
package com.ningdatech.pmapi.organization.entity; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import java.io.Serializable; | |||||
import java.time.LocalDateTime; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
/** | |||||
* <p> | |||||
* | |||||
* </p> | |||||
* | |||||
* @author Lierbao | |||||
* @since 2023-02-09 | |||||
*/ | |||||
@TableName("ding_organization") | |||||
@ApiModel(value = "DingOrganization对象", description = "") | |||||
public class DingOrganization implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
private Long id; | |||||
private String institutionLevelCode; | |||||
private String address; | |||||
private String organizationName; | |||||
private Long displayOrder; | |||||
private Long typeName; | |||||
private Integer leaf; | |||||
private LocalDateTime gmtCreate; | |||||
private String typeCode; | |||||
private String divisionCode; | |||||
private String parentName; | |||||
private String parentCode; | |||||
private String organizationCode; | |||||
private String businessStripCodes; | |||||
private String status; | |||||
public Long getId() { | |||||
return id; | |||||
} | |||||
public void setId(Long id) { | |||||
this.id = id; | |||||
} | |||||
public String getInstitutionLevelCode() { | |||||
return institutionLevelCode; | |||||
} | |||||
public void setInstitutionLevelCode(String institutionLevelCode) { | |||||
this.institutionLevelCode = institutionLevelCode; | |||||
} | |||||
public String getAddress() { | |||||
return address; | |||||
} | |||||
public void setAddress(String address) { | |||||
this.address = address; | |||||
} | |||||
public String getOrganizationName() { | |||||
return organizationName; | |||||
} | |||||
public void setOrganizationName(String organizationName) { | |||||
this.organizationName = organizationName; | |||||
} | |||||
public Long getDisplayOrder() { | |||||
return displayOrder; | |||||
} | |||||
public void setDisplayOrder(Long displayOrder) { | |||||
this.displayOrder = displayOrder; | |||||
} | |||||
public Long getTypeName() { | |||||
return typeName; | |||||
} | |||||
public void setTypeName(Long typeName) { | |||||
this.typeName = typeName; | |||||
} | |||||
public Integer getLeaf() { | |||||
return leaf; | |||||
} | |||||
public void setLeaf(Integer leaf) { | |||||
this.leaf = leaf; | |||||
} | |||||
public LocalDateTime getGmtCreate() { | |||||
return gmtCreate; | |||||
} | |||||
public void setGmtCreate(LocalDateTime gmtCreate) { | |||||
this.gmtCreate = gmtCreate; | |||||
} | |||||
public String getTypeCode() { | |||||
return typeCode; | |||||
} | |||||
public void setTypeCode(String typeCode) { | |||||
this.typeCode = typeCode; | |||||
} | |||||
public String getDivisionCode() { | |||||
return divisionCode; | |||||
} | |||||
public void setDivisionCode(String divisionCode) { | |||||
this.divisionCode = divisionCode; | |||||
} | |||||
public String getParentName() { | |||||
return parentName; | |||||
} | |||||
public void setParentName(String parentName) { | |||||
this.parentName = parentName; | |||||
} | |||||
public String getParentCode() { | |||||
return parentCode; | |||||
} | |||||
public void setParentCode(String parentCode) { | |||||
this.parentCode = parentCode; | |||||
} | |||||
public String getOrganizationCode() { | |||||
return organizationCode; | |||||
} | |||||
public void setOrganizationCode(String organizationCode) { | |||||
this.organizationCode = organizationCode; | |||||
} | |||||
public String getBusinessStripCodes() { | |||||
return businessStripCodes; | |||||
} | |||||
public void setBusinessStripCodes(String businessStripCodes) { | |||||
this.businessStripCodes = businessStripCodes; | |||||
} | |||||
public String getStatus() { | |||||
return status; | |||||
} | |||||
public void setStatus(String status) { | |||||
this.status = status; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return "DingOrganization{" + | |||||
"id=" + id + | |||||
", institutionLevelCode=" + institutionLevelCode + | |||||
", address=" + address + | |||||
", organizationName=" + organizationName + | |||||
", displayOrder=" + displayOrder + | |||||
", typeName=" + typeName + | |||||
", leaf=" + leaf + | |||||
", gmtCreate=" + gmtCreate + | |||||
", typeCode=" + typeCode + | |||||
", divisionCode=" + divisionCode + | |||||
", parentName=" + parentName + | |||||
", parentCode=" + parentCode + | |||||
", organizationCode=" + organizationCode + | |||||
", businessStripCodes=" + businessStripCodes + | |||||
", status=" + status + | |||||
"}"; | |||||
} | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package com.ningdatech.pmapi.organization.mapper; | |||||
import com.ningdatech.pmapi.organization.entity.DingOrganization; | |||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
/** | |||||
* <p> | |||||
* Mapper 接口 | |||||
* </p> | |||||
* | |||||
* @author Lierbao | |||||
* @since 2023-02-09 | |||||
*/ | |||||
public interface DingOrganizationMapper extends BaseMapper<DingOrganization> { | |||||
} |
@@ -0,0 +1,5 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.ningdatech.pmapi.organization.mapper.DingOrganizationMapper"> | |||||
</mapper> |
@@ -0,0 +1,16 @@ | |||||
package com.ningdatech.pmapi.organization.service; | |||||
import com.ningdatech.pmapi.organization.entity.DingOrganization; | |||||
import com.baomidou.mybatisplus.extension.service.IService; | |||||
/** | |||||
* <p> | |||||
* 服务类 | |||||
* </p> | |||||
* | |||||
* @author Lierbao | |||||
* @since 2023-02-09 | |||||
*/ | |||||
public interface IDingOrganizationService extends IService<DingOrganization> { | |||||
} |
@@ -0,0 +1,20 @@ | |||||
package com.ningdatech.pmapi.organization.service.impl; | |||||
import com.ningdatech.pmapi.organization.entity.DingOrganization; | |||||
import com.ningdatech.pmapi.organization.mapper.DingOrganizationMapper; | |||||
import com.ningdatech.pmapi.organization.service.IDingOrganizationService; | |||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import org.springframework.stereotype.Service; | |||||
/** | |||||
* <p> | |||||
* 服务实现类 | |||||
* </p> | |||||
* | |||||
* @author Lierbao | |||||
* @since 2023-02-09 | |||||
*/ | |||||
@Service | |||||
public class DingOrganizationServiceImpl extends ServiceImpl<DingOrganizationMapper, DingOrganization> implements IDingOrganizationService { | |||||
} |