Browse Source

debug 员工

master
PoffyZhang 1 year ago
parent
commit
92f1621aa0
8 changed files with 237 additions and 8 deletions
  1. +5
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java
  2. +81
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java
  3. +34
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/filemanage/controller/ProjectFileController.java
  4. +52
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/filemanage/manage/ProjectFileManage.java
  5. +22
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/filemanage/model/param/ProjectFileListParam.java
  6. +36
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/filemanage/model/vo/ProjectFileListVO.java
  7. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java
  8. +4
    -8
      pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java

+ 5
- 0
pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java View File

@@ -6,6 +6,7 @@ import com.ningdatech.pmapi.ding.task.OrganizationBatchGetTask;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
@@ -41,4 +42,8 @@ public class DingInfoPullController {
organizationBatchGetTask.batchGetOrganizationTask();
}

@GetMapping("/employee/{regionCode}")
public void employeeBatchGetByRegionCode(@RequestParam(required = false) String regionCode) {
employeeBatchGetTask.batchGetEmployeeTaskByRegionCode(regionCode);
}
}

+ 81
- 0
pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java View File

@@ -244,6 +244,87 @@ public class EmployeeBatchGetTask {
}
}

/**
* 按区域 来更新员工
* @param regionCode
*/
public void batchGetEmployeeTaskByRegionCode(String regionCode) {
List<DingOrganization> units = iDingOrganizationService.list(Wrappers.lambdaQuery(DingOrganization.class)
.eq(DingOrganization::getTypeCode, "GOV_UNIT")
.eq(DingOrganization::getDivisionCode, regionCode));


log.info("所有地区 {} 待更新员工的单位数:{}",regionCode,units.size());
if (CollUtil.isNotEmpty(units)) {
//记录任务 单位数
Integer index = 0;
for (DingOrganization dingOrganization : units) {
log.info("当前单位:{},下标数,{}",dingOrganization.getOrganizationName(),index);
index++;
List<OrganizationEmployeePosition> allOrganizationEmployeePositionList = new ArrayList<>();
String organizationCode = dingOrganization.getOrganizationCode();
PageOrganizationEmployeePositionsQuery query = new PageOrganizationEmployeePositionsQuery();
query.setEmployeeStatus("A");
query.setOrganizationCode(organizationCode);
query.setReturnTotalSize(true);
query.setTenantId(zwddIntegrationProperties.getTenantId());
int pageNo = 1;
query.setPageNo(pageNo);
query.setPageSize(PAGE_SIZE);

// 查询组织下 用户信息
GenericResult<Page<OrganizationEmployeePosition>> firstPageGenericResult = zwddClient.pageOrganizationEmployeePositions(query);
Page<OrganizationEmployeePosition> data = firstPageGenericResult.getData();
if (Objects.isNull(data)){
log.info("响应为空:{}",organizationCode);
continue;
}
if (CollUtil.isNotEmpty(data.getData())) {
allOrganizationEmployeePositionList.addAll(data.getData());
}
Long totalSize = data.getTotalSize();

log.info("dingOrganization :{}", JSON.toJSONString(dingOrganization));

log.info("totalSize :{},{}", totalSize,dingOrganization.getOrganizationName());
if (totalSize > PAGE_SIZE) {
if (totalSize > MAX_SIZE) {
//超过1万 按1万的处理
totalSize = MAX_SIZE.longValue();
}

int restPageNo = totalSize % PAGE_SIZE > 0 ? 1 : 0;
int maxPageNo = (int) Math.ceil(totalSize / PAGE_SIZE) + restPageNo;
for (pageNo = 2; pageNo <= maxPageNo; pageNo++) {
query.setPageNo(pageNo);
GenericResult<Page<OrganizationEmployeePosition>> pageGenericResult = zwddClient.pageOrganizationEmployeePositions(query);
// log.info("pageGenericResult :{}", JSON.toJSONString(pageGenericResult));
if(pageGenericResult.isSuccess()){
allOrganizationEmployeePositionList.addAll(pageGenericResult.getData().getData());
}else{
log.error(pageGenericResult.getMsg());
}
}
}

// 批量查询 成员的accountId
List<DingEmployeeInfo> dingEmployeeInfoSaveRecordList = new ArrayList<>();
if (allOrganizationEmployeePositionList.size() <= GROUP_SIZE) {
log.info("assemblerAccountId :{}", allOrganizationEmployeePositionList.size());
assemblerAccountId(allOrganizationEmployeePositionList, dingEmployeeInfoSaveRecordList);
} else {
log.info("assemblerAccountId :{}", allOrganizationEmployeePositionList.size());
List<List<OrganizationEmployeePosition>> split = Lists.partition(allOrganizationEmployeePositionList, GROUP_SIZE);
for (List<OrganizationEmployeePosition> segment : split) {
assemblerAccountId(segment, dingEmployeeInfoSaveRecordList);
}
}
// 批量保存用户信息
saveBatch(dingEmployeeInfoSaveRecordList);
}
}
}

// if (saveList.size() <= GROUP_SIZE) {
// iDingEmployeeInfoService.saveBatch(saveList);
// } else {


+ 34
- 0
pmapi/src/main/java/com/ningdatech/pmapi/filemanage/controller/ProjectFileController.java View File

@@ -0,0 +1,34 @@
package com.ningdatech.pmapi.filemanage.controller;

import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.filemanage.manage.ProjectFileManage;
import com.ningdatech.pmapi.filemanage.model.param.ProjectFileListParam;
import com.ningdatech.pmapi.filemanage.model.vo.ProjectFileListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
* @Classname ProjectFileController
* @Description
* @Date 2023/6/6 15:48
* @Author PoffyZhang
*/
@RestController
@AllArgsConstructor
@Api(tags = "档案管理-项目档案")
@RequestMapping("/api/v1/file-manage/project-file")
@Validated
public class ProjectFileController {

private final ProjectFileManage projectFileManage;

@GetMapping("/list")
@ApiOperation(value = "档案列表", notes = "档案列表")
public PageVo<ProjectFileListVO> list(@ModelAttribute ProjectFileListParam param){
return projectFileManage.list(param);
}

}

+ 52
- 0
pmapi/src/main/java/com/ningdatech/pmapi/filemanage/manage/ProjectFileManage.java View File

@@ -0,0 +1,52 @@
package com.ningdatech.pmapi.filemanage.manage;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.filemanage.model.param.ProjectFileListParam;
import com.ningdatech.pmapi.filemanage.model.vo.ProjectFileListVO;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.service.IProjectService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.stream.Collectors;

/**
* @Classname ProjectFileManage
* @Description
* @Date 2023/6/6 16:04
* @Author PoffyZhang
*/
@Component
@AllArgsConstructor
@Slf4j
public class ProjectFileManage {

private final IProjectService projectService;

public PageVo<ProjectFileListVO> list(ProjectFileListParam param) {
Page<Project> page = param.page();
projectService.page(page,Wrappers.lambdaQuery(Project.class)
.like(StringUtils.isNotBlank(param.getProjectName()),Project::getProjectName,param.getProjectName())
.like(StringUtils.isNotBlank(param.getBuildOrgName()),Project::getBuildOrgName,param.getBuildOrgName())
.orderByDesc(Project::getUpdateOn));

if(0L == page.getTotal()){
return PageVo.empty();
}
List<ProjectFileListVO> vos = page.getRecords().stream().map(p -> {
ProjectFileListVO vo = new ProjectFileListVO();
vo.setId(p.getId());
vo.setCanRead(Boolean.TRUE);
vo.setBuildOrgName(p.getBuildOrgName());
vo.setPojectCode(p.getProjectCode());
vo.setProjectName(p.getProjectName());
return vo;
}).collect(Collectors.toList());
return PageVo.of(vos,page.getTotal());
}
}

+ 22
- 0
pmapi/src/main/java/com/ningdatech/pmapi/filemanage/model/param/ProjectFileListParam.java View File

@@ -0,0 +1,22 @@
package com.ningdatech.pmapi.filemanage.model.param;

import com.ningdatech.basic.model.PagePo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* @Classname ProjectFileListParam
* @Description
* @Date 2023/6/6 16:06
* @Author PoffyZhang
*/
@Data
public class ProjectFileListParam extends PagePo {

@ApiModelProperty("项目名称")
private String projectName;

@ApiModelProperty("项目单位")
private String buildOrgName;

}

+ 36
- 0
pmapi/src/main/java/com/ningdatech/pmapi/filemanage/model/vo/ProjectFileListVO.java View File

@@ -0,0 +1,36 @@
package com.ningdatech.pmapi.filemanage.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
* @Classname Documentation
* @Description
* @Date 2023/6/6 14:41
* @Author PoffyZhang
*/
@Data
@ApiModel(value = "ProjectFileListVO", description = "资料文档")
public class ProjectFileListVO {

@ApiModelProperty("项目ID")
private Long id;

@ApiModelProperty("项目名称")
private String projectName;

@ApiModelProperty("项目单位")
private String buildOrgName;

@ApiModelProperty("项目编号")
private String pojectCode;

@ApiModelProperty("是否可阅")
private Boolean canRead = Boolean.FALSE;

@ApiModelProperty("最后修改时间")
private LocalDateTime updateOn;
}

+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/entity/UserInfo.java View File

@@ -45,6 +45,9 @@ public class UserInfo implements Serializable {

private String regionCode;

private String empPosUnitCode;
private String empPosUnitName;

@TableField(fill = FieldFill.INSERT)
private LocalDateTime createOn;



+ 4
- 8
pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java View File

@@ -63,6 +63,7 @@ public class UserInfoManage {
String phoneNo = req.getPhoneNo();
String orgCode = req.getOrgCode();
String name = req.getName();
String orgName = req.getOrgName();
Long regionId = req.getRegionId();

List<Long> userIdList = getRoleCompliantUserIdList(req.getUserRoleList());
@@ -71,19 +72,14 @@ public class UserInfoManage {
pageVo.setTotal(0L);
return pageVo;
}
List<String> compliantOrgEmpCodeList = getCompliantOrgEmpCodeList(req.getOrgName(), orgCode);
if (compliantOrgEmpCodeList != null && compliantOrgEmpCodeList.size() == 0) {
pageVo.setRecords(new ArrayList<>());
pageVo.setTotal(0L);
return pageVo;
}

LambdaQueryWrapper<UserInfo> wrapper = Wrappers.lambdaQuery(UserInfo.class)
.like(StringUtils.isNotBlank(phoneNo), UserInfo::getMobile, phoneNo)
.like(StringUtils.isNotBlank(name), UserInfo::getRealName, name)
.in(Objects.nonNull(userIdList), UserInfo::getId, userIdList)
.eq(Objects.nonNull(regionId), UserInfo::getRegionCode,regionId)
.in(Objects.nonNull(compliantOrgEmpCodeList), UserInfo::getEmployeeCode, compliantOrgEmpCodeList)
.like(StringUtils.isNotBlank(orgName), UserInfo::getEmpPosUnitName, orgName)
.eq(StringUtils.isNotBlank(orgCode), UserInfo::getEmpPosUnitCode, orgCode)
.orderByDesc(UserInfo::getUpdateOn);

Page<UserInfo> page = iUserInfoService.page(new Page<>(req.getPageNumber(), req.getPageSize()), wrapper);
@@ -136,7 +132,7 @@ public class UserInfoManage {
if (StringUtils.isNotBlank(orgName)) {
List<DingOrganization> dingOrganizationList = iDingOrganizationService.list(Wrappers.lambdaQuery(DingOrganization.class)
.like(DingOrganization::getOrganizationName, orgName)
.notIn(DingOrganization::getTypeCode, "GOV_INTERNAL_INSTITUTION")
.eq(DingOrganization::getTypeCode, "GOV_UNIT")
);

List<String> compliantOrgNameCodeList = dingOrganizationList.stream()


Loading…
Cancel
Save